Since the release of Studio, YoYo Games’ priority has been to completely rewrite GameMaker in C#, to make it more stable and above all faster to iterate with. “We’ve had cases where something in C# that would take us ten minutes, would take us four hours in Delphi. So the simplest thing just takes forever,” Dailly says. YoYo Games is also using this as an opportunity to update and introduce new features to the program.
Building a tool for other people to make games with is something of an odd position to be in. Yet aside from being a little less creative and a little more pragmatic, the principles behind doing so aren’t vastly different from game development. You figure out where the software’s limitations are and what developers want from it by speaking to users and testing the program extensively yourself. “I use it a lot at home, and because I use it a lot at home, I know all the bits that really annoy me for the current one,” Dailly says, “That’s why we’re talking to developers, to make sure that my most hated bits are theirs as well, and we’re all more or less aligned.”
That said, GameMaker has the extra problem of being intended as an entry-level program, which means altering or expanding its capabilities must be done without compromising its accessibility. In future, YoYo Games plans to approach this by retaining a basic vanilla program, while separating out the more complex functions as plugins.
“Long-term, we’re looking at reducing the core of GM, but having more of these things as extensions rather than just the core,” says Russell Kay, chief technology officer at YoYo Games. “So we’re trying to simplify things down, but also expand what we can actually do.” These extensions won’t have to be manually installed, either. YoYo Games hopes to have GameMaker automatically target required extensions so the developer doesn’t have to seek them out.
The last stage in modernising GameMaker is to increase its technical fortitude. YoYo Games has already added a couple of features with this in mind, namely liquid-physics simulation and programmable shaders. The latter are a good example of how YoYo Games is introducing more complex programming into GameMaker. “Each of the shader languages has its own syntax, to the point where OpenGL and DirectX are basically two different programming languages,” says Dailly. “So what we do is let you program in OpenGL ES [a subset of OpenGL used by smartphones, etc], and then we will automatically convert and generate these other ones. So you’re only having to learn an initial language.”
For those wanting to avoid more complex tasks like shader programming completely, YoYo Games recently introduced the GameMaker Marketplace, where developers can buy, sell or share technology, including shaders. The results are already beginning to emerge. One of the more visually impressive GameMaker games currently in development is Orphan, a 2D platformer about a young boy in the midst of an alien invasion. “I had always wanted to make a game but thought programming was too difficult for me,” says Brandon Goins, creator of Orphan. “I watched a video tutorial on YouTube about basic platforming and literally laughed out loud at how easy it was using GameMaker.”
Orphan’s visual style is a combination of Goins’ experience in graphic design, and taking advantage of GameMaker’s simplicity. “Many parts of Orphan originate from photographs, whether it’s simply a photo dropped into GM as a background, or part of a photograph that I’ve traced to create some small object in the game,” Goins explains. “In the end I’ve been able to get all the graphics effects I wanted from pure raster graphics and the only shaders I’ve used so far were ones I got from the GameMaker Marketplace for distortion and blur effects.”
Goins is extremely happy with how GameMaker has enabled him to create agame for the first time—he even goes so far to describe it as “life-changing”. However, there are certain aspects he would like to see improved. “The universal complaint people have about GameMaker is the room editor and I have to agree. It needs support for separate object layers as well as group selection tools.”
Tom Francis also has one or two issues he’d like to see addressed. “The only way to save the code or resource you’re working on without saving the whole project is to close the window and open it again, which is pretty mad,” he says. “And faster compile times, or some built-in tool to live-edit certain variables, would be great for tweaking aesthetic things.”
YoYo Games is reluctant to discuss specific features of the upcoming C# version of GameMaker right now. But they confirm that a new room editor is coming, and there are rumblings that other editors, such as the sprite editor, will be getting an update too. The dev team recently did a closed-doors showing of the new version at Develop, and they claim the response was positive.
“Fundamentally, we’re going to be doing Studio 1.x as the next one,” Dailly says, “with a very solid foundation that can expand—but modernise all the editors that are in it. So it’s like a modern 1.x. Then we can scale up.”
Given how much GameMaker’s reputation has grown while running on such outdated code, it will be fascinating to see what a completely modern version is capable of.