No coding required: How new designers are using GameMaker to create indie smash hits
Written by Bo Moore
In May 2013, Tom Francis opened preorders for his 2D stealth hacking game Gunpoint. By the time Gunpoint actually went on sale, a week later, Francis had already made enough money to quit his job at PC Gamer and focus on game development full-time. But for many people, the biggest surprise came not from the game's amazing performance three days after release, but rather the way it was made—that it was developed using a tool called GameMaker.
GameMaker: Studio, the latest version of the tool, has been developed by YoYoGames since 2006. Its goal is to break down the game development process into something approachable and easy to learn, shifting the main challenge facing game designers from technical knowledge to creative ability. But in part because of this ease-of-use, GameMaker has carried a stigma that it wasn't capable or worthy of powering high-quality, "professional" games. ("I can't believe you made this in GameMaker!" Francis recalls people saying. "That's so impressive!")
At first the tool was mostly used by hobbyists wanting to dabble in game making—not anyone looking to sell a game, let alone make a living from game design. But since 2008, a slew of successful, high-profile indie games have emerged using GameMaker—Spelunky, Nidhogg, Hotline Miami, and Francis' Gunpoint, to name a few. Slowly, all the game design hopefuls who found coding hopelessly daunting have an approachable way to turn great ideas into great games.
"For me it was Spelunky that tipped the balance," Francis said. "Just from [GameMaker's] name it sounded like it would be easy to use. And I figured, if you can make something that good in GameMaker, then there's really no excuse—the only limit is how well you can design your game."
A Problem With Perception
GameMaker has existed in some form for more than a decade, and it really hasn't changed that much over the years. Technologically, it's been capable of creating games like Gunpoint (which was built in 2010's GameMaker 8) and Hotline Miami (built in GameMaker 7, an even older version) for some time.
"The definition of what a professional game is has changed," Francis said. "You can make things that are technologically simple, but still be financially successful. Those things have always been possible in GameMaker, it just wasn't possible to get them out there." Digital distribution services such as Steam have helped otherwise obscure games have a chance at widespread recognition and distribution—things built using GameMaker included.
But the indie revolution has been happening for years. Steam has been the mega-behemoth distribution service it is now since at least 2007. So then why have we really only started hearing about GameMaker in the past year or so?
It really comes down to a problem with perception. Jordi de Paco, creator of the recently-released GameMaker-built Gods Will Be Watching, says he had been aware of the software for some time, but his prejudgment kept him from giving it a try.
"I felt this preconception that if you made games with GameMaker," de Paco said, "it was like using RPG Maker, where it wasn't really a game. But at some point I realized that the players don't care what tools you used to make a game, they only thing they ask is if the game is fun."
"GameMaker appealed to people who were more into being creative than they were good at programming," said Jonatan Söderström, creator of Hotline Miami. "Many of these people needed a couple of years to build up their skills before they could finish a cool big project." In other words, game development takes time, so we're only now seeing the output of these early adopters. (It took Francis three years to complete Gunpoint, for example.)
But even so, GameMaker to some degree still carries a stigma—a problem that largely stems from confirmation bias. "There's nothing about many great GameMaker games that's particularly technologically advanced," Francis said. "The problem is that if something looks good, people don't ask themselves how it was made. They just see a game. But if they see something really crude that was made by a complete amateur, and then they find out it was made in GameMaker, that's the perception that sticks.
"Lots of great games have been made in GameMaker, but for a long time it just wasn't knowledge that's how they were made because people didn't ask that question."
Starting From Scratch
YoYo Games' vision for GameMaker is all about democratizing the game development process, breaking it down to something simplified and approachable. "For most game development processes, the limitations of the process dictate what can go into the actual game," said YoYo Games CTO Russell Kay. "GameMaker is all about taking away those barriers."
In GameMaker, you build a game by creating "rooms," placing objects inside, and assigning events to affect those objects—all via a drag-and-drop interface. Rooms are not necessarily physical rooms—an adventure game might give each scene its own room, for example, or a space game could use a single giant room for the entire galaxy—and objects can either be physical things in the game or abstract things you never see or interact with, such as the camera or a level generator.
Most of a game's code is housed in "events" that affect objects every time a frame is rendered. For example: movement would be handled by an event that tells an object to move a certain distance in a certain direction every single frame whenever a certain key is pressed. Using a traditional engine like Unreal 3, you would have to write that event as a script from scratch—in GameMaker, you simply drag-and-drop the pre-built script event and apply it to whichever object you like.
"It just depends on how much you want to use this drag-and-drop interface, or how much you're ready to start coding," Francis said. "The cool thing for me is I wasn't confident enough to start coding, and so I was able to use these drag-and-drop actions to define how I wanted things to work on a very basic level."
As games get larger and more intricate, it becomes more and more useful to build them using code—not so much out of necessity, but more of convenience. The more complex an event, the more space it takes up in GameMaker's visual interface. "If I feel like something's going to be a pain in the ass with the drag-and-drop interface, I'll just look up what the code instructions are for those particular actions and write them in a little script," Francis said. "I only need to learn one bit of code at a time, so I can gradually build up from there."
The Right Tool For The Job
Now that GameMaker is coming into its own as a respected development tool—Gunpoint, Hotline Miami, Samurai Gunn, and many others have more than proved that—the next issue is finding its niche. It will always be outclassed in terms of power and ability by things such as Unity, or even further, an in-house triple-A development platform such as Ubisoft's Snowdrop, EA's Frostbite, or Valve's Source engine. So when should GameMaker be used?
The software does have its limits. First and foremost, GameMaker is primarily focused on making 2D games. 3D is possible, but it would be far more effective to use a 3D-focused engine such as Unity. Furthermore, while the drag-and-drop interface is great for beginners, it becomes cumbersome for more complex games.
"Now I work entirely in code," Francis said," and the drag-and-drop interface is, at best, a way of organizing code. But even for that I'm starting to think it might be better to just write it all in text."
Another issue is that, while GameMaker is a great entry-point for someone with zero programming experience, its user-friendliness can end up being a double-edged sword if you want to progress into more advanced game development. Most development programs use standard programming languages—people usually program Unity in C#, for example—which must be written in a very specific, strict form. But GameMaker uses its own language, GML, which is extremely forgiving in how it interprets inputs.
"For any given statement there are a hundred different ways of writing it that it will accept and understand," Francis said. "So you can write things in a way that make sense to you, and it will try to guess what you meant."
While this can help someone learn how to code, it doesn't teach them how to code correctly. It doesn't teach the proper habits needed to wrangle with a stricter, more complex programming language, making it difficult to ever transition.
But do you ever need to transition? Söderström says he never felt limited by the capabilities of GameMaker while building Hotline Miami, but Francis admits that his Gunpoint code ended up fairly convoluted after three years of tinkering.
"If I was fluent in Unity I might use that, but I'm still more comfortable in GameMaker," Francis said. "I've made one game in Unity, but it's a very small game and it took me a long time to learn how to do everything."
Even if he were fluent, Francis thinks it would still take a long time to get everything working in Unity—at least a bit longer than GameMaker. When you factor in price, GameMaker is the clear winner. (GameMaker's base edition is now free, while the Professional and Complete editions cost only $60 and $800 respectively, compared to upwards of $1500 for Unity.)
"It might not be as powerful in the long run," Francis said, "but in GameMaker, you'll have your thing working much much faster." This makes GameMaker perfect for quick-and-dirty mockups of gameplay concepts. Professional devs can use it to quickly prototype singular game mechanics—just to test if they're fun—and game jam participants can use it to build moderately complex games within the time constraints of a jam.
"It really saves a lot of time," de Paco said."Learning the documentation and applying it was all in the same weekend. I was able to learn GameMaker and make a game in just 72 hours. It was awesome. I couldn't do that in another language."
Now de Paco says he can take on more ambitious game jams thanks to GameMaker. "You sacrifice part of the optimization or performance of the game, but you can just forget all the technical and focus on making a fun game."
The Future of GameMaking
Will GameMaker, or something like it, ever fully replace traditional coding-based game development? Certainly not for triple-A developers, but for indies—maybe. The upcoming Hyper Light Drifter, which was Kickstarted to the tune of $645,000, is yet another high-profile game being developed in GameMaker, for example.
Additionally, many of the problems Francis encountered making Gunpoint—outdated DirectX support and resolution scaling issues, to name a few—have been addressed in the 2012 release of GameMaker: Studio, which completely overhauled the entire development software, notably adding the ability to compile games for Mac and Linux. YoYo Games has since continued to add more advanced features for more experienced users, such as shader support and the ability to import third-party developer services in-engine without having to integrate additional SDKs.
While GameMaker may not be the direct inspiration, bigger engines like Unreal are becoming easier to use, too. Epic's Unreal Engine 4 uses a scripting system called Blueprints Visual Scripting to make design more approachable to non-programmers. It's now becoming more and more feasible for anyone with an idea to make a game, even without the ability to code. Even better, it's cheap. GameMaker has a free version. A UE4 licence costs a mere $19 per month.
The next step for YoYo Games is a game marketplace—soon to go into Beta—which would give GameMaker developers more options for visibility and distribution of their creations before trying to break onto Steam, as well as a way to share individual game components, such as sprites, audio bits, objects, and scripts.
"It's all part of the democratization of making games that we're going for," YoYo's Russell Kay said. "By allowing developers to share content that they're creating, we hope to spur on the whole community in terms of the quality level of what they can attain."