Hey there,
I feel like GML is kind of weak when it comes to language syntax - you can create "objects" - but only as game objects - if I only want a class describes, for example, a user - nickname, age, best score - I can create an object, and then I will be able to "put it in a room" even though its just a data structure and not an game item... This just don't make any sense. And what about enums and constants? I can set a constant like global.OP_LARGE_KNIFE = 2; but for this to work I must make sure this line of code will be executed before I try to access this constant! What??? And there are more examples.
However there is a new project under building trying to make a C# edition for GameMaker - same architecture, same objects, same sprites, same rooms - but the coding is with C#, instead of GML. What do you think about it? Is this a good idea? Have a look on this project in this link:
Thanks