GameMaker is an Abomination
Take the worst user experience you can think of, and make it slightly worse—that’s GameMaker. Clicks and keystrokes that frequently don’t function as expected combine with notably limited levels of undo with predictably unpleasant consequences. Instability abounds, and losing work is common.
To make matters worse, GameMaker is short on essential features, and does not provide, among other things, generalized tweens, profiling, or in-game gui, and its otherwise built-in utilities are largely broken beyond usability. I want an engine to solve problems for me, not make them.
I could think of better names for the room editor, but they have nothing to do with editing rooms, because it definitely can’t do that.
- You can’t set the depth of objects through the editor, so you can’t have two instances of the same object at different depths without setting the depths dynamically. Of course, dynamically set depths are not reflected in the editor.
- You can’t page through instances at different depths, and so can’t access instances that are below other instances without moving the top ones aside.
- There is no snapping to instance edges when positioning things.
- Single level undo…seriously?
A joke language, teeming with undocumented and inconsistent behavior, tied to a truly obstructive object model. I don’t know if it’s even fair to compare GML to a real language, but it’s there, and every serious developer uses it, and it sucks.
- Functions cannot be defined in code, you have to use the GUI.
- Objects cannot be defined in code.
- No methods. All functions are global.
- Function parameters are implicit, and automatically named, so you have to manually alias them to readable names at the top of the file, or document them via comment.
- There is no function overloading.
- Every object possesses an assortment of frequently irrelevant member variables, including position, texture, and horizontal speed. It’s an affront to any programmer’s better instincts.
Don’t even think of editing sprites in this monster. It’s basically useless, except as the world’s worst pixel art editor.
- You can’t resize selections.
- The workflow for authoring animations is atrocious.
- You can’t edit text after making it.
- There are no layers.
- There are only six paintbrush sizes.
- A whopping 15 levels of undo, wow!
My Favorite bugs
GameMaker is bug-ridden to the core. Every update fixes a few things and breaks a few more. I've frequently had to roll back updates in favor of bugs that were less bad. The following bugs are my most memorable, and have wasted more than just a few hours of my time. Some have been fixed, others are new, and more will surely follow.
- Games are only runnable from the GUI in debug mode.
- GameMaker won’t start at all. Have to reboot Windows.
- Mysteriously losing carefully hand-drawn Box2D collision hulls.
- Losing previously set audio volumes when cancel out of sound properties. This feature works best when it takes you a while to notice that your game has somehow become an aurally unbalanced mess over time.
- Things in the room editor sometimes rotate 90 degrees randomly.
- Corrupted projects, monthly.
- Audio previews usually don’t work, but when they do it’s with a huge delay that locks the GUI while you wait.
- Abstract Error.
I'm not saying that you can’t make good games with GameMaker; if you learn the graceless way it all works, put up with its bugs, and avoid the parts that truly suck shit, you can coerce the engine into working for you, but why bother? You could make a game with a potato as your engine. GameMaker is marginally better than a potato, but not nearly as good as potato salad. It’s just a renderer, I/O, and an awkward object model, fronted by a shitty children’s scripting language and a clunky requisite GUI. Is it something worth paying for? No. Is it worth bothering to use even if it was free? No. You can do much better. Try Construct2 or Stencyl. I haven’t used them, but they really can’t be worse. That’s my endorsement. GameMaker is an abomination.