Mid-Death Crisis


Overview


  Mid-Death Crisis is a local-coop strategy game about a group of undead minions that help their gloomy lichlord, Zeb, regain his passion for evil. Players redirect Zeb's weakened spells, add abilities and effects to amplify their effectiveness, then destroy the enemies invading Zeb's crypt.

  Mid-Death Crisis was part of my senior capstone from August 2023 to May 2024. We had a team of 9 developers in the fall and expanded to 16 core developers along with a few contractors and voice actors. We released on Steam of May 2024.

Programming Responsibilities

(Click to see more)


Gameplay

Designer Tools

Animation & Graphics

Documentation

Gameplay

  My main role was Gameplay Programmer. I handled the core architecture outside of AI such as our turn system, spell redirection, and level/room traversal systems. I implemented an audio bark tool too that allowed our sound designer to easily swap out and randomize different voice lines at different moments in gameplay. I enjoy gameplay programming since I get to be at the forefront of the player expreience and help designers by giving them easier access to modify game feel directly.

  Mid-Death Crisis was a complicated game that went through a lot of iteration. Originally, it was split into rigid phases with the turn system. We pivoted to allow players to do all their actions in one phase then enemies would do their actions in another. The architecture was not originally intended to have a lot of realtime gameplay in each phase, but because of the way I made the system, it only took a couple days to turn over. I designed it to be modular so we could be prepared for heavy iteration like moving all the gameplay from 8 phases into 2.

Designer Tools

  One system I made to help designers was a narrative tool. It was driven by data-tables and allowed our narrative designer to choose text, audio, images, and character names that would be displayed at each beat of dialogue. This helped with iteration since it was easy to use and required little interference by programmers once it was in the hands of designers.

  Additionally, I implemented an audio bark tool that allowed our sound designer to easily swap out and randomize different voice lines at different moments in gameplay. I also created a tutorial popup system to simplify tutorial implementation as well. These tools saved our designers and programmers a lot of time that was devoted to key features and improvements.

Animation & Graphics

  Another key role I held was in animation and graphics. I implemented all the animations for characters and enemies using Unreal's animation blueprints. Characters had some animation masking to allow them to move while performing actions with the upper half of their body such as holding the lich and throwing him. As new character models were implemented, I worked closely with artists and animators to ensure smooth implementation of their work.

  We ran into performance concerns during the project. Some lower end laptops were performing poorly with our game despite the low complexity. I took on the task of profiling the project and found that rendering was taking too long for as simple as our visuals were. I was able to use Unreal's suite of tools to identify issues such as light complexity, unbaked lighting and poor baking practices, and expensive rendering techniques such as shadow rendering methods to more than double the speed of our game.

Documentation

  While the tools I developed were helpful to designers, they would not have been so easy to use without the documentation I wrote. For each key component of the project or tool that designers would be interacting with, I wrote comprehensive documentation. I detailed the necessary steps and components when setting up a new level, how to add new audio barks or modify existing ones, and how to interface with the narrative system among other things.

  I also wrote an SVN guide for new and existing members of the team with frequently asked questions and detailed images to help guide team members. Designers had a lot of positive feedback for the documentation I wrote and it was instrumental to our success.

Tools


Unreal Engine 5

C++

Blueprints

Jira

SVN

Confluence

Reflection


  Mid-Death Crisis was a lot to take on at the end of our undergraduate careers. As with any project, we were limited by scope and time. A challenge we kept running into was communicating enough to the player for them to understand how to play on their own. The mechanics behind the game get very complicated to the point where the original pitch for the concept took 40 minutes. Because of this, the biggest challenge for programmers was keeping up with all the iteration that had to be done to make sure the game was still fun while also being understandable to a wider audience. I made a lot of the architecture and tools open-ended to allow designers to apply them in different ways and to accelerate overhauling of systems whenever programmers got involved.

  As a team, our favorite part of the project was the team itself. Every team has its problems of course, but whenever anything went wrong, there was accountability and the situation was resolved professionally. While we were accepting of extenuating circumstances, our team leads were also effective at making sure people were still contributing equitably and not skating by or over-working themselves. Personally, Mid-Death Crisis isn't a game I would play, but I and a few others on the team didn't put in any less effort because of that. We never had to worry about anyone lashing out or boiling over because we all communicated honestly about our needs, work we were doing, and what we were able to accomplish. Coop Loop will always be dear to me and stand as a monument to what a game studio should feel like.

  I'll also never forget when our narrative designer said "What if we called it 'Mid-Death Crisis'?" and we all realized that that was the game we were going to make.