Highlights
This page contains highlights from all the projects in the portfolio, showcasing many of my key skills:
• Gameplay Programming
• Shaders and Graphics Technology
• Integrating Third Party Tools
• Performance Optimisation
• Remote Team Management
• Business Development
• Shaders and Graphics Technology
• Integrating Third Party Tools
• Performance Optimisation
• Remote Team Management
• Business Development
Gameplay Programming

Mining Beam System
Technologies Used: Unity, C#, Amplify Shader Editor, Particle Systems
Project: Hortalius
Project: Hortalius
The artists at Brain and Nerd created a 3D model for the Mining Beam in Hortalius, which I then implemented as a system. I created a mining beam controller that animated the tool, making the front section spin up over time and projecting a beam using a 3D line renderer. There was also a sound effect whose frequency matched the spin speed, a glow effect, and lightning effect.
I implemented a raycast-based targeting system and an overlay shader that made mineable objects glow when mined and then explode into shards, which fly toward the mining beam and are then collected by the player inventory system.
Benefit: The mining beam system added a great deal of audio-visual polish to the game. The explosion particle effect was also designed so that it would automatically work on anything marked as mineable, making it easy for non-programmers to add new mineable items to the game.

Network-Synchronised Throwing
Technologies Used: Unity, Netcode for GameObjects
Project: Rager
Project: Rager
Players in Rager can pick up and throw objects, but the game is online which presents problems with synchronising throwing behaviour between different players. I implemented a system using Unity's Netcode for GameObjects framework that synchronises throwing across all clients so that every player gets the exact same visual results without apparent latency.
I also implemented a soft auto-aim system that is subtle and barely noticeable during play, but in testing it made players feel as if the throwing system was more accurate. It also dramatically improved accuracy on controller.
Benefit: The networked throwing system allowed me to make the throwing feel sharp on the player who throws the object while also showing all players the exact same throw results without having to synchronise the thrown object's position every frame. I gained extensive knowledge of Unity netcode during this project.

Grid-based Office Designer
Technologies Used: Unity, C#, A* Pathfinding Pro,
Project: INCubator
Project: INCubator
INCubator is an office management sim with gameplay similar to Two Point Hospital. I implemented a grid-based system for building rooms and placing items in those rooms. The system used scriptable objects to define room types and assign items to rooms, and I made a custom editor UI for it to create a set of easy-to-use design tools for the game designers. Every item had to be accurately scaled and positioned to work with the system, so I created scale templates for the artists to follow
Benefit: The third party tools available for this were all over-complex for our needs. A streamlined custom system based on prefabs and scriptable objects allowed non-programmers to rapidly implement new items, room types, and levels.

Procedural Spider Animator
Technologies Used: Unity, C#, Final IK, A* Pathfinding Pro
Project: Hortalius
Project: Hortalius
One of the enemies in Hortalius is a giant spider with complex behaviour. It needed to be able to walk over uneven surfaces without clipping, chasing the player across any terrain. I built a procedural animator for the spider that uses inverse kinematics components from third party tool Final IK, with a custom raycast based tool for foot placement and leg timing. The spider's walkable area and pathing to the player were implemented using A* Pathfinding Pro, and the AI behaviour was implemented using a custom system.
Benefit: Animating the spider procedurally allowed us to make a boss enemy with complex behaviour that could chase the player over complex terrain. This gave the game designers free reign to build any kind of nest area for the spider.
Shaders and Graphics Tech

Procedural edge wear and rust
Technologies Used: Unity, Amplify Shader Editor
Project: Hortalius
Project: Hortalius
I built a custom shader for Hortalius that adds a procedural edge wear or rust effect to a standard metallic-based PBR approach. This allowed us to have the same objects throughout the game but in varying states of age and decay. It uses the material's normal map to detect edges and then applies the rust texture using a customisable noise pattern.
The intensity and reach of the rust can be modified in realtime, as can the noise scale and intensity. Since it uses the normal map, the rust naturally forms on edges, for example the rivet holes in the metal texture shown to the left.
Benefit: This approach allowed us to add wear and rust to objects without any additional workload, and more than doubled performance compared to previous solutions using a transparent overlay material.

