Terrath
Terrath was my second year final project at university, and my first large scale project in Unreal Engine 5.
Terrath is an environmental puzzle game set on the back of a giant Tortoise. The player must absorb emotions from the plant life on the Tortoise's back and then imbue these emotions into objects in order to solve puzzles, with the environment changing depending on the player's actions.
Thanks to the game's innovate concept, and our high focus on polish, Terrath was voted as the "People's Choice 2nd year game" winner at Falmouth's 2023 Expo.
Genre
Environmental Puzzle Game
Engine
Unreal 5
Language
C++ & Blueprints
Release Date
2023
Project Type
University team project (Team of 7)
Trailer
Gameplay
Screenshots
Skills and contributions
Unfortunate circumstances lead to our teams' only other dedicated programmer having to leave the project a few weeks into the production phase, leaving me as the team's only dedicated programmer. Despite this, I worked hard programming a polished and uncompromised vision of the game, also stepping for the majority of the game's puzzle and level design.
My proudest contributions to the game are my Dynamic Camera System, Level design and my CSV importing textbox system.
Dynamic Camera System
For Terrath, I created a dynamic camera system which could transition between different states and viewing angles.
To keep the gameplay simple and accessible, we decided that the camera shouldn't be controlled by the player. Not only would this make controls simpler for a casual gamer (one of our core audiences), but it would also allow us to freely highlight certain points of interest with the camera; such as important puzzle elements or interesting landmarks.
The system works by switching between 2 main states when the player enters specific triggers within the world. These 2 states are referred to as Default Camera and Zone Camera.
The Default Camera follows the player at a set distance and is generally used when walking between puzzles or during puzzles set in a large area. When entering a trigger for a default camera, the camera will rotate to the appropriate distance behind the player, with the player's movement being adjusted so that the player's up input is always forward.
When entering a Zone Camera trigger, the camera will move either from it's default position or from the position of another zone camera, to a set camera position in the world. This camera state is used to frame entire puzzles at once, highlight certain objects and showcase landmarks in the environment.
Example of the Camera system in action
The camera triggers for the first corner of the game. Zone triggers are blue and Default triggers are red
Textbox System
The other major system I built for Terrath was its textbox system. The team's writer was inexperienced working in Unreal, so in order to allow him to freely add and edit lines without having to open up the Uproject, I created a CSV which could be imported into Unreal as a data-table.
Additionally, this data-table would include more than just plain text, and allow the team to freely edit textbox colour, character name and the audio played without having to open the Uproject and potentially causing a merge conflict within the scene.
How the above line is displayed in-game
Example of how a line is formatted within the CSV