David Song
Home
Portfolio
Birdteeth
Subway Sermon
Fossilogical
Night Guard
Normal Weightlifting
Blight
Order in the Court
A Miniscule Moment
Resume
About
David Song
Home
Portfolio
Birdteeth
Subway Sermon
Fossilogical
Night Guard
Normal Weightlifting
Blight
Order in the Court
A Miniscule Moment
Resume
About


Night Guard

Night Guard is an ascii-themed roguelike centered around the core mechanic of a flashlight. Throughout the five levels, the game utilizes a dungeon generation algorithm, a roguelike item system, and custom made art and music.

The game can be found here or played in the browser below.

Night Guard was completely created and designed by me; using Unity C#, Aseprite, and Fl Studio. The entire project took around 4 weeks to plan and complete.

An additional arcade cabinet version featuring more rooms, rebalanced mechanics, a new enemy type (utilizing a custom-made A* pathfinding algorithm) was also created.

The Dungeon

I based my implementation of dungeons off of a few different inspirations. Obviously, my main ones were modern top down roguelike classics like Enter the Gungeon and The Binding of Isaac; but I also took inspiration from how Minecraft did their system for their strongholds, bastions, trial chambers, etc.

The idea to make a roguelike actually came when I was watching a video on Minecraft’s next update at the time. In the video, each of the rooms of the new dungeon type were laid out one by one. I was visually able to see the rooms, each with unconnected openings, and I quickly understood that the entire process was simple as creating rooms with connection points, and then connecting them with each other. Of course, it wasn’t actually that simple, but it got me interested in creating a game that featured a similar map mechanic.

After I had designed the other sections of gameplay, and it came time to actually decide on how I wanted to generate my dungeons, I looked into some other ways to do it. One other method I found was generating the rooms all completely separately, and then creating corridors between them using pathfinding. I didn’t end up choosing this method because I wanted my game to be faster paced, and I felt an Enter the Gungeon style teleportation mechanic would feel too out of place.

I also happened on some interesting maze algorithms that I wasn’t able to introduce to the game; my main concern being that the tile-based visual would be too hard to decipher when it came to small corridors. Although not randomly generated and certainly not as a main mechanic, Night Guard did end up having a maze room.

Combat

The final design for the map

An issue that persisted through the production of Night Guard was how to have the player interact with the world. It was an issue caused, for the most part, by my lack of experience in game production and design at the time. Although I’m very satisfied with the flashlight mechanic featured in the published version and the arcade cabinet version, it’s one of the most iterated mechanics that I’ve worked on so far.

Originally, the game was about using a flashlight to grow plants, which could then defend the player from enemies. A secondary mechanic was using the flashlight to explore the map, which remained in the final versions. After implementing the bat enemy however, I liked it so much that I wanted the player to directly interact with it instead; something more akin to the relationship that your character had with the enemy The Binding of Isaac, for example, instead of something like the player and the balloons in the Bloons TD series. In hindsight, I should’ve stuck with my original idea instead of trying to implement something that was familiar and safe.

A few days afterwards, I created and coded in a set of Isaac-styled combat mechanics, where the player could shoot bullets with the arrow keys, pick up items, and have their bullets’ characteristics vary depending on what items they chose. These mechanics raised several huge issues because they didn’t mesh with any of my pre-existing designs, they were just kind of shoehorned in. It was also worsened by the fact that the map generation, its visual system, and a handful of rooms were already implemented and working. This meant that I’d either have to completely abandon or alter to some degree: the mechanic of the flashlight and the tile based lighting; the small, pre-existing rooms, whose sizes were tailored to how big the flashlight would’ve been, and now annoyingly obstruct bullets; and most importantly, the feeling of mystery and exploration.

Desperate to not have to “waste” my hard work, I doubled down and threw together another set of redesigns. Now, the flashlight also served the purpose of freezing the enemies in place, and the bullets were able to pass through the walls. Everything fitted, technically.

To be blunt, that version of the game was boring and unengaging. The fact that the walls and flashlight were both wishy-washy in their roles made the experience clunky at best. It reminded me of how the items that let you shoot through walls or enemies in The Binding of Isaac were actually some of my least favorites, purely because of how unsatisfying it felt as the player.

The next iteration, which was also the final, was a sort of middle ground between the flashlight and the bullet mechanic. I completely removed the bullet system, keeping only the items, and refitted the flashlight to be able to change shape based on what items the player had. The flashlight also now damaged enemies instead of freezing them. This led the gameplay to feel much more cohesive, and in turn, more fun.

Given the chance to tackle the project again, I think it could be fun to continue with the original plants idea and shift further from the roguelike gameplay, though I don’t know if Night Guard would’ve ended up with its unique mechanics if it wasn’t for taking heavy inspiration from roguelikes.