Making games with GameMaker
2D only, and very good at it. Undertale, Hyper Light Drifter, Katana ZERO.
GameMaker has been around since 1999 and has shipped an unreasonable number of games you've heard of — *Undertale*, *Hyper Light Drifter*, *Katana ZERO*, *Hotline Miami*, *Nuclear Throne*, *Spelunky*. If a beloved 2D indie game came out in the last fifteen years, there's a decent chance this made it.
It does one thing: 2D. It does it very well and it does not pretend otherwise.
Who it's for
People making 2D action games, and people who want to see results fast. GameMaker's room editor and sprite workflow are built around the specific job of making a 2D game, rather than being a general engine that can also do 2D. That focus is the whole value.
It's also a genuinely good first engine for someone who isn't sure they want to program.
What it's good at
- **Speed from idea to playable.** Drag a sprite into a room, give it a move event, run it.
- **A 2D workflow that was designed as one** — sprite editor, room editor, tile and animation tools all in the same place.
- **GML.** Its own language, simple and forgiving, with a visual node version (GML Visual) for people who'd rather not type code yet.
- **A proven track record.** The list of hits is long enough that "can it make a real game?" isn't a question.
- **One payment.** No subscription anxiety for a commercial release.
Where it fights you
- **2D only.** There's limited 3D capability and you shouldn't rely on it.
- **GML is GameMaker's alone.** What you learn doesn't transfer to another engine or to work outside games, unlike C# or C++.
- **Weak at large projects.** Code organisation options are limited compared with a real general-purpose language, and big projects get unwieldy.
- **Paid for commercial release.** Modest, but it's a cost Godot doesn't have.
- **Smaller community than Unity or Godot**, and shrinking slowly as Godot pulls in newcomers.
Your first hour
- Download from **gamemaker.io**. The free licence needs an account but no payment.
- New project → **GameMaker Language** (or Visual if you'd rather start without typing).
- Make a sprite, make an object, assign the sprite to it, make a room, drop the object in, press play.
- Then add a Step event and move the object with the arrow keys. That's the core loop of the whole engine, and everything else is a variation on it.
- The official tutorials inside the IDE are short and well made — do those rather than hunting YouTube.
Shipping it here
Build → **Create Executable**.
- **Windows:** choose the **NSIS installer** or, better for uploading here, the **zip** option. Zip is friendlier — people downloading a small indie game generally prefer not to run an installer.
- **Web (HTML5):** produces a folder with `index.html`. Zip its contents with `index.html` at the top level.
- **Mac/Linux:** available, though you may need to build on or have access to the target platform for some configurations.
Where to learn more
- GameMaker Manual
- Official tutorials — start with the beginner series
- GameMaker community forum
Made something with it? Publish it here — rough and unfinished is welcome.