@Raven
Are you happy with the executable size?
No. It should be smaller.
Do you like having the Runtime Library or prefer a Linker Style Library?
Both. Runtime for Debug mode(quicker builds) and Linker Style for final exe build.
Do you want to see Object Orientation, and if so.. how?
Not really no.
Do you prefer the Rotation Commands in DarkBasic v1.0 or Professional?
Since I've never used the original DarkBasic I can't really comment.
Would you like to see a Pixel Perfect Collision Engine?
No, but it would be nice.
Is Real-World Physics important to your games?
Not currently, but it would be a welcome addition. But only if it is as easy to implement as the existing collision system.
Would you like to have direct access to the Rendering pipeline?
I'd like the option.
Some other points:
ElseIf support.
Expressions in Select statements like UWDesign suggested.
Expanded type support. Arrays in types.
Not sure if this counts, but better TPC support. You shouldn't have to work around not being able to pass back a float normally. It's returned in ST(0) just like how integers are returned in EAX. Why DBPro can't handle this, I don't know. Returning a string pointer should be no big deal either. I know that DBPro handles strings internally, but it shouldn't be difficult to add code after the function to take the string pointer out of EAX and pass it into DBPros internal string handling routines. However, I do like the way string tables are used to allow the compiler to figuare out what needs to be passed to the function. Quite clever really.
Also, make memblock shouldn't need an index number. It should just return a pointer. It's redundant to have to come up with a unique index number when a unique number can be easily returned. The pointer.
Better pointer support as well. I prefer the old fashioned BASIC way of using pointers to mess with data via Peek and Poke. But if you must have a symbol for the operator, please, use something other than * like C++ does. I've always found that confusing, especially when I was first starting out. To fetch a pointer you should just use the @ symbol like in purebasic. Makes more sense than the * way since @ means "AT" and a pointer tells you where a variable is AT in memory.
Static arrays. We can get the pointer to them and fiddle with them if we want to that way.
Pointers to functions. We can then use them in a CALL FUNC kind of function the same way we have a CALL DLL function. This would open the door way to a puesdo-function overloading way of programming. EX: you can have different AI functions for different bad guys stored in an array. When you cycle through the array you could just pass in the pointer for the baddies AI func to a single CALL FUNC function and fire away. This would beat having to pass in some kind of flag to a switch case statement just to get to the appropiate function. Saves time. Easier to use.
Plus, (I can't believe this hasn't been mentioned yet) option explict and option strict. If option strict is included, have some standardized way of converting types. A intrinsic float2int kind of function would do nicely for coverting floating point numbers to integer. Since there are multiple different round modes out there to use(some of them substantially faster than others) you could include a flag with the float2int function to tell the compiler which method to use.
I've touched on this before many times, but some kind of way to force an object to be rendered prematurely. Like a FORCE DRAW command. The current DBPro way of rendering things is quite inefficent. Graphics cards like it when you send stuff in little chunks and DBPro sends all of your objects in one whole mega chunk. One user even timed his game to see where most of the time is spent(I think it was Walaber) and found out that 90% of the time was spent in the sync command!
Debugger. Nuff said.
On the lighter side...what I thought was good(w/minor cavets):
Case-insenstive keywords. When I started out programing I started on C++ with it's case-sensitive internal functions(strcpy, etc.). It was incrediably annoying to just finish a function name and realize you missed a capital. They only thing I wish DBPro would improve on in this regard is if it made all variables and arrays and functions case -insensitive like Basic4GL. There really is no reason not to adopt this.
The simplicity of the Sync command. Although it is a little inefficent, when you are first starting out, it sure makes things simple.
Compiling small programs relatively quickly. When I started with C++ compiling stuff took a few seconds. With DBPro it seemed to happen almost instantly. The make-little-changes-and-test approach really benefits from a quick compile time.
Kick a$$ string handling routines.
Clearly superior to C++'s string handling routines(though pretty much every BASIC's string handling routines are).
By far the best thing about this language though is the ease of which you could start programming. When I started programming I started on C++. It was difficult to figure out what did what and most importantly why it did it. I was reading out of one of those "Learn C++ in 21 days books" which happen to be mammoth(and I later learned were not very good at teaching you C++) and all of the crap that comes with C++ was just overwhemling. For a newbie, learning the basics of programming(loops, functions, logic, etc.), Object oriented programming(classes, inhertiance, polymorphism), and other crap that was beyond me(templates, why?) it was just too much. I tried for months to figuare it out and I think I made some good progress. But then I found out about DBPro. DLed the trial, started it up, and I swear I learned the language in a matter of days. It was mind blowingly easy.
Later on I learned the rationale for a lot of the stuff in C++, but if it wasn't for DBPro I probably would have given up on programming. With C++ I was bored out of my mind and frustrated. Typing in line after line of redundant code and characters(I now offically hate { and } by the way) chipped away at my patience. With DBPro, I felt I could do anything...and quickly. That's a pretty good feeling to have when you are a beginner. Anyway, I'm rambling. I'll stop now.