Cormac

Somerville

Experience

Farsight Digital Solutions, Ventsys & Todd Workshop

Platform Architect | 5+ Years

I started work with Farsight Digital Solutions back when it was Todd Workshop, transitioning to Ventsys before becoming Farsight. I’ve learned a lot over my time with Farsight, below is a list of my common responsibilities day to day:

  • Creating business systems for use within day to day use of busy companies.
  • Developing customer facing SAAS subscription platforms for clients.
  • Working with other developers and designers day to day to produce results.
  • Integrating new systems with existing client tools such as Xero, Google Workspace, SharePoint, and other niche systems.
  • Using a variety of tools such as Make.com, Airtable, Xano, AWS, Azure, REST APIs and more.
  • Work as a project owner, meeting with clients and converting their ideas to actionable technical tasks.

Wordpress Development

I have experience in freelance wordpress development. I have been able to advance my skills in web development using wordpress, working on Woocommerce sites and using popular themes, namely Elementor and Divi.

I've worked on both front and back end solutions, creating new booking systems, connecting sites to inventory management software, creating pop ups, and marquee style banners.

CoderDojo

2+ Years

I was first introduced to CoderDojo at the end of 2014 when I started attending as a coder. After the pandemic they were starting back up and looking for mentors to help out. I managed to get back in contact with them and sign myself up as a mentor. It runs once a month at codebase in Stirling.

I've been able to help some great upcoming talent and see the interesting and wacky projects the kids come up with. It has also allowed me to develop my teaching skills which has been advantageous when helping teammates in game jams or university projects. As well as helping the children with their programming I get to speak with some other great mentors as we share some knowledge amongst ourselves, from students like me to senior developers there is always something interesting to be shared.

Awards

Playground Games Award for Game Technology

Awarded for an honours project in engine programming and technical innovation spanning maths, simulation, computer graphics, tools, haptics and real-time systems for games and beyond.

Alexander D G Kydd Prize

Awarded to the best student in second year (School of Design & Informatics) who achieves the highest level of performance and is deemed to be the best student overall.

A D D McKay Senior Prize

Awarded to the student in second year of the BSc (Hons) Computer Games Technology programme who achieves a high level of performance in a mathematical component of the programme.

David Potter Memorial Prize

Awarded to the student in 1st Year of the BSc (Hons) Computer Games Technology programme who achieves a high level of performance generally and is deemed to be the best student overall.

Hannah Maclure Prize

Awarded to a 1st Year student who achieves a high level of performance in a mathematical component of their course.

Portfolio

Key Skills

  • C++
  • C#
  • Cross Discipline Teamwork
  • Professional Communication
  • Godot
  • Unity
  • Git
  • DirectX
  • Vulkan
  • Programming Patterns
  • Custom Memory Allocators
  • Jira & ClickUp
  • Multithreading
  • HLSL
  • GLSL
  • JavaScript

Below is a list of some of my projects, both personal and academic. You can find a list of things I worked on & some of the tech used in the grey bubbles and see more details by pressing the buttons below!

Performance Doesn't Grow On Trees - Honours

C++ Mesh Shaded Point Trees

  • Solo
  • C++
  • 3D
  • Vulkan
  • Mesh Shaders
  • Deferred Rendering
  • Virtual Photogrammetry
  • Continuous LODs
  • Anti-Aliasing

My 4th year honours project looked to answer the question. How can point rendering optimisations be leveraged to minimise latency whilst preserving fidelity for rendering distant tree foliage within a video games context? To answer this, I've developed a 2 part application to generate point clouds from triangle meshes, and render these point cloud trees in a realtime environment.
Point rendered trees support, lighting and shadowing, continuous level of detail, deferred rendering, TAA, FXAA, with the ability to render alongside triangle meshes. The method allows for 1 million trees to render in under 8ms. (Rendering to GBuffer, RTX 4090)

Still Forgotten

Non-Euclidean Stealth | DARE Finalist

  • Team
  • C#
  • Godot (Custom Fork)
  • Portals
  • Single Player
  • Art Asset Pipeline
  • Dialogue & Monologue Systems
  • In Game UI
  • Team Git Management
  • Jira
  • Dynamic Scene Loading
  • Level Creation Pipeline
  • Lighting

