I’m a lifelong gamer. From aggressively driving my way to become ranked 12th in the world in Burnout Paradise to carrying my teams to victory at Vanderbilt’s semesterly Vandy_LAN League of Legends tournaments, I’ve played and excelled at a slew of video games. Needless to say, video gaming is a core passion of mine and I don’t see myself stopping this pursuit any time soon.
Wanting to involve myself in this hobby more, I thought it would be an interesting idea to code a game. I’ve spent years on one end of the coder-gamer interaction, so why not make my final project about the other side of the entire interaction? Playing a complex video is a breathtaking experience, but behind every Skyrim, every Witcher, and every Fortnite, lies a team of dedicated developers who work tirelessly to ensure that the players are fully invested in their games. They are the architects of the out-of-body experience that is core to gaming: the moments where players “leave” their body outside the computer and become fully immersed in the virtual experience. I didn’t have such lofty ambitions as to attempt to emulate one of these developers, but I certainly wanted to get a taste for game-making, both in order to develop a new skill and also to foster an increased appreciation for the art of game development.
The first step to making a game was deciding what to make it about. Having read Ernest Cline’s Ready Player One, we were enthralled by the final fight scene at Castle Anorak, not particularly due to the compelling nature of the writing or the exhilaration of the action (neither of which was any more impressive than the rest of the book), but because of how many different genres and references were jam-packed in there. Ultraman fighting Godzilla is a pipe dream for many people who grew up as fans of both franchises, and I can only imagine that having it visualized must be an immeasurable joy. The David and Goliath theme persistent throughout the entire battle, the big-robots-fighting-big-monsters battles that have become such a staple of modern Hollywood blockbusters, the DeLorean DMC-12 as a loving throwback to Back to the Future (think about that wording for a second), all of these make for a wonderfully cacophonous amalgamation of popular media. There was no way we could pass up making our game about this battle.
The second step in the process was thinking about what kind of game to make. I regularly game, and while I play multiple multiplayer games at once (Fortnite, League of Legends, Rocket League, etc.), I generally commit myself to playing one single player game at once. I believe single-player games offer an unparalleled and highly personal storyline experience that cannot even come close to being emulated by most multiplayer games, and thus deserve dedicated time towards their completion. Currently, the game I am playing is Nier:Automata. Nier is a highly acclaimed action role-playing game featuring Androids, a post-apocalyptic Earth, and humanity’s desperate struggle to reclaim this Earth. One key aspect of Nier that caught my eye was how it switched the mechanics of gameplay without batting an eye. More specifically, the game constantly switches perspective, flowing seamlessly between a Dark Souls-style 3D hack-and-slasher to a side-scrolling shoot-em-up à la Megaman, a bullet-hell space shooter like the Touhou series, and other modes of gameplay.
From left to right: Dark Souls, Megaman, and Touhou.
It’s easily argued that this could make for a cluttered gaming experience, but the style and ease with which Nier carries these transitions out (VERY minimal usage of loading screens, for example) makes for a compelling and dynamic experience. Moving forward from Nier, I wanted to emulate the changing of mechanics, which interestingly is a mechanic in and of itself.
A demonstration of the switching of perspectives in Nier:Automata
The final step, naturally, was constructing the game. Kyle and I tested multiple game-making softwares, including Stencyl, Scratch, Unity, and Gamemaker. Stencyl and Scratch were both drag-and-drop softwares. While this would be nice for one who knew nothing about coding, Kyle and I have both extensively studied computer science, so why not use our knowledge to make a game instead of taking the easy way out? After trying Unity out, we immediately decided against it. Unity is very powerful, too much so for our purposes of making a simple game for this class’s final project. Trying to make a simple object in the engine took upwards of an hour, and we knew it would be a cumbersome task to try to code anything functional in this engine. So we settled on Gamemaker. Gamemaker is an intuitive software that makes it very manageable to create functional and varied games, so we were excited to begin learning this.
Initially, the plan was to make a game consisting of 5 distinct “phases,” each with its own mechanics and control scheme. The first phase would be a topdown arena shooter, similar to the Boxhead flash games. After a time interval or a certain number of killed enemies, the game would move on to the next phase.
One of the Boxhead games
The second phase would be a side-scrolling fight versus a massive boss, akin to a game like the recently released critically-acclaimed Cuphead.
A boss fight in Cuphead
The third phase would be a turn-based Final Fantasy-esque game between Parzival’s party and Sorrento.
A fight in one of the Final Fantasy games
The fourth phase would be the escape, where the player rides a car to the end of the game, dodging bullets, debris, and enemies, similar to the Flash game “The Flood Runner.”
One of the Flood Runner flash games
Kyle will talk more about the development of the game, so I’ll quickly brush over my process so as not to make this post too long. Ultimately, we decided on two levels for the game, as making each game with new mechanics would be an incredibly long-winded process. I made the side-scrolling shoot-em-up portion while Kyle created the car driving portion.
The first step in my game development was creating the menu, a seemingly simple task that took hours due to the steep learning curve of Gamemaker.
My initial menu
The next steps were making the basic platforms, coding the game mechanics, drawing the background and creating the special effects, and finally creating the completed game product.
The basic platforms
The physics and tilesets are added
The background and special effects are complete
The finished product with the Godzilla boss
Kyle will now discuss the actual game development process in greater detail, but if you want to try out my game, attached below is the link to download the Zip file containing the game.
“What is the most resilient parasite? Bacteria? A virus? An intestinal worm? An idea. Resilient… highly contagious. Once an idea has taken hold of the brain it’s almost impossible to eradicate.” (Inception, 2010)
At some point during my childhood, spent among some of the classic video games like Counter Strike 1.6, Age of Empires: Rise of Rome and The Sims, a little ‘idea’ had taken root in my mind: to make some kind of video games that I could be proud of, no matter how small or simple it is. Then, after such a long time had passed and that idea had seemingly fallen into the darkest depths of my mind, about two years ago, I found that it was still firmly rooted right there in my head, and finally took the first step on my game-developing journey on a blazing summer day. After several weeks tinkering with the engine Stencyl, I managed to create something that look like this: (it’s available on Newgrounds: https://www.newgrounds.com/portal/view/678131)
It was a very simple game where you control a red circle that avoids swarms of small, white circles while firing blue circles at your enemies in order to survive for the longest time. Everything was done quite easily by using the drag-n-drop features available in Stencyl and watching a bunch of helpful Youtube tutorials. Embarrassing as it is to admit, it took me weeks to just copy what those experts on Youtube do in their videos and implement my own features. Although it’s really primitive, it was an exciting task for the high school junior me. I got a chance to experience just how easy it was to start making a game as well as how hard it was to actually finish one.
Two years later, here I am with a chance to revisit that same experience, as I fumble with Game Maker Studio while working on the final project with Sunny. After brainstorming together for a while we eventually decided to make a game about the final battle in Ready Player One. This time, the challenge was on a whole different level – we decided to use the Game Maker Language, which entailed actual coding; I drew my own sprites instead of importing from online resources (then even animated them!) After that there was still more stuff to do – implementing multiple types of enemies and bullets, figuring out game logic, modifying numbers to balance the game and all that jazz – it felt like playing New Game Plus on a harder difficulty.
My journey started out with the setting. Remember how, in the movies, Parzival broadcast his call to arms on the barren Planet Doom, in front of Castle Anorak?
What I had in mind was that, the reason why there was no sign of Sixers on the planet surface (except for in Castle Anorak itself) was that Parzival and his pals had already cleared out any Sixer forces and defenses on the outer perimeter. I decided that my game was basically going to be about that first strike. Playing as Parzival, riding in his DeLorean DMC-12, you have to defeat swarms of Sixers and destroy their fortifications, which consist of layers of towers and a portal from which Sixers are continuously spawned (Sorrento configured the portal so that it can teleport Sixers from anywhere in the Oasis to Planet Doom!) As soon as you shoot down the Portal, you win.
(Yes, the portal is that thing in the bottom-right corner. The other blue thing is the tower)
But what comes next was the hard part. Being one with barely any artistic talent, I struggled quite a lot with the sprites. My first idea was to check out the Game Maker Store, but Free users are not allowed to download or purchase anything. Dejected, I figured the only thing I could do was to create my own sprites. On my quest to search how to make video game art, I stumbled upon Piskel.
It was really beginner-friendly – even as someone who has zero (pixel) art experience, I was able to make my first character somewhat look like Parzival’s DeLorean DMC-12 (hopefully…)
The enemies were a bit easier to draw – the sprites for basic melee soldiers and ranged gunners were quite straightforward:
By the time I got to the walker I was on fire. I even went so far as to animate them in a simplistic way just to make them more lively. Eventually the walkers had a walking animation, a charging animation for their attacks, and a death animation.
I also made some death animations for the soldiers (they implodes with a sound of coins splashing on the ground like in the movie) and for when the player took damage (the car flashes with electricity leaking out) Unfortunately, I didn’t have enough space in Game Maker to animate the towers crumbling, which I was initially actually really excited to do.
Speaking of towers, I initially drew these four types.
What I had in mind at first was to place Parzival in the middle of the map, and then put each type of tower in a corner so that the player has to defeat all 4 elements in a Avatar-esque manner first before fighting the boss in the middle. But unfortunately, the Trial version of Game Maker only allowed users to create 15 objects (which, by the way, includes players, bullets, animations, so by the time I finished with dynamic objects there were already 13 or so) and therefore I resorted to having only one type of tower (the water one).
Next up is the bullets, which were the most easy sprites to draw because they’re mostly straight lines and a few curves with minimal shading.
In addition to that is the tileset, which were basically the terrain that the player and enemies walked on. It was really plain at first, so I tried to decorate it a bit with little cracks in the ice – when the tile blocks are put together, you can see them (kind of) connecting to each other.
Lastly, the most tiring process of all – coding and balancing the game. Learning the Game Maker Language was quite a pain because it differed from most programming languages I’ve picked up. It took a while to get the hang of it, and even by then it was still a headache to figure out the logic and interaction between characters in the game. Handling enemy behaviors like shooting, moving was already hard (not to mention each enemy type has different attack patterns with different codes!) but to account for in-game “events” like collision with bullets or triggering invincibility upon taking damage and all that stuff was even more complicated than I expected. Then I had to dive into the game myself and try to see if what I currently have is too hard or too easy, then change player and enemy stats accordingly – HP, movement speed, attack speed, damage,… everything needs to be tweaked to the tiniest details. When all is said and done, what’s left is implementing menu screens, and voila, here’s the final product.
It has definitely been a really fun experience to put this all together, and after this project I found that small ambition from my childhood again. Once more, I was able to create my own little video game, and although it’s still quite primitive, it has been such a huge improvement from the first one I made. I can only wish that from this, it willgo on to become even more of a video game one day.
Here is the game for anyone interested!
Till we meet again,
Kyle and Sunny.