I had played around in GameMaker 8 previously, but never got to in to it – mainly because I was inexperienced with game development at the time. But I always followed the GameMaker community – notably this subreddit and occasionally checking the forums. Despite my fascination with GameMaker, eventually I would go on to teach myself Unity and C#, so upon revisiting GameMaker (giving in to the temptation of the Humble Bundle this past summer), I felt infinitely more comfortable with it than my time with it before. The ease of picking up GML after doing everything in C# for the past few years astonished me; and it seemed like they had a function for everything. Now armed with knowledge, I created a game by building on an existing “engine”. While this helped get a basic understanding of GML and how to work with GameMaker, I never feel as comfortable building on someone elses codebase. So I set out to create my own from the ground up…
Initially I began prototyping and playing around with procedural generation (similar to what they used in Nuclear Throne), and got this working better than I anticipated. The functions offered in GML really made this a breeze (spawning ground tiles next to each other within the confines of the room and then creating certain walls around it based on its surroundings). I did find one flaw with the method I used, and that is I crank up the room speed during generation so that it can create the level much faster. I found out that this does not work on the HTML exporter as that is always capped at 60. This would steer me away from targeting HTML and instead revert back to the standard executable. After this, I had stopped for a while since I couldn’t think of a type of game to create to utilize this level generation. Eventually I would piece together a top-down character and melee attacks as well, and figured a small arcade-style game (with the goal of getting the highest score) would fit with the random level generation.
Looking to make the melee attacks more satisfying, I decided to spawn blood and body parts on an enemies death. The body parts were easy – just create a new object and push it. The blood would be a bit more difficult after finding that using surfaces would be the best way. Luckily there were some tutorials out there to help with this, but beyond getting them working as I wanted, I still don’t completely understand them.
Online high scores would be the next thing, and again, there was a great tutorial for getting these working which I used. I just modified it a bit so I could host the score database on my web hosting account and updated the high score table to match my UI style. Lastly, while we are on the subject of UI, this is easily my least favorite part of working with GameMaker. It works well enough, but I prefer being able to visually lay out the elements instead of doing it all through code. If GameMaker could add a visual UI designer (like a room editor, but just for the UI), I wouldn’t dread doing UI work.
I loved working in GameMaker 1.4 and working with GML for this project, but hate having to do everything for the UI in code (ironically, even as a programmer).