top of page

Requiem Of A Samurai

About

This project was created as part of a final group assignment at university. It had originally started out as a roguelike similar to "Enter The Gungeon" before being adapted to more accurately fit a "Metroidvania"

Project Info

Position: Gameplay Programmer
Team Size: 2
Development: 16 Weeks
Language: Unity (C#)

 

Project Overview

The objective of this project was to design and develop a short game level that effectively showcased a range of gameplay mechanics, while collaborating within a small team during the final semester of our university studies.

​

At the outset, the team engaged in discussions to establish the desired learning outcomes and to define the project's creative direction. Initially, we proposed developing a bullet hell-style game inspired by Enter the Gungeon, incorporating procedural floor generation similar to that found in The Binding of Isaac. However, early in development, we reassessed the project scope and identified the need for a gameplay structure that allowed for greater player agency and adaptability.

​

Following this reassessment, the project pivoted toward the Metroidvania genre. We conducted a brief analysis of contemporary titles within the genre, focusing on player feedback and common design trends. A recurring theme in player commentary was a desire for increased variety in available skills and a broader selection of weapons. This insight guided the design process, with an emphasis on enhancing player choice and gameplay diversity.

My Contributions

- A custom Save/Load system was developed to manage game data, including checkpoints, collected items, acquired skills, and other key gameplay elements. Data is written to an encrypted file on the local disk to minimize the risk of player manipulation or cheating. This system utilizes serializable dictionaries that store key-value pairs for all relevant game data, ensuring both flexibility and scalability for future expansion.

​​​​

- A modular crafting system was implemented using Scriptable Objects. This approach enabled efficient creation and categorization of new items directly within the Unity Editor. Items could be instantiated as various types—such as materials, weapons, or armour, with those designated as equipment able to interface with and modify player statistics dynamically, allowing for a highly customizable gameplay experience.

​​​​

- A checkpoint system was designed to generate and assign unique identifiers to each checkpoint instance. These IDs were stored and referenced during Save/Load operations to accurately determine the nearest checkpoint relative to the player's position. This mechanism ensured precise player placement upon game reload or after in-game death events.

​​​

​- Finite State Machines were implemented to govern the behaviour of both the player character and all enemy entities within the game. This approach facilitated a higher level of control and modularity in defining character actions and responses. The FSM designed for the player character was structured in a way that allowed it to be extended and shared with clone-based skills, enabling consistent behaviour and interactions across related entities. Additionally, enemy FSMs were designed to be both reusable and customizable, allowing shared core mechanics to be easily modified to support distinct behaviours and unique interactions for each enemy type.

bottom of page