Quick answer: GameMaker (formerly GameMaker Studio 2) is a 2D-focused game engine, now developed by YoYo Games under Opera, that is famous for being fast to learn and for shipping commercial hits. You build games from rooms (levels) that contain instances of objects, and each object reacts to events such as Create, Step, and Draw. You script logic in GML, a C-like language, or with GML Visual, a drag-and-drop system — and as of 2024/2025 the engine is free to download and use, with a paid tier required only for console publishing.

If you want to ship a 2D game and you want to ship it soon, GameMaker is one of the most pragmatic engines you can pick. It has been refined over two decades into a tool that gets a playable prototype on screen in minutes, and its track record — Undertale, Hyper Light Drifter, Hotline Miami, Katana ZERO — proves a focused 2D engine can carry real commercial success. This guide explains what GameMaker is, what it costs, how its object-and-event model works, how it compares to Godot and Unity, and exactly how to get from a blank IDE to a running game.

What is GameMaker?

GameMaker is a 2D-focused game engine for building and shipping 2D games quickly. It bundles a sprite editor, a room (level) editor, an object editor, a code editor, a 2D renderer, a built-in physics option, audio, and export tooling into one IDE. Its defining trait is speed of iteration: you can have a controllable character moving around a room within minutes of opening it, which is why it has been a gateway engine for so many first-time developers.

GameMaker has a long lineage. It began as "Animo" in 1999, became "Game Maker," then "GameMaker: Studio," then GameMaker Studio 2, and was finally rebranded to simply GameMaker. It is developed by YoYo Games, which is owned by Opera (the browser company, via its Opera GX gaming brand). Throughout all those renames the core idea has stayed remarkably stable: a project is a set of rooms containing object instances, and objects respond to events.

Type
2D-focused game engine and IDE (no true 3D engine)
Developer
YoYo Games, owned by Opera (Opera GX)
Pricing
Free to download and use as of 2024/2025; paid tier for console publishing (terms have changed over time)
Languages
GML (C-like scripting) and GML Visual (drag-and-drop)
Runs on
Windows, macOS, Ubuntu Linux (the IDE)
Exports to
Windows, macOS, Linux, Android, iOS, HTML5, and consoles (paid)
Best for
2D games, solo devs and small teams, fast prototyping, pixel-art and action titles

Is GameMaker free?

As of 2024/2025, GameMaker is free to download and use — including for many commercial exports to desktop, mobile, and the web. You create a free YoYo Games account, install the IDE, and you can build and ship non-console games at no cost. A paid tier (historically a console/"Enterprise" tier or a subscription, depending on the year) is required to publish to consoles such as the Nintendo Switch, PlayStation, and Xbox.

A few things are worth being precise about, because GameMaker's pricing has changed repeatedly over its history:

Because of that history, this guide deliberately avoids quoting hard prices as permanent truth. The reliable takeaway is the shape of the model: free for most development, paid for consoles, as of 2024/2025.

What can you build with GameMaker?

GameMaker is a specialist, and knowing its lane is the key to using it well.

2D games of almost any genre

This is the whole point. Platformers, top-down action games, roguelikes, RPGs, shoot-'em-ups, puzzle games, and narrative games are all squarely in GameMaker's wheelhouse. The engine works in pixel coordinates with sprites, has built-in collision and movement helpers, and makes tile-based level design straightforward. The commercial hit list — Undertale, Hotline Miami, Nuclear Throne — is dominated by exactly these genres.

Fast prototypes

Because objects, events, and rooms map so directly onto how a 2D game behaves, GameMaker is excellent for game-jam-speed prototyping. You can test a mechanic in an afternoon without building a lot of scaffolding first.

Mobile and web releases

GameMaker exports to Android, iOS, and HTML5, so a 2D game can ship to phones and run directly in a browser from the same project, with platform-specific tweaks.

What it is not for: 3D

Be honest with yourself here. GameMaker has no true 3D engine — no scene graph, model importer, or 3D physics. Advanced users can use lower-level drawing functions to fake limited 3D-style perspective effects, but there is no first-class 3D workflow. If your game is genuinely three-dimensional, reach for Unity, Unreal, or Godot instead.

How GameMaker works: rooms, objects, and events

GameMaker's mental model is compact and maps neatly onto how a 2D game actually runs. Four concepts carry almost everything.

Rooms

A room is a level or screen. Your game is a sequence (or graph) of rooms — a title screen, a level, a game-over screen — and at any moment one room is active. You design rooms in the room editor by placing instances of objects and arranging layers (backgrounds, tiles, instances).

