"Sanctum of Sorrow" is a 2D action-platformer, influenced by the atmosphere and mechanics of Bloodborne, one of my all-time favorite games. The project began as a prototype during my final semester of college, with a primary focus on refining my Unity coding abilities. Since then, I’ve dedicated substantial time to expanding and enhancing the code, implementing new mechanics and polish as my skills grew. During my internship at Baobab Games, I delved deeper into Unity development and brought this knowledge into the project. These new techniques, optimizations, and insights helped shape "Sanctum of Sorrow" into a more cohesive and polished experience. Though still in its early development stage, the game stands as a testament to my progress in game development and commitment to creating memorable gameplay. More updates and content are planned as the journey continues.
The player movement system is designed to deliver smooth, seamless transitions between various states, including running, jumping, and falling. Achieving this fluidity required implementing a state pattern design, which allowed each movement state to operate independently. By isolating each state in this way, I could efficiently debug and monitor specific behaviors, ensuring each one functioned precisely as intended. Additionally, By utilizing the animator compenent I synchronized character animations with gameplay actions to make every movement and transition visually clear to the player. This approach created a highly responsive system where actions felt intuitive and connected. The result is a movement experience that feels natural and immersive, allowing players to fully engage in the world of "Sanctum of Sorrow."
To enrich the combat experience in Sanctum of Sorrow, I implemented a set of attack options, including a fluid slash combo attack, each action accompanied by distinct visual and sound effects for added impact. The combat system features carefully designed hitboxes that enhance the precision and satisfaction of each strike, making combat feel strategic and rewarding. A standout element is the parry mechanic, which allows players to deflect enemy attacks and projectiles with skillful timing. This defensive maneuver adds depth to the gameplay, encouraging players to master timing and coordination, elevating the overall engagement of the combat experience.
Much like the player character, I implemented a controller for enemy behavior that allowed smooth transitions between isolated states by leveraging a state machine and state design pattern. This approach enabled a clear structure for managing various enemy states, such as idle, attack, and pursuit, while keeping behaviors modular and easy to debug. To support future expansion, I built the enemy framework using inheritance, allowing for easy customization and extension. Currently, only one enemy variant exists in the game, but this flexible, scalable design ensures that new types can be integrated seamlessly as development continues. This organized structure not only addresses current gameplay needs but also sets the groundwork for an adaptable and diverse enemy roster.