Background

I built Root Canal with a team during Global Game Jam in January 2023. This was the first GGJ event hosted by the Cleveland Game Developers since the COVID-19 pandemic began, so it was great to see my fellow members again after nearly 3 years. I was sitting with two guys during the announcement of the theme: "Roots". I expected that I might work with them, but while getting food I ended up chatting with some other people about their backgrounds. We were clicking well, but most of them were programmers or inexperienced, so I excused myself to mingle with some others. I eventually saw another group that was already discussing game ideas, including one of the programmers that I had spoken with before ( Julie Hirt) and asked if I could listen in.

The "Roots" theme had made this team think of "root canal" as an idea for a game, where the player would control a bunch of bacteria trying to infect a tooth while avoiding dangers like toothbrushes and mouthwash. Together, we drifted from tower defense to RTS, and from infecting multiple teeth to infecting a single tooth with more anatomically correct tissue layers. Another artist and another programmer ended up sitting near us, so we invited them to join us too. The final team included myself (a programmer and Unity generalist), Julie as another Unity programmer, Keyon Cohen (another general programmer), three artists (one specializing in pixel art), and a musician—the largest game jam team with which I had worked up to that point.

The game came together quite well, especially on the last day. I was super impressed by our pixel artist who became very proficient with both Git/GitHub and Unity over the course of the jam. Julie was also really cool, and it was pleasant to work with another knowledgeable programmer, though she was still a beginner with Unity. In fact, this was the first year where I spent almost as much time guiding and coaching my fellow developers as on completing my own tasks!

Game Concept

In its final form, Root Canal was a 2D RTS game for PC. The player starts with 3 adorable bacteria characters with pickaxes (drawn by our talented pixel artist), and can click to move them around a tile-based map and mine through the layers of a tooth: white enamel, yellowish dentin, and red veiny pulp. Within the pulp, at the center of the overall tooth, is the nerve. Once a bacterium reaches the nerve, the player wins!

As bacteria collect "nutrients" from the mined tissues, players can use these nutrients to purchase power-ups from a side menu. The only power-up that we actually implemented was "Cell Divide", which duplicates a random one of the bacteria. Finally, a blue wall of "mouth wash" will cover the entire map on a timer, draining the bacteria's health as it goes. If all bacteria die, the player loses!

Technical Details

This game represented a couple firsts for me:

I developed the Health component used both for breaking the tooth tiles and for damaging bacteria from mouthwash, as well as the logic for bacteria movement through the tilemap (without crossing un-mined tiles) as the tilemap is being updated during mining. This logic was pretty basic, only allowing bacteria to move in straight lines until they bumped into an un-mined tile; I would've liked to use a more sophisticated pathfinding algorithm around the tiles like Dijkstra's or A*.

Finally, I set up the purchasing side menu UI and associated logic. The interface is a bit clunky; players must select an item with one click and then click the "Buy" button with another, all while the screen is scrolling in the background. A better UX would've been either 1-click purchases, or clicking the item a second time to purchase. And, obviously, we should've prevented the background from scrolling while the cursor is over the menu UI. These are just tweaks that we never had time to implement.