Procedural packed environment textures
Technologies Used: Unity, Amplify Shader Editor, Mesh Combine Studio
Project: Hortalius
Project: Hortalius
In Hortalius we needed all objects to have a consistent visual detail and scale, but we had to use the same objects at drastically different scales and also had to combine meshes using batching for efficient rendering. For our environmental assets such as rocks and dirt I created a scale-invariant environment shader system.
We used a third party tool called Mesh Combine Studio to combine our environment geometry into efficient batches for rendering. I extended the tool with a custom process that baked the scale of each object into an unused UV channel in the vertex stream, then created a shader that read that for use in its own texture scale. Finally, I created a single material that used texture arrays for the environment materials so different environment objects could be batched together.
Benefit: This approach reduced render load of the environment by over 90%, increasing the frame rate from around 30 to over 270.

Pixel-perfect picking technique
Technologies Used: C#, Custom Game Engine, HLSL, DirectX
Project: Predestination
Project: Predestination
I built a fully freeform 3D ship designer for Predestination that allowed players to create custom ship designs by attaching components together putting components together. The custom game engine I'd built for Predestination contained no collision, physics, or raycasting code, so I developed an entirely new freeform placement technique with pixel-perfect picking that doesn't use them.
The technique involved rendering out data frames to a rendertarget, encoding information such as position, relative world normal, part ID etc as colours. These frames were then rasterised and used for pixel-perfect picking at any zoom level and orientation. It also worked on any models and required no pre-processing or work from the artists.
Benefit: This approach allowed me to have pixel-perfect item placement in Predestination's 3D ship designer without having to implement any raycasting, physics, or collision code in the game engine. It saved months of game engine development time and artist time.
Integrating Third Party Tools:

Fluid System
Technologies Used: Unity, C#, Shader Graph, Obi Fluid
Project: Rager
Project: Rager
One of Rager's core mechanics is a fluid system that in which the player pees and pukes on objects and surfaces. Instead of implementing our own custom system for this, I integrated and adapted the third party asset Obi Fluid. This involved building our own system for synchronising activation of fluid emitters across all players via netcode.
I created custom fluid profiles for the various fluids involved in the game, and experimented to find the optimum settings for visuals, game feel, and performance. I also created custom shaders using ShaderGraph to add chunks to the fluid and adjust the colours and opacity to suit the game, and implemented fluid collision and detection systems to integrate it with the gameplay.
Benefit: Integrating a third-party fluid system dramatically improved the look and feel of Rager and saved us at least 3-4 months of additional work developing our own fluid system.

Procedural World Generation
Technologies Used: Unity, Gaia Pro
Project: Odinheim
Project: Odinheim
Odinheim is a viking-themed god game set on a flat world. We wanted to procedurally generate the world in order to make the game highly replayable, but we needed to develop the prototype of the game in just a few months with a small crew.
We opted to integrate the procedural world generation tool Gaia Pro, which allows the player to combine noise masks and rules to generate terrain and randomly disperse items. I integrated the tool in less than a week and was able to train a trainee level designer on how it worked, allowing a trainee developer to design the world.
Benefit: Enabling a trainee developer to take over the level design on Odinheim freed up all the programming team to work on complex AI and a building system, allowing us to complete the Odinheim prototype on schedule and on budget.

Pathfinding and AI
Technologies Used: Unity, C#, A* Pathfinding Pro, Behaviour Designer
Project: INCubator
Project: INCubator
In INCubator players can build any arbitrary size and shape of room and can place any items anywhere within a grid system, making AI pathfinding tricky. I integrated A* Pathfinding Pro into the project and very quickly got it set up to work with the NPC AI.
I was able to implement efficient checks for whether certain items would be blocking an NPC from reaching its desk, or for whether rooms are inaccessible. I implemented a complex needs-based behaviour system where NPCs take breaks and complete work, and extended the AI with some custom behaviours to prevent them getting jammed in doorways.
Benefit: A* Pathfinding Pro is the de-facto standard for Unity projects, and implementing it with the NPC AI in INCubator saved us months of development time it would have taken to create our own system.
Performance Optimisation