Still forgotten is a non-Euclidean stealth game where you are on a mission to discover your past, inspired by works from David Lynch. This game was developed for my professional project, working in a multidisciplinary team of 8. Alongside development we had regular deliverables, client meetings & feedback sessions, required documentation and a press kit to produce. I worked on various systems for this project, the most notable of which are listed above.

Squirrel Engine

3D C++ Game Engine

  • Solo
  • C++
  • 3D
  • DirectX11
  • Scene Graph
  • Platform Independency
  • Custom Memory Allocators
  • Physics Integration
  • Serialization
  • Documentation

Squirrel Engine is a C++ 3D game engine. It is currently a work in progress solo project which so far uses scene graph representation with a node like object structure to create games. Similar to that of Godot. It makes use of Direct X 11 for rendering which is abstracted away for platform independence. Currently the engine supports scene serialization, physics, threaded loading, custom memory management for performance, and basic lighting.

Avalanche

End of Second Year PS5 Project

  • Team
  • C++
  • PS5
  • Using an In-House Engine
  • Git
  • 2.5D
  • Box2D Physics Integration
  • Data Oriented Design
  • ECS
  • Tricks System
  • Scene Management
  • Local Multiplayer

At the end of second year me and a team of three others were tasked to create a 2.5D game for the PlayStation 5 using the PS5 Devkits at Abertay. We used the university's own inhouse engine which was an educational experience, working with a changing engine which isn't mainstream. This project was fully programmed in C++ using an Entity Component System for object management, ImGui for the in-game GUI and Box2D for in-game physics. I worked alongside 3 other developers using Git source control as well as a development plan...

Blotter

Online Multiplayer Godot Bingo

  • Solo
  • C#
  • Godot
  • Online Multiplayer
  • 2D
  • Player Customisation
  • Interpolation Animations
  • Godot UI
  • Asset Creation

Blotter is an online multiplayer bingo game for 2-4 players. I wanted to take on a small challenge over the summer by creating a simple online multiplayer game. This solo project had me working on all corners of game development, most of the assets for the game were produced by myself. The game was created in the Godot engine using their multiplayer API, adapted from the ENet library. This is my first complete project in Godot and I have been able to transfer my knowledge from work with other engines and use it to accelerate the process of learning how to use Godot...

3rd Year Graphics Project

DirectX11 Based Custom Renderer

  • Solo
  • C++
  • HLSL
  • DirectX11
  • Git
  • 3D
  • PBR Rendering
  • Shadow Mapping
  • GPU Tessellation
  • CPU GPU Communication
  • Height Mapping
  • Algorithmic Vertex Manipulation
  • Bloom
  • Depth of Field

For my third year graphics project I produced a customer renderer using DirectX11. It was able to support shadow mapping for spot, directional and point lights, take in and apply PBR textures like normal maps, display a heightmap and tessellate based on user distance, support multiple lights and shadows, apply post processing like bloom and DoF, and more.

Masquerade Match

Global Game Jam 2026

  • Team
  • C#
  • Godot
  • 3D
  • Viewports & Cameras
  • Scene Setting
  • Telephone Dialogue

Masquerade Match is a single player game where wordle meets Where's Wally. You play as a detective spying in on a masquerade ball, but during the night you get tip offs of upcoming crimes. You must find the criminal using the security cameras and guessing patrons of the ball to see which features they share with the robber. I worked with an interdisciplinary team of 5 others to produce this game. I mainly worked on the viewport and camera work, the phone dialogue system, level creation & scene setting and the final tie together.

About

Hi There, I'm Cormac, a 21 year old student at Abertay University currently in my fourth year studying BSc Computer Games Technology and working part time at Farsight Digital Solutions. I have been awarded the David Potter Memorial Prize , the Hannah Maclure Prize, the Alexander D G Kydd Prize and the A D D McKay Senior Prize for my first and second year academic performance as well as the Playground Games Award for Game Technology for my fourth year honours project.

Outside of work I enjoy cooking, often hosting friends over for dinner, and like to play tennis and golf. I am also currently on the committee for the university tennis club, being incharge of organising social events.