Projects
Just as a quick note, most of the projects listed below are not game jam projects. They consist of more long-term polished projects. If you'd like to have a look at the whopping amount of jam projects I've done or simply want to see a timeline of my progression, you can go here to my about me!
I plan to add a page to each project, so I can talk more in-depth about each project, in how I designed certain aspects and made them.
Shovel & Swindle
Skills: Gameplay, Networking programming
Technologies: Unreal Engine 5, C++, Github, Blueprints


Description
Shovel & Swindle is a 3D co-op isometric game where you and a friend venture into a graveyard to do the most inhumane thing, graverobbing! Selling the bodies you steal to earn money, paying your rent on time, while avoiding being caught!
- Using Unreal Engine 5, Blueprints, and C++ as one of the core programmers. Also partway was producer for team.
- Created key systems such as the Interaction, Inventory, and body dragging system.
- Did a lot of optimisations on level, and network code
I learnt a ton about Unreal networking, and the purpose of network ownership. I feel I have a better understanding of profiling, optimisations, networking, and the world partitioning system.
I did very well for abstracting network functionality from gameplay. Particularly in the interaction/inventory system, where it is easy to add gameplay objects into it, without worrying too much about the networking side.
I could've improved the networking by using more replicated variables rather than using RPC calls.
This project was made under Afterfire Studios.
Voxel Renderer
Skills: Graphics Programming, Data structures and Algorithms
Technologies: C++, DirectX11, Direct Compute, Visual Studio 2022




Description
My Honours Project focuses on the development of a Voxel rendering system using Raytracing and Sparse Voxel Octrees in DirectX11. This had me exploring the raymarching, raytracing, sdf's, svo's, quadtrees, and bvh's.
- Built using DirectX11, HLSL, and C++, with heavy usage of compute shaders.
- Construction and traversal of a sparse voxel octree in compute shaders.
- Voxel rendering system can successfully render hundreds of thousands of voxels easily
- Used tools like Perkit, Renderdoc, and C++ libraries to collect performance metrics.
I learnt a lot about graphics programming in general, but specifically rendering, data structures, and the compute shader.
I feel I have done well to translate complex algorithms and data structures from the CPU side to the GPGPU side.
The program could be A LOT cleaner. I was primarily focused on understanding things and making them work, but the cleanliness of the code suffered for that.
This project is a Honours Project for my final year at Abertay University, worth 40 credits.
Design HOPES App
Skills: Gameplay, Mobile
Technologies: C#, Unity, Github, Visual Studio 2022




Description
This project focuses on developing a research mobile app that allows runs like a simulator game. NPCs come in, go to the hospital, and go back out. It focuses on the interactions the player can take like tapping, dragging npcs, getting achievements and watching the stats of the game like surgical waste.
- Lead programmer, designed the codebase and authored most of the code
- Created systems like achievements, day system, interactions and more
- Communicated with the designer for the project to ensure the vision is met in time
I learnt a lot about integrating data with gameplay, and developing for mobile. This was the first time I properly ran into issues with device specific bugs.
I think I did well with designing and developing a complex simulation game system in a relatively short period of time.
I could've been better with standardisation of events/actions, as eventually they were more confusing than necessary, and the decoupling benefits weren't as obvious.
This project was part of my time as a Research Assistant at Abertay. I had been contracted around 200 hours to make this.
Paper Trails
Skills: Gameplay programming, Animation programming, Optimisation, Music Production
Technologies: Unreal Engine 5, C++, Github, Blueprints




Description
Paper trails is a short adventure game, heavy with themes of cosy horror, mystery, and cuteness! Set in the child's story pop-up book, you play as a re-incarnated Rabbit, and must explore a world of wonder and danger, to find out why you were given this second chance. With visuals inspired from children’s novels, and a tone that toes the line between whimsical, horrifying, and heartfelt, Paper Trails is a game that can be appreciated by all.
- Using Unreal Engine 5, Blueprints, and C++ as one of the core programmers.
- Created character and camera controller and cinematic system
- Created key mechanics such as rope pulling, collapsible trees, and burrowing with an all purpose interaction system
- Integrate all audio, music, and animation into the game
I learnt a lot about developing multiple gameplay mechanics, and working full-time with a team. Since I was there, it was a lot of helping out and debugging other issues.
I think I did well for developing the numerous systems I did under the timeframe, all the while helping out with music, sound integration and animation integration.
Looking back, I would have wanted to set out some standards for systems interacting with eachother, as bugs arose from the lack of well developed interfaces between systems.
This project was a DARE Academy Finalist, and was showcased down at London EGX.
Critter Catcher
Skills: Gameplay
Technologies: C#, Unity, Perforce, Visual Studio 2022