Unity Profiling and Optimisation
Technologies Used: Unity Profiler, Deep Profiler, Frame Debugger, Memory Profiler
Project: Rager, Odinheim, Fairytale Trails, Hortalius, INCubator
Project: Rager, Odinheim, Fairytale Trails, Hortalius, INCubator
Throughout all of the Unity projects I've worked on, I've developed specific expertise in performance optimisation using the Unity Profiler, Deep Profiler, Frame Debugger, and Memory Profiler. I have a strong working knowledge of how the physics, rendering, and memory systems work at the engine level, and how best to improve performance in those areas. Specific areas I'm good on include:
• Rendering (Built-in, URP, HDRP) and batching
• Physics and collisions
• Algorithmic complexity and multithreading
• Lighting & culling
• Memory and video memory usage
• Load times and file I/O
• Physics and collisions
• Algorithmic complexity and multithreading
• Lighting & culling
• Memory and video memory usage
• Load times and file I/O
Benefit: I have been able to improve the performance in any project in Unity in very little time. I was able to bring average frame rate of Hortalius up from a fluctuating 15-30 FPS to over 270 FPS average in just two days of optimisation.

Dynamic Background Loader
Technologies Used: C#, Custom Game Engine, HLSL, DirectX, SlimDX
Project: Predestination
Project: Predestination
Predestination's planet, ship part, and building textures took up a lot of video memory and had to be pre-loaded at the start of the game or caused stutters during the game. It also increased the minimum systems specs for the game. I eliminated the stutters and massively optimised load times and memory usage by implementing a dynamic background loader.
The loader dynamically loaded textures from disk in a separate loader thread to avoid locking the main thread. Textures on the GPU were swapped out once loaded, with a single shared 256x256 texture as a fallback. Textures would only be loaded when a model became visible and were disposed when it became invisible.
Benefit: The dynamic background loader reduced the game's video memory usage by 50% and cut load times by over 90% with virtually no visible difference.
Remote Team Management:

Flow-charting
Technologies Used: Miro, Ora, Discord
Project: Rager, Odinheim, Fairytale Trails
Brain and Nerd adapted during Covid to become a fully remote team, and we developed workflows to adapt to remote work, such as flow-charting and diagramming. Many features in games we developed required detailed specifications such as tables of design specifications or flow-charts showing logical flows and further notes on implementation details.Project: Rager, Odinheim, Fairytale Trails
I used collaborative whiteboard software Miro to create flow charts on features that could then be given to other programmers to implement. We would also run design sessions where we discussed the flowcharts live as a team and made changes or left notes on it where needed.
Benefit: This approach helped provide a single point of truth for algorithm design and intended behaviour, helping the other programmers work independently. It saved us from needing to have frequent meetings, and allowed us to work asynchronously. They cut the needed meeting times down by over 75%.

Feature Specification
Technologies Used: Google Docs, Discord, Microsoft Suite, Zoom
Project: Rager, Odinheim, Fairytale Trails
Project: Rager, Odinheim, Fairytale Trails
One of the most successful remote collaboration processes we developed at Brain and Nerd was to put each game feature through a formal game design and specification process. This let us fully explore the idea and produce documentation that can be referred back to during implementation.
We ran collaborative design sessions between department leads and key creatives, and the end results were presented to stakeholders. This also ensured we researched existing games with similar mechanics thoroughly.
Benefit: The feature sheets helped us work remotely by giving all developers solid documentation to work from and minimising the need for meetings. They also helped us scope features more accurately for production and pre-emptively discover potential blockers. We estimate that 1-2 hours spent per sheet saved us at least 2-3 weeks of unnecessary work and meetings later.

Codebase Management & Backup
Technologies Used: Perforce, Git, Git LFS, Unity, Backblaze, Snapshooter, DigitalOcean Cloud Droplets
Project: All
Project: All
Throughout our projects, I've used a variety of code repositories and systems to manage our codebases and provide backup systems. I've used Git with a Bitbucket repository and have plenty of experience with branching, merging, and solving merge conflicts.
For most of Brain and Nerd's projects, we used Perforce for source control for the Unity project files, running our own Perforce server on a custom cloud droplet on DigitalOcean and linked to a backup system using Backblaze and Snapshooter.
I have extensive experience with Perforce, including workspace and depot setup, user management, handling merge conflicts, and troubleshooting common issues. I also have experience with Unity's Perforce and Plastic SCM integration, and in collaboration techniques for minimising merge conflicts in Unity.
Business Development

