Programmer
Miskatonic is a narrative-driven strategy game where you play as a Lovecraftian monster that preys upon humans stuck in your maze. My role on the project was lead programmer, responsible for version control, code review, and supporting other programmers develop new content. Moreover, I developed some of the game's core systems including: Turns, Map Manipulations, and Cards.
For a team of 11 repository contributors, it was critical that code and version control standards were established at the start of production. That is, to reduce bugs, merge conflicts, and maintain a coherent code base. To achieve this, I leveraged GitLab's merge request feature to require that all programmers submit a request for any changes or additions made to the project.
Moreover, I was responsible for reviewing these requests and merging them into the main branch. In these reviews, I primarily validatied documentation, object-oriented practices, and any significant performance concerns.

A core mechanic of Miskatonic is the roguelike card system, including resource-limited card usage, one-time usage cards, varying rewards, delayed activation, rerolls, shuffling, and discarding. As part of a large team, I designed this system with cross-discipline collaboration in mind.
I created a templated workflow where designers adjust values like cost, reward, and card pool frequency without touching code. For writers, I streamlined the process with form-style text boxes that automatically populate the UI. Furthermore, I also designed a class diagram for programmers to reference when expanding the system- most commonly for adding new card reward types. This documentation was accompanied with a tutorial video to ensure anyone on the team could quickly learn the system.
Miskatonic features a procedurally generated maze that the AI within it navigate. The player has the ability to manipulate this maze through abilities that steer their navigation or increase their fear, for example placing a wall to lock off an area.
I developed the foundational system that handles resource management, UI, and input for these abilities in an object-oriented manner. This approach allows programmers developing new abilities to focus on their unique implementations without worrying about base code common to all abilities. I also created the Barrier Build/Destroy, Room Swap, and AOE abilities using this workflow.

Miskatonic's pre-production prototype was programmed by two people, myself and Caleb Flosky. With an additional 3 joining the team for production and several others that would be modifying scripts, our lack of robust documentation became a barrier. In order to make the code base approachable, I concisely documented all major systems and their respective scripts via a Figma board.
Moreover, provided UML class diagrams for the core systems I programmed: Turns, Map Manipulations, and Cards. In retrospect, documenting these systems thoroughly proved valuable since they were modified and expanded most during production.
This project gave me a glimpse into what it means to be a lead on a team as opposed to an individual contributor. That is, how to manage a repository with a large team and design systems in such a way that is friendly to others using or expanding upon them. Going forward, I will take these insights gained to continue developing with my team foremost in mind so that we may make the most of our talents and execute on the game's vision!