Introduction
At the start of the spring semester of my sophomore year, I choose to do an honors contract for the game design course Intermediate Game Design Development. I believed it would be a great learning experience for me as a game designer. Due to the nature of honors contracts, this would help me learn to stick with projects to the end rather than abandoning them when a new idea comes. At the time i never truely finished a game so I knew if I worked hard I could have a great project for my portfolio. This was also a great excuse to learn more about my favorite game engine to use, Unity. The professor and I agreed on a 2D platform shooter mobile game as the basis for the project.
Early Enemy Test
Tools Used



Aseprite
C#
Unity
Overview
In this game, players play as a white blood cell whose goal is to defeat all of the germs invading its home planet. Their goal is to use the heart gems that keep the planet alive to strengthen their power and influence over the galaxy. As you play, you can collect new weapons with different capabilities that can help you on your journey. Defeated enemies can drop currency that can be used to further augment weapons into stronger variants. For the contact, I made three levels and a boss fight to showcase a glimpse into what the full game would look like.
Trailer
Skill Development
Programming
As a result of my contract, I learned many skills that I will be able to use later on in future game projects. I would say the most impactful skill I learned is how to make a complex movement system. Compared to previous projects, the movement in this game is much more dynamic. The system can handle variable terrain and be affected by forces outside of the player's direct control without discarding their input, such as wind.
Starting with the terrain, I used ray casts to detect the normal vector of the ground below the player. This vector is then used to calculate the direction the player should be moving at any incline. Normally, the player will snap to the ground, but if they are moving fast enough to exceed gravity's pull on an incline, they will shoot up into the air, sort of like how ramps work in a Sonic game.
Handling forces outside of the player's control was also a challenge for me. To achieve this, I created a container that other scripts can call to if they would like to add additional forces to the player. When called, the script can modify attributes of the force, like how long it will last, what the gradual curve looks like, and what happens when the force has completed its motion. It took a long time for me to get the feel of this system working satisfactorily, but I think the result turned out great.
Creative Thinking
As a game developer, you are constantly put into situations where creative intellect is significantly beneficial. Any good level requires a lot of forethought into how players will see and interpret the challenges presented to them. For instance, the first level is typically designed as an introduction and a sales pitch for a game's mechanics. The first opening minutes are pivotal for overall engagement with a game, which is why it is so important to hook someone right off the start. Due to my focus on programming rather than level design, this took a lot of thought for me. I found it challenging to determine how to best utilize the tools I created to their full potential. This led to some level redesigns during development as I continued to nail down the feel of the game.

Initial Sketch

Final Result
Reflection
Health Guru was one of the most difficult projects I have ever attempted. It pushed me to learn so many new things about programming. I believe that this project was a significant turning point for me, as it helped me become a much better programmer. It also showed me just how much I still needed to learn to create the experiences I wanted. This project was one of the main reasons I started taking computer science classes, as I encountered numerous problems that I did not know how to solve yet. Without this project, I believe that I would be much more complacent than I am today due to the complexity of it.