For over the last 3 years, I have exclusively worked in Unity 3D for all of my indie game creations, but a few years ago before I learned to use it, I had begun a project in Gamemaker 8 (which eventually got ported to Unity after I had become increasingly familiar with Unity). In August of 2016, I would again revisit Gamemaker: Studio by downloading the free version and after playing around (translation: getting lost) in it for a bit, I had gotten my fill. Enter the insane deal on the Gamemaker Humble Bundle and the itch to explore Gamemaker would show-up again. After a couple of days contemplating the purchase, I bit the bullet and went for it (the included source code files were the tipping point since they would serve as examples for me to see how the engine was structured).
While the included source code files proved to be a great help, it was actually Yal’s Maria Engine that really appealed to me. Not only because I could freely, and legally, build on it, but it also had a great feel. After reducing the slip factor of the character, it felt even better. With this, I set out to make a 2D platformer as my first Gamemaker project, but since 2D platformers are one of the most over-saturated genre’s, I wanted to give it a unique story. And with that, Besus and the Game Engines was established.
So why use Gamemaker for this when I could do all of this in Unity? Proper 2D. Anyone who has worked in Unity can attest to it’s less-then-stellar “true” 2D nature. While it can be done, it does take considerably more setup to accomplish. At the same time, I always wanted to learn another game engine. I know that most people stick with one once they know it, and while I will always look at Unity as my main engine, I was starting to get bored with it. Much in the same way that I tend to start other little side projects, I wanted to take it one step further this time.
Unlike when I first began working with it a few years ago, I was coming in to it with sufficient programming knowledge this time. While we are talking C# compared to Gamemaker Language, as I was going through the code in the Maria Engine the vast majority made sense to me. Couple this with the great documentation (both online and offline) for the various GML functions and modifying the code base of the Maria Engine would prove very easy to do.
I would by lying if I said that I could implement features as quickly as I could in Unity, but I enjoy a challenge. First on my list of items to modify/add was a double jump. With the existing code base offering a great platformer jump ability (varying height based on how long the button was held), I always seemed to press the jump button while in the air in-hopes that something would happen. While the double-jump function itself was pretty simple to implement, calling the animation for it would be a bit more difficult and where I missed Unity the most. Unity’s animators made calling various animations and their transitions very straight-forward. Now I was calling (and looping through) specific ranges of frames strictly in code. This made timings a bit more complicated, but eventually found the clamp and mod functions it offers.
I experimented with other abilities such as a wall jump but found that it didn’t add much to the overall feel, so I scrapped it. The next big Gamemaker-specific hurdle that I would tackle would be cutscenes. I rarely made scripted cutscenes in Unity, so this was entirely new ground for me. After a bit of googling, I found that timelines would likely be the simplest way to pull these off. Combined with using the with construction in Gamemaker (which I soon fell in love with), the only challenge now was sorting out timings for the movements and dialogue in the cutscenes. A few hours of work later, and I had myself an intro to set the tone for the game!
Anyone who knows my history with game development knows that my least favorite part of making a game is the level design. This rightfully took me the longest of any part of this project (or any for that matter) and is part of the reason there is only 7 levels. With a smaller scope set, I had more motivation to finish the levels and complete the game.
That begs the question, how did Gamemaker compare to Unity for me? With the exception of character animation calls and transitions, I would happily work in Gamemaker over Unity again for a 2D project – with the exception of doing a prettier 2D title like Ori and the Blind Forest. Even though I know that Gamemaker is more than capable of doing a title like that, I won’t have to worry given my lack of artistic abilities. For doing anything retro however, I love the ease and simplicity in getting a basic system up and running in Gamemaker. It seems to offer a level of precision in character control that is difficult to recreate in Unity. Gamemaker Language is also surprisingly simple to dive in to with a basic understanding of programming. Rest-assured however that everything that I do in 3D will always be done in Unity!
If you would like to play my first foray in to Gamemaker with Besus and the Game Engines, you can visit the downloads page or just use the download links below.