Description
Critter Catcher is a fast paced 3D creature catcher game, where the player must collect all the creatures in the backyard before the owner returns.
This project saw me leading development on the technical side as Tech Lead, and also mentor the group as the group primarily consisted of 2nd year GDP and CA from Abertay.
- Programming the core gameplay mechanics and camera, character, and controller
- Guiding practices on Unity, Game Development and Perforce
- Tons of bugfixing
I learnt a lot about being a Lead for a team, while trying to still complete my programming duties. It was tough trying to program and give my attention to helping solve issues, teaching, and designing.
I think I did pretty well, when it came to the design of the system. The areas that followed the design, were pretty bug free, and bug friendly. It was easy to locate issues after discovery.
One big thing I would've changed is being able to tell someone to restructure their code if it wasn't to a good standard, I avoided this for many reasons, but looking back, development would've gone smoother had some of the code been cleaner and followed good practice. Assertiveness as a Lead isn't currently my strong suit.
This project was an Abertay University Module.
Pirate Bay
Skills: Engine programming, Gameplay programming
Technologies: C++, DirectX11, Visual Studio, Github




Description
Pirate Bay is a tower defence game made from a basic DirectX11 framework. Using the original concept of rotating game elements, this game has you defending an island from invaders trying to take away your grass!
- You must rotate hurricanes and whirlpools to take down pirates from sea and air.
- Using an existing barebones DirectX11, HLSL, and C++ framework to create a game
- Built upon existing framework to create a rendering system, gameplay system, and level system
I learnt a lot, thanks to the clear and focused feedback after submission. I took the time to go back on my code and act on the feedback given, which was by far the most beneficial thing that I have had.
I think I did really well to keep the framework the same, and only change parts of it with good reason. I followed the standard in the original codebase, and adapted it to my needs in a clear and well structured way.
Looking back, I wish I started this project back in December, it was really fun to be able to go onto a pretty basic framework and expand it. Unfortunately due to personal circumstances, I only had 1 week.
This project was a Winner in the Grads In Games, Search For A Star competition 2024
Project Omen
Skills: Gameplay, Animation, Optimisation
Technologies: Unreal Engine 5, C++, Github, Visual Studio 2022




Description
Project Omen was a professional project where university teams of 8 create a project specified to a client brief and get judged on how well the brief was done and how good the project is.
The project is extending an existing character in a power based FPS, by creating a new ability for the character. We chose Omen from Valorant, and gave him a new portal like surveillance and ambush ability.
- Using Unreal Engine 5 and C++, as one of the core programmers
- Created character and camera controller
- Created main ability mechanic and ability system
- Integrated animation and audio into the game
I learnt a lot about working with a multi-discipline team. I've worked with artists, designers, sound, producers before, but doing it for a longer period of time had different challenges.
I think I did well to help and guide unexperienced users to the tech stack like github and unreal whilst still learning it myself.
Looking back, I would have wanted to do a bit more profiling on the projects performance.
This project was an Abertay University Module and I received an A of 40 credits.
Treasure Hunters
Skills: Procedural Generation, Network programming
Technologies: Unity, C#, Github, Photon Bolt, Mirror, FizzySteamworks, Visual Studio 2019




