Tiernan Watson

Overview

Welcome! I'm Tiernan, an alumni of University College London (UCL) Computer Science and avid game developer. I absolutely love making games and working in 3D space, but I have done more than that too!

The languages I am most proficient in are C++ and C#, but I can also use Python, HLSL/GLSL and anything else I can learn pretty quickly!

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 targeting system in URaider.

You can find me on Twitter too.

Projects

URaider

C#, Unity, 3D Math, Custom Character Controller

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. I also programmed my own behaviour trees for the AI.

This project had some interesting problems to solve including ledge-targetting (adjust jump trajectory to align hand with edge on grab) and grapple swinging (which uses physics equations modified by user input).

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.

Source Code: GitHub

Demo: Dropbox (Oct 2021)


Odyssey Game Engine

C++, Direct3D, Windows API, Unit Testing, Linear Algebra

This is my game engine which I am developing using C++. It features an entity component system architecture with an archetype design. It also features a reflection system created using template meta-programming to edit components at runtime in the editor. I am currently developing my own file format and serialization system to save projects.

The engine's maths libraries were built by myself including all matrix operations including 3D projection, as well as quaternions for rotation.

The next steps after serialization are to create better shaders and the animation system.

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, Rope Swinging (Pendulum model)

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


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

Football Manager 2022 & 2023 - Sports Interactive (Current)

C++, Shaders

Currently I work for Sports Interactive on their long-running sports series Football Manager. I have been responsible not just for bug fixing, but also implementing more than one new feature in the game. I have worked not just on PC code, but also the PS5 and Switch.


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

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.

Contact

I am happy to hear about any potential opportunities.

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