I wanted to talk about some impressions on Game Maker 2. Since picking up this development platform I’ve spent a lot of time immersed in tutorials, examples, and manuals. Counter to my usual M.O., however, I have opened the IDE exactly twice, and both times were to examine the structure of two different demo packages that were offered by YoYo Games. While an experienced perspective is usually what people want, there’s value in first impressions, so here we go.
What’s The Elevator Pitch?
Game Maker 2 is a 2D game creation platform that allows developers to make games using hand-written code or drag-and-drop blocks. OK, that might not be the complete pitch, but those are the salient points that sold me when I saw it on sale on Steam. I am comfortable writing code, but sometimes banging out words letter by letter takes longer than the excitement is willing to stick around, so the idea of being able to quickly prototype an idea using block-building had a certain appeal. As I mentioned in a previous post, the IDE is also pretty attractive, logically organized, and has a good workflow dynamic (in my opinion, of course).
How Does It Work
GM2 operates a lot like other visual development platforms like Unity in that a game is made up of entities, which start out as relatively empty objects until we attach visuals and scripts to them.
Visuals give the object a presence in the game world. GM2 uses 2D sprites near-exclusively, which means that visuals can be single image sprites or can be animated from sprite sheet sequences. Assuming one has the proper sprite sheets set up, it’s fairly easy to code a system that allows a player character to change her clothes, for instance, whereas that might be a little more cumbersome (at least on the model design side) in a 3D game.
Scripts are what gives objects their functionality. In GM2, scripts are attached to handle specific events like collision or keypress. One event, one script, and that script is dedicated to dealing with the ramifications of that event. Scripts can access other data outside of themselves (especially useful for handling collisions), but generally, we only add a script when we have a need to deal with an event that happens to or happens because of that object.
Once we have our object set up, we simply drag and drop it into a room. A room is a level or a zone or a shard which is oftentimes a part of a larger game world. The player-character has a goal to complete in this room, usually has to dodge enemy NPCs or other contrivances placed to arrest their progress, and if the PC manages to secure their objective, they move on to another room.
This is the very basic breakdown of how GM2 works. Obviously there’s a whole avalanche of work that needs to be done even for the most simplistic platformer or isometric stealth game, but if you want to really see development in action, I cannot recommend FriendlyCosmonaut’s YouTube channel enough. She is by far the best game development tutorial maker I have ever seen — and if you know me, you can assume I have seen a lot of tutorials.
For Whom is Game Maker 2 Suited?
You know me. My ambitions far outstrip my abilities, even 15 years after I started thinking up this space trading game. I have tried many different platforms, have tried both 3D, 2D, and no-D in an effort to make this project happen. I have made progress in almost all of my attempts, but have ultimately run into some kind of roadblock, real or imagined, that has stymied my progress and which has ultimately sunk my battleship.
Knowing this, I think GM2 is best suited to those who want to make a really excellent multi-session arcade game. When I say “arcade game” I generally mean a game that’s got a lot of real-time action, is big on the short-term goals and chunks up the content into GM2’s room-sized packaging. I did a quick search for games you might have heard of that were made with Game Maker, and found these:
- Hyper Light Drifter
- Hotline Miami
- Nuclear Throne
Of these, I have played Gunpoint, and I really liked it! Check it out. But based on what I know about these titles, they are all far more kinetic than the kind of game that I want to make. I can (and might, because I get bored easily and often) talk about why I think that is so, but I won’t include that here because it’s more of a technical overview and people hear “blah blah blah blah pttthhhh” when I start talking about that stuff in a non-technical post.
Know that I don’t consider this to be a knock against GM2 at all. I am very impressed with what I’ve learned about the platform so far, and I plan on taking a parallel stab at Cosmo’s farming RPG tutorial at some point to get a better-guided tour. Right now for me, though, it’s a hammer in search of a nail. My development world has revolved around this trading game for so long now that I find it hard to consider anything else. I had hoped that GM2 might fill a gap between my native HTML5/C# platform and Unity, but GM2’s environment isn’t designed to deal with the kinds of data load that I need. Well, that’s not entirely true, but I need to learn to walk with this platform before I start Frankensteining it.