Sam Sherrod
Software and Game Developer

Red Knight - 2D Action Platformer


Released March 2023
Student Group Games Development Project
Role: Lead Programmer


Red Knight is a 2D action platformer centered around a vampire hunter seeking revenge against Dracula. It was built by myself and 3 other students using the Unity game engine. It is inspired by games such as Megaman and Enter the Gungeon. A unique aspect of the it is that it is both a 2D action platformer and a top down action game similar to Zelda II: The Adventure of Link.

This was a group project made for University of London's Game Development module. The game is playable on WebGL by clicking on the link below.

My part in the development and programming of this has included:

  • building a game manager script that persists between scenes, which keeps track of the player's stats such as score, lives, bomb count, key count, and the player's health.
  • optimising and improving performance by more than 50% by researching best practices, as well as implementing design patterns such as a singleton for the game manager script, and object pooling for the player's bullets, bombs, bomb explosion particle effects, enemy projectiles, and boss projectiles.
  • creating a damage script that is attached to the player's bullets, garlic bombs, enemy projectiles, enemies, spikes, and the boss. It included functionality to be able to customize the amount of damage in the inspector, a boolean to check if the game object can deal damage upon entering or staying in a 2D trigger (OnTriggerEnter2D and OnTriggerStay2D), or a boolean to check if the object can kill another object instantly. The spikes and the rush scene for instance can kill the player instantly.
  • creating a flexible and scalable health system where the player, destructible objects, all enemies, and the boss share properties and functions by inheriting from a custom base Health class with virtual and override functions for each inherited classes allowing them to be independent and yet still share some code from a parent class such as current and initial health, being able to take damage, or dying. The player and boss each have an amount of time they are invincible for upon taking damage as well.
  • creating all aspects of the UI integrating it with the player's stats and the game manager script, as well as for the boss' health bar. This includes designing and programming a UI manager, a main menu, and a pause menu with a controls page, level selection page, credits page, resume, and exit game functions.
  • creating a basic camera controller script with parallax that follows the player and is clamped between four 2D edge colliders representing the edges of each rectangular level.
  • creating a fade animation in between scenes
  • debugging, testing, and fixing bugs in any phase of the development
  • creating a tilemap system with rule tiles, colliders, sorting layers, and functionality for teammates to quickly prototype new levels in an easy and flexible way.
  • creating a flexible pickup system to allow the player to pick up keys and bombs. The key and bomb classes inherit from a base pickup class.
  • designing game mechanics including using garlic bombs, and responsive jump controls
  • setting up the player's animation state machine, and connecting it through code using an enum to keep track of which state the player is in.
  • creating our GitHub repository, as well as committing, pushing, and merging branches
  • building it for WebGL and deploying it on Itch.io
  • managing all of our files including our GDD, references, weekly tasks lists, features and more on our Google Drive.
  • sending it out for testing to our school community on slack, and adjusting game features and preferences based on user feedback.

Technologies used:

  • C#
  • Unity 2019.4.40f1
  • Various art and sound assets from Unity Asset Store and Itch.io
  • Google Drive for private collaboration

Play Game Online View Source Code