DEV Community

Cover image for How to Think About Games: GameMaker
OP-Bright
OP-Bright

Posted on

How to Think About Games: GameMaker

Introduction

Welcome to yet another installment in the ‘How to Think About Games’ series. This is the fourth article focusing on the philosophy of different engines on the market, and today we’re talking about GameMaker. Each game engine has its own idea of how to structure a game behind the scenes. This structure, and the specialties of each engine, are really important to consider when choosing which engine to make your game in. The article attempts to look at each game engine with as little comparison as I think is possible, and focuses on the mindset a developer should have when planning out their game. This should allow you to see the advantages of each for yourself, and make an informed choice.

Background on GameMaker

GameMaker was originally conceived to make game creation more approachable to beginners, it has continued to add more robust features to make it appealing for experienced developers as well. It’s an incredibly popular pick amongst indie teams, and has a lot of incredibly successful games developed through it.

  • Gamemaker is an engine primarily made for 2D games. It has robust features to support 2d animation, collision, and logic.
  • Previously known as Animo Game-Maker, and GameMaker Studio, the software has gone through a lot of iterations over time. The most recent one released in 2022 is still maintained and what most users are familiar with now.
  • GameMaker is not available for commercial use for free, but is useful for personal projects or learning. The rest of the engine itself is a one time purchase, although launching to consoles requires their Enterprise subscription. Although some places come at a price, it seems to generally have coverage of most things you could want to publish to.
  • GameMaker supports a drag and drop beginner friendly visual language, but also allows use of GML for more advanced scripting. GML is somewhat similar to Javascript.

Now that you have some background, let’s get on to how it thinks about games!

How to Think About GameMaker

Rooms

GameMaker games are built up of assets, these assets are defined by the user. Across a game, the ones you’re most likely to use consistently are Rooms and Objects, but you’ll likely constantly be dipping into the large variety of other ones.

Rooms are the space in which a game takes place, and are filled up with Objects. A game must have at least one Room, but a larger game can use Rooms to represent what they sound like, different levels, or just different screens, like a title screen Room, for example.

Sometimes Rooms can be something invisible to a user, like a loading screen that takes in values from the computer like screen resolution to size the experience properly.

Rooms have a robust layering system for placing objects, not necessarily just to handle z-fighting, but also to allow for greater organization and ease of editing. There’s support for building with tile-sets built in, tile-sets actually being one of the many kinds of assets.

A screenshot of the Room editor. You can see the visible tile-grid in the background. Sourced from the GameMaker Manual.

A screenshot of the Room editor. You can see the visible tile-grid in the background. Sourced from the GameMaker Manual.

Objects and Object Events

Objects are less of the actual entities in the game, rather, when you create an object, you basically create a template that can have many instances of it created multiple times.These templates can be used to build anything. Objects can be entities that populate a room. They can do things around the scene, or a player, or even just things that run background logic and are fully invisible (sometimes referred to as controllers). Since when you ‘put an Object in the scene’ you’re really putting in an instance, updating the object doesn’t update the instance.

To make an object act a certain way, you have to have it react to events. There are many types of events provided, Create which runs when the object is created by the engine, Collision which runs when it collides with something, and also Step which runs every step of the game, which can be defined by the user how many steps should be in a second. There are many more event types, but even if you aren’t satisfied users can create their own events as they need it.

An example of a new empty object in the object editor. Sourced from the GameMaker Manual.<br>

An example of a new empty object in the object editor. Sourced from the GameMaker Manual.

Other Common Assets

Rooms and Objects are your primary assets in GameMaker, but it comes with a lot more, and many of them are incredibly useful, and still very commonly used.

Sprites, for example, are incredibly powerful assets. You can assign sprites to an object to make them visible. Sprites are also created with masks, which you can use to define the bounds and collision of a sprite. Creating a sprite lets you also set things like animations, and the speed of it, which GameMaker can handle for you from there. GameMaker has a native image editor, best for smaller pixel art or testing.

An example of a sprite in the Sprite editor. You can see the different frames of animation and how they set up the fps of the animation. Sourced from the GameMaker Manual.<br>

An example of a sprite in the Sprite editor. You can see the different frames of animation and how they set up the fps of the animation. Sourced from the GameMaker Manual.

If you’re making a game with a grid based map, such as an old styled platformer or RPG, the Tile-Set asset will be hugely useful for you. Creating Tile-Sets allows you to use them in GameMaker's tile editor, an example of how many common 2D game problems that GameMaker has solutions built for.

You can create Sequences, sets of other assets that do things over time, and a record of what they do. This can be useful for cut-scenes, or simple animations, such as setting up a Title Screen. Sequences can even contain other Sequences.

GameMaker allows you to use Scripts to create common functions that can be used across your game, or even other games. The assets are very flexible which allows creators to share Scripts they’ve made to handle different pieces of common game logic, and make it so developers do not need to re-invent the wheel.

From what I can see, overall that seems to be the power of GameMaker. Most challenges, as long as they’re in 2D, have been streamlined as much as possible.

Conclusion

I will admit here at the end that I definitely have a bias towards this engine after learning about it. I found a lot of really good resources, a handful of my favorite games such as Katana Zero and Rivals of Aether were made in it, and I really am a fan of 2D games. I would definitely encourage you to look a little bit more into it yourself, but I still tried to represent the structure as fairly as I did the others.

As for my opinion, I find the system to make a lot of sense, albeit maybe a bit too granular. At least on the surface, there’s a lot of things that look like they could just be objects, and it's nice that they’re simplified down, but there are so many options that you may accidentally waste time trying to implement it yourself instead of running into one of their pre-built solutions if you do not know what it is called already, but that’s relatively minor and solvable by just getting more experience in the engine. Unless your game idea is in 3D, GameMaker seems incredibly likely to be able to handle whatever you might want to throw at it.

Sources

Top comments (0)