Features

Getting started with Game Maker

Tom Francis, designer, coder and writer of PC stealth puzzler Gunpoint, on YoYo Games' beginner-friendly dev platform.

How To Make A Game continues with Tom Francis, designer, coder and writer of upcoming PC stealth puzzler Gunpoint, on the merits of YoYo Games' Game Maker.

-

Game Maker is an all-inclusive package for making 2D games for Windows, Mac, HTML5 and iOS. It's aimed at beginners and small teams, and you can theoretically make a whole game in it without writing any actual code. Derek Yu used it to make Spelunky, one of my favourite games ever, and I'm using it for Gunpoint. You can do pretty much everything with a drag-and-drop interface of actions and behaviours, or you can write the code yourself in its native scripting language, GML.

In practice, trying to make any substantial game without writing code gets pretty unwieldy. But the dual approach of Game Maker is still a great thing for learning to make a game: you can start with the drag-and-drop stuff, and ease into writing code as you gain confidence and want more control. That's pretty much the progression I went through, and now I write everything in code.

How it works

In Game Maker, your game world is made up of Rooms, and the entities in them are all Objects. In a typical platformer, each level would be a different Room, and each character, enemy, item and chunk of the environment would be an Object. A Room can be bigger than the player's screen, and it doesn't have to be a platformer level: it could be a top-down view of an area, or something totally abstract like a menu screen.

Game Maker handles the very low-level stuff for you: you draw or import the Sprite that an object should have, and the code for how that information is drawn to the screen each frame happens automatically. There's inbuilt variables for things like gravity, if you're making a side-on game, but if you want an object to actually stop when it hits the ground, that's something you have to define with drag-and-drop actions or code.

Objects are really classes of things: if you have a bunch of identical enemies in your game, you'd only make one Object, then slap down multiple Instances of it in a room. That's very intuitive with some types of games, but it can get weird if you want identical enemies to start in different states - patrolling, asleep, etc. You need to make a new object for each, and tell it to inherit all but one property of the main enemy type. That's simple enough, but can lead to awkwardness later if you want to check something like, "Is the thing I just collided with a Guard?" If it's the new sub-class of guard you created, it'll fail that check - "No, it's a Patrolling Guard!" Fixable, but clumsy.

What it's good for

The single best thing about Game Maker is how quick and easy it is to make something you can play. Even devs at major studios often use it to mock up a prototype and see if a mechanic works. That's a huge deal, particularly if you're making your first game. There's less to learn with Gme Maker, and less to go wrong, so you'll be trying your idea out much sooner. That's the point at which you find out whether it's actually worth pursuing, so I can't say enough good things about getting there fast.

Next would be the licence: Game Maker 8.1 is $40. Flat fee, no subscriptions, no royalties, no restrictions on what you can do with what you make, ever. That's Windows only, but the new multi-platform Game Maker Studio can export to OSX, iOS, Android or HTML5. Windows and OSX are included in the $100 flat-fee purchase price, the other formats are $100 or $200 extra.

Third is GML, its built-in language. It might not help you anywhere else, but it's gloriously easy to learn, easy to read, and hard to screw up. You never have to type a semi-colon. Some of it almost reads like simple English. And the built-in help is remarkably good - I've rarely had to look anywhere else for answers.

What it's not good for

All this applies if what you want to make is a 2D or isometric sprite-based game. If you want shaders and lighting and effects, Game Maker's equivalents are rudimentary and slow.

It's acquired a rep for producing ugly, crude-feeling first-timer games. Certainly a lot of those have been made with it, but that's not a function of its limitations - it's a function of its accessiblity. Because virtually anyone can make a game with it, virtually anyone does.

Ultimately, there's no inherent limit to how good a collection of pixels can look. And there are very few limits on how interesting a game you can make with GML. But the reputation is self-fulfilling: when people see a gorgeous or innovative platformer, they assume it was made by professionals, and that professionals wouldn't use something so beginner-friendly.