Go Back
[Whole Page is still Work in Progress]

Leaving the Tide
Project Info
Project Status
Project Type
Project Duration
Game Engine
Language(s)
Platform
Primary Role(s)
Team Size
Active
Final Year Project
6 Months (May 2024 - December 2024)
Unreal Engine 5
Blueprint
Windows
Lead programmer, Gameplay Programmer, UI/UX Programmer
6 (3 Artists, 3 Programmers)
About
Leaving the Tide is a 3D adventure game about a boy who returns after his tragic passing to help loved ones find closure. Players explore, complete quests, and uncover the village's hidden memories in this heartfelt journey. This project marked my first experience with Unreal Engine 5. Though challenging at first, I gradually became comfortable with the engine, learning new skills along the way.
Roles and Responsibilities
-
Project Setup and Source Control:
-
Project was created in C++ incase we wanted to code in C++ in the future
-
GitLab was used for larger storage capacity
-
GitHub Desktop was used for source control
-
-
Led Programming Team:
-
Guided 2 programmers
-
Assigned their tasks
-
Reviewed their work
-
Created technical document as guideline.
-
-
Collaborated with Lead Designer:
-
Worked on game story and quest ideas
-
-
Designed and Implemented Gameplay Mechanics, including:
-
Player movement (move, sprint, jump)
-
Third-person camera rotation (mouse, auto face forward)
-
Dialogue System:
-
Letter-by-letter typewriter effect
-
Camera switches based on NPC dialogue
-
Various triggers (NPCs, objects, phone calls, player monologue, mini-games)
-
-
-
Developed and Integrated UI elements such as:
-
Splash Screen
-
Main menu
-
In-game HUD:
-
Dialogue (letterbox effect, next indicator)
-
Controls UI
-
Notebook UI
-
Quest log UI
-
Speech Bubble UI
-
Interact UI
-
-
-
Implemented Audio Systems for:
-
Implemented dynamic footsteps
-
Implemented ambient music and interaction sound effects
-
Player Movement (WIP)
-
Move (default UE)
-
Sprint
-
Jump
-
Camera input (default UE)
-
Auto reset camera






Dialogue System (WIP)
-
Switches to a dialogue-specific camera angle (set in the target actor)
-
Hides all in-game HUD elements and plays letterbox effect
-
Has different function based on the situation (NPC, object, player monologue, phone calls, minigame)
-
Fetches dialogue data from the data table for the targeted actor
-
Display dialogue text letter by letter on screen
-
Restores the original camera view and unhides all HUD elements
It checks if the interaction target is an NPC or object. Based on the result, it switches the camera to focus on the target using a smooth blend. It then sets the camera to cinematic mode to hide the player, restrict player movement.


Type Dialogue is responsible for the letter-by-letter typewriter effect for the dialogue system, revealing text with a set delay between each character. It includes a typing sound effect and an indicator that appears once typing is complete. Players can press the interact key to skip and display the full dialogue instantly.




Type Dialogue is responsible for the letter-by-letter typewriter effect for the dialogue system, revealing text with a set delay between each character. It includes a typing sound effect and an indicator that appears once typing is complete. Players can press the interact key to skip and display the full dialogue instantly.
UI (WIP)
-
Splash Screen
-
Main Menu
-
Options Menu
-
Quit Button
-
-
In-Game UI
-
Controls UI
-
Speech Bubble UI
-
Interact UI
-
Dialogue UI
-
Quest Log UI
-




Mudskipper Catching Minigame UI
This minigame has 3 states, idle, progress, and catch state. When the minigame is first initiated, it starts at idle state. The idle state will start with a button prompt in the middle of the screen and a progress ring oscillating in size as the idle animation, looping a number of times (determined at the start, between the range of 2-4). Once idle state ends, it enters progress state, where the ring decreases at a random speed (determined at the start, between the range of 0.5-1.5). When the ring reaches the size of the button prompt, the player has a 0.3 second window to press the button; pressing too early will result in a fail which forces you to exit the minigame while missing the window restarts the state to idle again. The timing is randomized to offer an unique and unpredictable experience for the players.




Dynamic Footsteps
Dynamic footsteps plays footstep sound based on the material type the player is stepping on. A line trace detects the surface type by tracing from the player's feet, triggering the corresponding footstep sound during specific points in the walking or running animations. Each sound is precisely positioned to play when the foot hits the ground through the use of animation notify.

