Tiernan Watson


Welcome! I'm Tiernan, a computer science student at University College London (UCL). I absolutely love making games and working in 3D space, but I have done more than that too!

After about 4 years experience with object-oriented programming, I am now proficient in C++ and C#. Other languages I can use include Java and Python. Game development engrosses me because it combines logic, maths and art.

When developing games, I am at my best when I am doing something new. I get excited by coming up with solutions to problems, such as the rope swinging system in 2178, or the ledge targetting system in URaider.


Odyssey Game Engine

C++, OpenGL, DirectX, Windows API, Unit Testing, Linear Algebra

Since August 2019, alongside my busy schedule, I have been working on my own game engine. This endeavour has proven to be fun and challenging at times. For example, I want it to be fast and data-oriented, but this has to be balanced with good code architecture.

Initially, I started with an OpenGL renderer with GLFW, as this is what I was learning, but I have since been switching it over to DirectX.

Source Code: GitHub

Island Defence

C#, Unity, Procedural Generation (Perlin)

This year I decided to enter Search for a Star 2020. Although, I was only able to spend two days on the project due to other commitments, I did produce a procedural map generator that uses Perlin noise for height. The base project already included random 2D generation for a flat plane.

This project is not meant as a polished project, so the gameplay should be not be taken anywhere near finished, the highlight is more the map generation.

Project: Itch.io

Unity Portals

C#, Unity, 3D Mathematics

This recreation of the portal effect was made using Unity's new scriptable rendering pipeline (LWRP). It works by having cameras attached to each portal, as well as a reference to its partner portal. The player's position is taken locally to a portal, and then transformed to world space out of the partner portal. This can be used to set the camera's location and rotation, after which it renders to a texture.

Source Code: GitHub

2178: Resistance

C#, Unity, 3D Mathematics

This was a 2-3 week project created for Sumo Digital's Search For A Rising Star 2019 competition. It is a prototype that includes third person shooter style gameplay, along with adventure-style movement while not in combat. We had to work from a given base Unity project.

I created my first rope swinging system with this project with simple harmonic motion. The player can grapple defined points in the levels and swing, adjust their rope length, and turn around. They can also perform basic ledge grabs and climb up. The enemies in the game patrol using waypoints and attack if the player is within range and they can see the player.

Rising Star Finals

Download + Report: Itch.io page
Source Code: BitBucket


C#, Unity, Kinematic Equations, UI

This solo project is a fully-featured action-adventure game framework for Unity that has climbing, combat, swimming, inventory and interactions. I implemented my own physics equations and gained experience in 3D animation. It is mainly based off the 2006-2008 era of Tomb Raider.

I built a state machine from the ground up to control Lara's state. Example states include Locomotion, Climbing and Swimming.

What was really important for me when developing this was firstly that Lara was easy to control, and secondly, that the system was easy for people who have never coded before to go in and start dragging and dropping prefabs to create levels.

Demo Download: Click Here
Source Code: GitHub

VR Cycling

C#, Unity, VR, Oculus

This was my project for the academic year 2018/19. My role was team leader, and our task was to create a Unity virtual reality experience for professional cyclists to help them train.

The project uses a VirZoom exercise bike and a Gear VR headset. The input data includes the cycling speed from the pedals and head yaw and roll. Records are kept on the user performance such as their top speed and distance travelled. We connected this app to the cloud for multiplayer and implementing 3D spatialised audio.

Source Code: GitHub

Work Experience

GOSH DRIVE AR Friend (Summer 2019)

C#, Unity, Vuforia, .NET Core (Web API), SQL, SCRUM meetings

I spent the summer of 2019 developing an app at Great Ormond Street Hospital's DRIVE unit. DRIVE stands for digital research, informatics and virtual environments; they perform research for GOSH using techniques such as machine learning.

Working in a agile methodology, I was tasked with creating an augmented reality app with a virtual pet that is in a way similar to a tamagotchi. The goal was to provide an educational tool for patients, as they have to perform similar needs (such as hand washing) to their own.

Further to this, I created a visual scripting system inspired by Unreal Engine's Blueprints, so that new experiences can be created by non-technical staff. For example, infection control could make an experience with lots of hand washing throughout the day.

Project Fizzyo (Summer 2018)

C#, Unity, SCRUM meetings

I spent the summer of 2018 working alongside the UCL Institute of Child Health and Microsoft software engineers to debug and improve the games that were developed for Project Fizzyo. This project aims to improve the enjoyment and adherence of airway clearance treatment for kids living with cystic fibrosis.

My role was to fix the games up and improve them, even if it meant changing the core mechanics. I participated in stand-up meetings with Microsoft engineers.

Aside from fixing many bugs, the features I implemented include a boat selecter for the fishing game, so the patients could personalise their experience. I also created the bar power up system that fills when the player performs a good breath, and allows them to perform certain actions. Furthermore, I added levels to the games for a range of difficulty and progression.

Web & Other Projects

iHostPro (2012)


iHostPro was a web hosting company I started with two friends when I was 13. This was one of my first early insights to a professional arena. We offered budget hosting on our own dedicated server using Linux.

Newry Chat (2011)

Newry Chat

This was a social a network I started on my own for the people of my hometown. It used PHP & MySQL and provided functionality similar to Facebook at the time.

Lara Society (2009 - 2013)

This was my first real venture into proper web development. Originally, I had a fansite made with a free website editor in 2006. This made me want to learn HTML/CSS, which I then used to create my own Tomb Raider fansite that I integrated with PHP-Fusion. It featured a forum and news section, as well as galleries and information.


What I'm Reading...

Mathematics for 3D Game Programming

What I've Read...

Game Engine Architecture C++ programming principles and practice PHP, MySQL and Javascript


I am happy to hear about internship opportunities.

You can reach me via my email: tiernanwatson 'at' gmail.com