Description
Treasure Hunters is a multiplayer pvp game where players must explore a world overgrown, cut their way through and discover hidden artefacts. They must deliver these uncover and deliver these artefacts with powers bestowed upon them. However they must be wary, other hunters might not play as fair.
- Built using Unity, C#, Photon Bolt, Mirror, and Steam SDK
- Created lobby and matchmaking system using server-client architecture
- Implemented key interactions such as stealing, inventory sync, item sync, world sync
- Debugged network issues and tripled speed of game among 8 player connection
I learnt a lot about networking. This was my first proper jab at it, and I am still to this day, genuinely surprised we made it work.
I did an excellent job with the networking. Having done the procedural generation, I had to optimise how the network fed all that world destruction and generation information across.
Looking back, when we wanted to move forward with the project. I really really wish we scrapped the jam project and started anew for the long term one. That was the biggest mistake, and caused us to never finish.
This project started 4 weeks late into a 9 week competition for NSE, but managed to recieve an honourable mention for our work.
DX11 Project
Skills: Graphics programming
Technologies: C++, Visual Studio 2022, DirectX 11, ImGui




Description
This Graphics project program demonstrates advanced use of DirectX11 API, showcasing elements like lighting, shadow, post-processing, tessellation, and vertex manipulation.
- Built using DirectX11 and C++, upon an existing framework
- Implemented an efficient and versatile multi-light rendering system with different lighting models
- Implemented a camera and landscape gradient based, tessellation using hull and domain shader, to produce more accurate normal calculations, and vertex placement
- Implemented a post-processing system that used kernal filter. Making my own unique variable size gaussian blurring
I learnt a lot regarding DX11, Graphics, shadows, lighting, post-processing, tessellation, and so much more. This was the first big step into graphics programming.
I did really well with developing and understanding complex systems like the tessellation system. Which was by far the best implementation challenge I completed for the module.
Looking back, I wish I could do more with shadows and ambient occlusion, I still haven't touched shadows nearly enough to understand them.
This project was an Abertay University Module and I recieved an A+ of 20 credits. I later help the class as a class helper in 4th year.
Procedural Generation
Skills: Procedural Generation
Technologies: C++, Visual Studio 2022, ImGui




Description
This procedural generation program demonstrates 2 procedural systems; terrain generation and l-systems.
The terrain uses perlin noise, particle deposition, fbm, faulting and more. The L-System demonstrates 2D and 3D stochastic capabilities by generating trees that get placed on the landscape. The L-System was tested using Fractal Binary Tree, Koch Curve and a Sierpinski triangle.
- Built using DirectX11 and C++
- Created a expandable procedural generation suite where new techniques could be easily added
- Implemented stochastic 3D and 2D l-systems to place on existing landscape
- Program featured a raw, combined, and final view for designer friendly interaction and usage
I learnt a lot about procedural generation techniques, and creating a fairly large library of different techniques.
I think I did really well to develop a lot of complex techniques and apply them to the terrain in an efficient way. The motto for this project: efficiency and complexity.
Looking back, I wish I had more time to convert a lot of the processes to a Compute Shader. Also the cleanliness and organisation of the code is trash.
This project was an Abertay University Module.
SFML Networking
Skills: Network programming, Multithreading
Technologies: C++, Visual Studio 2022, SFML




Description
This Networking project program demonstrates a multiplayer game using low-level API. Showcasing real-time and event-based messaging. This project was developed upon my first year games project.
- Built using C++ and SFML, upon a previous project, with an emphasis on TCP connection
- Created a robust and clean system for networking elements in the game, with plans for host-migration
- Implemented interpolation and prediction techniques to compensate for lag
- System managed well under poor conditions tested with clumsy among 4 player connection
I learnt a lot about low-level networking, developing initially with Winsock and then SFML, understanding the intricacies of handling packets.
I think I did really well to revamp a game to allow networking. I also really liked the way I did it, wasn't too complex, but designed well enough for the project scope.
Looking back, I wish I could've gotten the host-migration to work. I had the theory worked out but didn't have time.
This project was an Abertay University Module. I later help the class as a class helper in 4th year.
A* Parallel Programming
Skills: AI Programming, Multithreading
Technologies: C++, Visual Studio code 2017, SFML




Description
This project back in 2nd year emphasised building a pathfinding algorithm and then optimising it via parallel programming.
This had a heavy usage of different data structures to maximise the efficiency of the algorithm.
- Built A* algorithm to pathfind
- Built a visualiser using SFML to see the pathfinding work
- Parallelised it with multiple 'Rooms' to pathfind from 1 room to the next
I learnt a lot about parallel programming and data structures that weren't just std::vector.
I think I did particularly well with my theory and reasoning for the project design.
However, it wasn't not well developed and actually ran much slower than it should've.