Sprites

A sprite is the graphic: a single image or an animation made of frames, with a defined origin point and collision mask. Sprites are imported or drawn in the built-in sprite editor and then assigned to objects so they have something to display.

Objects

An object is a behavior template — a player, an enemy, a bullet, a coin. You place instances of objects into rooms, and each instance gets its own variables (its x, y, speed, health, and whatever else you add). One Enemy object can have dozens of instances on screen, each running the same logic independently.

Events and the Step/Draw loop

This is the heart of GameMaker. Each object reacts to events, and you attach GML code or visual actions to the events you care about:

Put together, the Step then Draw sequence every frame is GameMaker's game loop: update all instances (Step), then render them (Draw). Once that clicks, the rest of the engine is just details hung off this loop.

GML and GML Visual

GameMaker gives you two ways to write logic, and crucially, you can mix them in the same project.

GML (GameMaker Language)

GML is a C-like scripting language built specifically for games. It has familiar control flow (if, while, for), variables declared with var, functions, and a large standard library of game-oriented functions for movement, collision, drawing, audio, and more. It also has GameMaker-specific niceties such as the with statement for running code in the context of other instances. Here is a typical Step event that moves the player with the arrow keys and stops at walls:

/// Step event: arrow-key movement with wall collision
var move_speed = 4;
var dx = (keyboard_check(vk_right) - keyboard_check(vk_left)) * move_speed;
var dy = (keyboard_check(vk_down) - keyboard_check(vk_up)) * move_speed;

// Only move horizontally if no wall is in the way
if (!place_meeting(x + dx, y, obj_wall)) {
    x += dx;
}

// Then resolve vertical movement separately
if (!place_meeting(x, y + dy, obj_wall)) {
    y += dy;
}

// Run a one-off effect on every coin instance in the room
with (obj_coin) {
    image_angle += 2;
}

That single event reads input, performs collision-aware movement, and even reaches into other instances with with — a good snapshot of how GML lets you do a lot in a little code.

GML Visual

GML Visual is a drag-and-drop visual scripting system aimed at people who do not want to write code. You build logic by dragging action blocks into an event and configuring them — move, set a variable, check a condition, spawn an instance. It compiles down to the same engine as GML, so it is not a toy: you can ship a real game with it, and you can convert or extend visual logic with hand-written GML as your needs grow.

A common, healthy workflow is to start in GML Visual to learn the event model, then gradually move into GML as the logic gets denser — and because the two interoperate, you never have to throw work away to make that transition.

Platforms and export targets

GameMaker is built for shipping, and it targets a broad set of platforms from a single project. The free tier covers the non-console targets as of 2024/2025; consoles require the paid tier.

TargetTierNotes
WindowsFreeThe primary desktop target; the IDE itself runs here.
macOSFreeDesktop export; the IDE also runs on macOS.
Ubuntu LinuxFreeLinux desktop export.
AndroidFreeMobile export with touch input support.
iOSFreeMobile export; requires an Apple developer account to publish.
HTML5FreeRuns in the browser; great for itch.io and web demos.
Switch / PlayStation / XboxPaidConsole exports require the paid tier and platform developer licenses.

The IDE runs on Windows, macOS, and Ubuntu Linux, so your development machine is flexible too. Just remember that some targets carry their own requirements outside GameMaker — iOS needs an Apple developer account, and every console needs approval from its platform holder.

From GameMaker Studio 2 to GameMaker

If you are reading older tutorials, the naming can be confusing, so here is the short version. The product most people learned on a few years ago was GameMaker Studio 2 (often shortened to "GMS2"). YoYo Games later dropped the "Studio 2" and rebranded it to simply GameMaker, alongside a major shift in the licensing model toward a free tier.

For practical purposes, build new projects on the current GameMaker release and treat GMS2 material as compatible-but-slightly-dated reference.

GameMaker vs Godot vs Unity

This is the comparison most people are really after, viewed through a 2D-development lens. The honest answer is that all three can make a great 2D game; they differ in cost, language, and how much else they try to do.

