A Broken Covenant

A Broken Covenant is a 3D atmospheric puzzle horror game. The game was made as an exam project in World Building with “Dystopia” as the theme. This project was my first larger project in 3D.

In the game, the gates of hell have opened up, darkness and corruption has spread, and the whispers of mankind’s sin plague the mind of the player. The player must guide the Light to the church, where the player is meant to overtake or cleanse the corrupt priest to cleanse the world of evil.

The 3,5 week timeframe covered the brainstorm and game design phase, production, and the written part of the academic assignment. Therefore we chose to perfect the Light puzzle and atmosphere. Given more time, we would like to introduce more puzzles, characters, and an endgame interaction with the priest.

My Primary Contributions

  • Programming
    • Code architecture 
    • Player controller
    • Puzzle elements
    • Player interact
  • Game design
  • Cutscene
  • Cautious toe-dip into Blender with modelling and UV unwrapping

Systems

The Mirrors are an integral part of the puzzle design, as they are the primary element the player interacts with. The challenge with the mirrors was to perfect the rotational behavior and the interaction with the Light beam. On interaction, the player and move input are locked. The vertical and horizontal rotations of the mirror get manipulated around their respective pivots based on mouse input.
The Crazy Fog is game feel and minor puzzle element that allowed us to influence the player’s traversal. The fog blocks the player, until dissolved with a Light beam, and the player goes mad while standing inside it. Global volume (post process effects) value are lerped between, based on the amount of time, the player stands within the trigger zone.
The Cutscene was built using Unity’s built in Timeline Editor, which plays animation clips of camera movement, synced to the audio.

Key takeaways

Game optimization was something we learned the hard way, as the assignment dictated that the game should be playable in browser, which we didn’t know until shortly before deadline. This resulted in a rather downscaled web build and an extra full-scale downloadable Windows build on the side. It did, however, introduce me to the discipline of optimizing my projects for different platforms.
This project taught me a lot about code architecture and good principles when working with multiple programmers. I got more familiar with singletons, enums, rotation logic, and interfaces. I was also exposed to some of Unity’s shadergraph, which later proved to be very useful (see Exhibition Escape).