The Lost Highlands

Overview

An original IP from Konglomerate Games. Set off on an adventure which explores Scottish cultural myths and their connection with nature. Starting from the last quarter of 2023 I have worked with the whole team, and at some times alone, on this project. Due to the size of the team I have had to do a variety of work including but not limited to: Prototyping and polishing gameplay mechanics, visual effects, AI, UI, UX, creating internal tools for development and optimisation.

My Contributions

Gameplay

There are many aspects of gameplay that I have prototyped, iterated and polished on this project. A perfect example would be the character controller. Having to kick the project off myself I created the original first person character controller. At a later date we shifted to 3rd person so I iterated on the character controller to work in 3rd person. From feedback from playtests and design the character controller was iterated on to try improve the robustness and feel of the character. When some of the main mechanics had to be reworked it became apparent that the character controller needed to become more flexible. Me and the other programmer got together to recreate the character controller from scratch and during our planning we came up with the module system where we could create movement, aiming, animation modules that we could activate and deactivate to dicate the movement of the character. As an example we could have the standard free aim setup which would allow the player to run around and move the camera around where the character model would face the direction of movement. Upon entering water we could then activate the swimming module which would swap out the animations and the movement modules to play the swimming animations and updated movement. We could then activate the aiming module if the player picked up an object to throw etc etc.

Visual effects

Working with the lead artist on the project I created a variety of visual effects through the use of particle systems and custom shaders. This included stylised shading, stylised water, post processing effects

Tools

To help with development I created several internal tools to allow better development and iteration. One such tool was a gameobject painter inside the editor to let the designer and artist more easily decorate the environments which had various settings such as density, rotation, scale, matching slope tilt and more to place lots of props quickly while randomising the looks if specified.

The tool I'm most proud of is an in-game debug console. Taking inspiration from a Game Dev Guide

as a starting point, I extended it significantly with quality of life improvements including autocomplete, command history scrolling, and a dynamic log for additional output. I also designed a generic package structure to organise commands in code, making relevant command sets portable across future projects.

UI and UX

Through the use of tweening I helped create responsive dynamic UI. My favourite feature I worked on recently was an in world prompt system for the first time user experience (FTUE). This allowed us to set up a chain of prompts triggered by conditions to guide the player through the game without the need for bulky text boxes and pop ups. As an example when unlocking a new piece of equipment, the equipment icon would pulse in the equipment UI. Additionally a in world UI prompt with the same icon would appear over the gameobject in world that the equipment would meant to be used on. Upon equipping the equipment the in world prompt would update to display the relevant button press required. I made this system to be as generic as possible to allow us complete flexibility with displayed prompts be it from button presses to pips in world to just information to be displayed to the user.

Retrospect

This was by far the largest and longest project I have worked on professionally, and with that came a lot of learning.

The most significant was in systems architecture. The project began as a rapid prototype where the priority was speed of iteration and proof of concept which made sense at the time. However, as the project grew and progressed without a rewrite, the tightly coupled systems I had built quickly began to accrue technical debt. Having to deal with, work around and butt heads with these coupled systems constantly thinking "if only it it was setup in this way" gave me a deep appreciation for thinking about how systems should interact and how it is a skill in its own right.

Ultimately I'm really proud of what we achieved and made, was it perfect? Maybe not but it was made with passion and belief and I'm proud to have been a part of it.