FactorGameMakerGodotUnity
Focus2D only (no true 3D)2D and 3D2D and 3D
CostFree for non-console; paid for consoles (as of 2024/2025)Free, MIT, no royaltiesFree tier; paid tiers; pricing has changed over time
Source codeClosed sourceFully open sourceClosed (source access on some licenses)
LanguageGML and GML Visual (drag-and-drop)GDScript, C#C#
2D workflowExcellent, purpose-builtExcellent, first-classGood
Speed to first prototypeVery fastFastModerate
No-code optionYes (GML Visual)No (visual scripting removed in 4)Via paid assets / Visual Scripting
Console exportOfficial (paid tier)Via third parties (e.g. W4)Official
Asset ecosystemGameMaker Marketplace (smaller)Smaller, growingHuge
Best fitFocused 2D, solo devs, fast shipping2D/indie wanting open-source and some 3DBroad ecosystem, mobile, 3D

Short version: pick GameMaker when your game is 2D and you want the fastest, most focused path to shipping (with a no-code option); pick Godot when you want a free, open-source engine that also does 3D; pick Unity when you need the largest asset ecosystem or serious 3D. For a deeper side-by-side across every engine, see our best game engines guide.

How to download and install GameMaker

Getting set up is quick and free as of 2024/2025.

  1. Go to the official site, gamemaker.io, and create a free YoYo Games account. The account is what holds your license entitlements.
  2. Download the GameMaker IDE installer for your OS — Windows, macOS, or Ubuntu Linux.
  3. Run the installer and sign in with your YoYo Games account. Signing in is what activates the free license and any paid tiers you have.
  4. On first launch you land on the Start page, where you create new projects or open recent ones.

System requirements are modest — a reasonably modern machine running a supported OS will run the IDE comfortably. For mobile and console targets you will also need the relevant platform SDKs and developer accounts, but you do not need any of that to start making and running a desktop game.

How to make your first game in GameMaker

Here is the shortest path from an empty IDE to a controllable character running in a window. None of these steps require add-ons.

  1. Create a project. On the Start page choose New Project, then pick the GML Code template (or GML Visual if you prefer drag-and-drop), name it, and open the workspace.
  2. Make a sprite. Right-click Sprites in the asset browser, create a new sprite, and either import an image or draw one in the built-in editor. Set its origin (often the center for a player).
  3. Create an object. Add a new Object (for example obj_player), and assign the sprite you just made to it. The object is the thing you will place in the world.
  4. Add events and code. On the object, add a Create event for any starting variables, then a Step event and paste the keyboard-movement code from the GML section above. Add an obj_wall object too if you want the collision check to do something.
  5. Build a room and run it. Open the default Room, drag an instance of obj_player onto it, then press Run (the play button, or F5). GameMaker compiles and launches your game in a window.
  6. Export a build. Open the target platform settings, choose an export such as Windows or HTML5, and create a packaged build you can hand to a friend or upload to itch.io.

From there the loop is the same as in any engine: add sprites and objects, wire up events, test, and iterate. GameMaker's fast compile-and-run cycle is what makes that loop feel so quick, and it is a big part of why so many shipped games started as a weekend prototype here.

Pros and cons of GameMaker

Strengths

  • Extremely fast to learn and prototype in
  • Purpose-built, excellent 2D workflow
  • Free for most non-console development (as of 2024/2025)
  • GML Visual gives non-programmers a real no-code path
  • GML is small and pragmatic for game logic
  • Proven by many commercial hits
  • Exports to desktop, mobile, web, and consoles

Trade-offs

  • No true 3D engine — strictly a 2D tool
  • Closed source; you do not control the engine
  • Pricing model has changed repeatedly over the years
  • Console export and tier are paid
  • Smaller asset marketplace than Unity
  • GML is GameMaker-specific, so skills are less portable

Games made with GameMaker

GameMaker is long past needing to prove itself. Commercially shipped, critically loved games built with it include Undertale, Hyper Light Drifter, Hotline Miami, Katana ZERO, Nuclear Throne, the original Spelunky, the original Risk of Rain, Forager, Chicory: A Colorful Tale, and Will You Snail?. That list spans action, roguelike, RPG, and narrative genres, and several were made by solo developers or tiny teams — strong evidence that a focused 2D engine can carry serious commercial production without a big studio behind it.

Learning GameMaker: a roadmap

A sensible path for a newcomer:

  1. Do an official getting-started tutorial. GameMaker ships built-in tutorials that walk you through sprites, objects, events, and rooms in one sitting.
  2. Internalize the event model. Get comfortable with Create, Step, Draw, Collision, and Alarm — once the Step/Draw loop clicks, everything else follows.
  3. Learn GML basics — variables and var, control flow, functions, instance variables like x/y, and helpers like place_meeting and instance_create_layer.
  4. Rebuild a known game (Pong, a simple platformer, a top-down shooter) to drill the object/instance/room pattern.
  5. Ship something small. Export it, put it on itch.io, and watch how it behaves on hardware that is not yours — that last step teaches more than any tutorial.

