I played a bit more with GameMaker (GM), and I have to say it's very capable !
I bought the standard edition, and I'm satisfied so far.
Here are the views from a 10-year experienced dev, after a week of toying with GM in the evening:
- commercial, need to spend at least 50 bucks if you want to get rid of the limitations of the free version
- primitive UI. The many popups are annoying. Usable nonetheless.
- lack of true IDE: we're very far from Netbeans, Eclipse & co
- after lurking on the internet, it seems Yoyo games (the owning company) has a bad reputation of being just lazy and milking the product, but they're getting better with the Studio edition
- it seems GM (the editor, not the final exported player) is not well supported on Mac. But I'm using a PC, so I don't care
- GML is primitive, you feel it very quickly (though not as ugly as many pretend): not OO (the bigget OUCH!), inconsistent syntax, can define functions but you have to create a "script" for each one, etc... but for a seasoned developer, it's just another so-so language. You can write like C code, and you're done. Being a developer helps a lot here, otherwise it may be confusing for a newcomer, especially memory management of dynamic resources allocated on the heap. Also have to be very careful with the scope of the variables: global, local to the script, or instance variable. Also a lot of people say GML and GM are encouraging bad coding practice. Maybe true for non developers, but you can write manageable code in GM. The only problem I'm seeing for bigger projects is if you want to rename resources (objects, sprites, rooms, etc...) then you have to rename it in your code too, which is spread in multiple places. That is a major drawback.
- it does what it pretends: to quickly prototype and make 2d games
- The pathfinding functions are great and easy to use
- The engine is fast, you just have to make sure you're not wasting computing power, like in any other language/engine. I don't believe anyone now saying GM is slow, they're just using it wrong.
- can export to iOS, HTML5, Android, Mac, PC, Ubuntu, though each module is expensive (more than the engine itself). Mac and PC are included for "free"
- lots of useful functions for drawing, gameplay, collision checking etc... for example you can draw offscreen on volatile surfaces, you can do in-app purchases and use analytics
- gives access to low level 3D (Direct3D, OpenGL) functions, which is cool for someone who already knows 3D programming
- not too restrictive licensing: can activate the product on 3 machines at the same time
- shaders are on the way! http://www.yoyogames.com/tech_blog/22http://www.youtube.com/watch?v=I5GABPHMDns
- good documentation, and good tutorials
-- LLVM on the way http://gmnewsbite.net/2013/04/22/yoyo-games-show-the-power-of-llvm/
Compared to Unity (I'm no expert at Unity, only have completed one simple 2d game in it, and many 3d prototypes with the free 3.5)
- GameMaker is much faster to develop with and also much cheaper for 2d games. No need to spend $1,500 and to look for extensions in the asset store, the good ones being easily above $100, more than the pro edition of GameMaker
- for 3D games, well Unity is of course a saner choice, though in GM you can play with low level Direct3D functions, which can be more than enough for "simple" games
- unity is a lot more polished, professional, and modern than GM, with a capable IDE, and a choice of modern languages
Compared to Construct 2 (only used it to prototype a single game 6 months ago):
- GM is more powerful, because I can code if I want. For instance, I can't live without Perlin noise, fractals and other random goodness, so in construct 2 I'm screwed
- Construct2 is easier for beginners on small projects: it's fully drag'n drop, BUT this approach quickly shows its limits for larger games, with more complex logic. It's less readable than code, and takes longer to change with lots of mouse cliking.
Overall, the word that comes first to me when using GameMaker is "enjoyable".
One more tool in my toolbox!