Studio Management
I founded indie game studio Brain and Nerd in 2012 and ran it successfully until 2025. While the studio still exists and still owns many production-ready IPs and projects, it's effectively shut down pending future funding opportunities and staff availability. In its 13-year history, the studio achieved some big things:
Key Achievements:
• First successful video game crowdfunding campaign in Ireland.
• Launched a game on Steam, the space 4X game Predestination.
• Consistently high diversity metrics, supporting the LGBTQIA+ community, neurodiverse individuals, disabled game developers, and women in STEM.
• Extremely low staff turnover, retaining talent across multiple projects.
• Developed over 10 production-ready prototypes and vertical slices.
• Raised over £800,000 in funding and contracts for projects.
• First successful video game crowdfunding campaign in Ireland.
• Launched a game on Steam, the space 4X game Predestination.
• Consistently high diversity metrics, supporting the LGBTQIA+ community, neurodiverse individuals, disabled game developers, and women in STEM.
• Extremely low staff turnover, retaining talent across multiple projects.
• Developed over 10 production-ready prototypes and vertical slices.
• Raised over £800,000 in funding and contracts for projects.
Awards:
• DANI Award: Best Gaming and Animation Project of the Year 2013
• NI Game Awards: Game of the Year 2018 (Predestination)
• NI Game Awards: Community Award 2018 (Brendan Drain and Tina Lauro)
• NI Game Awards: Best Studio 2019-2020
• DANI Award: Best Gaming and Animation Project of the Year 2013
• NI Game Awards: Game of the Year 2018 (Predestination)
• NI Game Awards: Community Award 2018 (Brendan Drain and Tina Lauro)
• NI Game Awards: Best Studio 2019-2020

Successful Funding Bid-Writing
I wrote many successful bids for funding throughout Brain and Nerd's history, including several successful crowdfunding campaigns. We successfully pitched for two rounds of UK Games Fund support and the last round of Creative Europe funding that was available to UK companies. I've also written bids for several R&D proposals for technologies to integrate into our projects. All pitches included budgets, cashflow projections, milestones, and market research.
Competitive Funding Succcesses:
• Kickstarter - £50,000 across two successful crowdfunding campaigns
• Creative Europe MEDIA 2019 - £127,000 for Hortalius
• UK Games Fund - INCubator - £25,000
• UK Games Fund - Odinheim - £30,000
• Innovate UK R&D - £25,000
• Future Screens NI R&D - £20,000
• Co-Productions - ~£120,000 across multiple projects
• NI Screen Development - ~£290,000 across all projects
• Kickstarter - £50,000 across two successful crowdfunding campaigns
• Creative Europe MEDIA 2019 - £127,000 for Hortalius
• UK Games Fund - INCubator - £25,000
• UK Games Fund - Odinheim - £30,000
• Innovate UK R&D - £25,000
• Future Screens NI R&D - £20,000
• Co-Productions - ~£120,000 across multiple projects
• NI Screen Development - ~£290,000 across all projects

Mentoring and Training Delivery
In addition to running Brain and Nerd and leading the programming team across all of our projects, I've also delivered successful training schemes, mentorship, and workshops. From 2013 to 2019 I ran over 150 student placement weeks and STEM events through the STEM Ambassador programme, including giving talks in secondary schools throughout Northern Ireland.
Since 2019 I've delivered paid workshops and training schemes on the following topics:
• Rapid Prototyping for Games
• Unity Programming - Basics
• Unity Programming - Design Patterns and Data Structures
• Crowdfunding and Pitch Development
• 1-on-1 Unity Project Mentorship
• Rapid Prototyping for Games
• Unity Programming - Basics
• Unity Programming - Design Patterns and Data Structures
• Crowdfunding and Pitch Development
• 1-on-1 Unity Project Mentorship