If you build with GameMaker, our GameMaker solutions page walks through how to wire crash and bug reporting into a GameMaker project, and the Bugnet blog has focused guides on the kinds of issues that actually bite 2D games in production.

Shipping a GameMaker game: the part tutorials skip

Building the game is one thing; keeping it stable once real players have it is another. A GameMaker game that runs flawlessly on your machine can still crash on a player's older Windows box, a specific Android device, an HTML5 browser quirk you never tested, or a save file in a state you never hit. When that happens, a Steam review that just says "crashes on launch" gives you nothing to act on.

The bug you can't reproduce isn't gone — it's just invisible until you capture it from the player's device.

The fix is to capture failures automatically from the player's machine. With the right reporting in place, each crash or error arrives with its full context, the device and OS, the build number, and a breadcrumb trail of what the player did right before it broke. Identical failures fold into a single grouped issue ranked by how many players each one hits, so your worklist sorts itself worst-first instead of arriving as a stream of vague complaints.

That is exactly what Bugnet does for GameMaker games: a small SDK captures every error with full context, groups duplicates, and ties each issue to the build it first appeared in — so you fix the problem that hurts the most players first and confirm it is gone when its signature disappears from the next release. It is the difference between guessing at a bad review and shipping a fix you can prove worked.

Compare other game engines

Still deciding? These companion guides go just as deep on the other major engines, and our hub compares them side by side:

Frequently asked questions

What is GameMaker?

GameMaker is a 2D-focused game engine, formerly called GameMaker Studio 2 and now developed by YoYo Games under Opera. It is built around rooms (levels) that hold instances of objects, where each object reacts to events such as Create, Step, Draw, and Collision. You write logic in GML, a C-like scripting language, or with GML Visual, a drag-and-drop visual system, and the two can be mixed in the same project.

Is GameMaker free?

As of 2024/2025, GameMaker is free to download and use, including for many commercial desktop, mobile, and web exports. A paid tier is required to publish to consoles such as Nintendo Switch, PlayStation, and Xbox. The exact licensing terms have changed several times over the years, so check gamemaker.io for the current details before you rely on any specific number.

What language does GameMaker use?

GameMaker's main language is GML (GameMaker Language), a C-like scripting language designed specifically for making games. It also offers GML Visual, a drag-and-drop visual scripting system aimed at non-programmers. Both compile to the same thing and can be combined in one project, so you can prototype visually and drop into GML for the trickier logic.

Can you make 3D games in GameMaker?

Not really. GameMaker is fundamentally a 2D engine and has no true 3D engine, scene graph, or model pipeline. It does expose some lower-level drawing functions that let advanced users fake limited 3D-style effects, but there is no first-class 3D workflow. If your project is genuinely 3D, an engine like Unity, Unreal, or Godot is a far better fit.

Is GameMaker good for beginners?

Yes. GameMaker is one of the fastest engines to get a playable 2D game running in, which is why it is a popular first engine. The object-and-event model maps cleanly onto how a 2D game behaves, GML Visual lets non-programmers build logic without writing code, and GML itself is a small, approachable language. Many commercial hits were made by first-time or solo developers using it.

What platforms can GameMaker export to?

GameMaker exports to Windows, macOS, Ubuntu Linux, Android, iOS, and HTML5 (the web), plus consoles (Nintendo Switch, PlayStation, and Xbox) on the paid tier. Console publishing also requires the relevant platform developer licenses regardless of which engine you use, because those programs are run by the platform holders themselves.

What is the Step event in GameMaker?

The Step event is the code that runs once per object instance every frame, before anything is drawn. It is where most gameplay logic lives: reading input, moving instances, checking collisions, and updating state. The matching Draw event then runs each frame to render the instance, so the Step/Draw pair forms GameMaker's per-frame game loop.

What games were made with GameMaker?

GameMaker has shipped a long list of commercial hits, including Undertale, Hyper Light Drifter, Hotline Miami, Katana ZERO, Nuclear Throne, the original Spelunky, the original Risk of Rain, Forager, Chicory: A Colorful Tale, and Will You Snail?. These span action, roguelike, RPG, and narrative genres, which is strong evidence that a focused 2D engine can carry real commercial production.

Pick the engine that gets you shipping. For a focused 2D game, that engine is often GameMaker — and the rest is just keeping it stable once players have it.