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

Code Snippet

Part of the Textbox system, this snippet manages when the Text should be displayed/changed and if audio should be played.