top of page
Owen Monaghan - Games Technology
Hello! I'm Owen and I am a fresh graduate with an undergraduate degree in BSc (Hons) Computer Games Technology at Anglia Ruskin University.
Please check out some of my projects below!


Ocean Shader + Buoyancy Project
Unreal 5 | Tech Art | Programmer (BP & HLSL) | Solo
A custom ocean shader and buoyancy system created in Unreal Engine 5 with material editor and blueprints. The project makes use of various mathematical equations and an algorithmic approach to to build realistic looking and feeling ocean surfaces that are not only performative but also quick and easy to set up.
The shader is fully customizable from a selection of 40+ parameters that control every aspect of the ocean surface such as, Wave configuration, Colour (through Single Layer Water), Normals maps, Opacity, Roughness, Specular, Refraction, Wave Foam, distance fields Caustics as well as a switch to run the shader in Real time or control through BP (Used for Buoyancy).
A custom HLSL node was written to handle all wave generation for an iterative approach to stacking waves vastly reducing the set up complexity of the shader resulting in an artist only having to set up one wave instead of setting up each stacked wave individually. This is achieved with a for loop and summing up of Gerstner waves up to the specified amount by the artist. Techniques such as Fractional Brownian motion and domain warping are used to algorithmically stack realistic acting waves onto each other to build the ocean surface. The Jacobian result is also calculated through this node allowing for the placement of realistic wave foam and colour variation.
Buoyancy is achieved by recreating the wave generator in a Wave Manager BP and gathering the same parameter setting from the material to achieve the same waves produced from the material onto the CPU to be used for Physics. A custom made buoyancy component is then used to sample the wave height at a given point and then apply the relevant buoyant force to a pontoon float on the owning actor. By making a custom component for the buoyancy any object can quickly be made to float in correspondence to the shader by a developer saving dev time and preventing repeatable code.
Throughout this project I faced a fair few challenges to get the results that I wanted. The biggest challenge to overcome was developing the solution to having to set each wave up individually and taking the algorithmic approach instead. From early versions I had a Gerstner wave material function that created one wave which could be summed together with another to create a surface with 2 waves. But this proved a problem when wanting to add more detail to the surface as you had to add more and more waves, which all required manually setting up which consumed a large amount of time and realistically was not feasible past 6 waves due to the micro adjustments that had to made to each wave and growing list of parameters. This resulted in me searching for a better solution, where after time spent researching Fractional Brownian motion and Algorithmic approaches in shaders I created the HLSL node which would simplify the set up process and allow the user to add as many waves as they would like while only needing to set up one.
A custom ocean shader and buoyancy system created in Unreal Engine 5 with material editor and blueprints. The project makes use of various mathematical equations and an algorithmic approach to to build realistic looking and feeling ocean surfaces that are not only performative but also quick and easy to set up.
The shader is fully customizable from a selection of 40+ parameters that control every aspect of the ocean surface such as, Wave configuration, Colour (through Single Layer Water), Normals maps, Opacity, Roughness, Specular, Refraction, Wave Foam, distance fields Caustics as well as a switch to run the shader in Real time or control through BP (Used for Buoyancy).
A custom HLSL node was written to handle all wave generation for an iterative approach to stacking waves vastly reducing the set up complexity of the shader resulting in an artist only having to set up one wave instead of setting up each stacked wave individually. This is achieved with a for loop and summing up of Gerstner waves up to the specified amount by the artist. Techniques such as Fractional Brownian motion and domain warping are used to algorithmically stack realistic acting waves onto each other to build the ocean surface. The Jacobian result is also calculated through this node allowing for the placement of realistic wave foam and colour variation.
Buoyancy is achieved by recreating the wave generator in a Wave Manager BP and gathering the same parameter setting from the material to achieve the same waves produced from the material onto the CPU to be used for Physics. A custom made buoyancy component is then used to sample the wave height at a given point and then apply the relevant buoyant force to a pontoon float on the owning actor. By making a custom component for the buoyancy any object can quickly be made to float in correspondence to the shader by a developer saving dev time and preventing repeatable code.
Throughout this project I faced a fair few challenges to get the results that I wanted. The biggest challenge to overcome was developing the solution to having to set each wave up individually and taking the algorithmic approach instead. From early versions I had a Gerstner wave material function that created one wave which could be summed together with another to create a surface with 2 waves. But this proved a problem when wanting to add more detail to the surface as you had to add more and more waves, which all required manually setting up which consumed a large amount of time and realistically was not feasible past 6 waves due to the micro adjustments that had to made to each wave and growing list of parameters. This resulted in me searching for a better solution, where after time spent researching Fractional Brownian motion and Algorithmic approaches in shaders I created the HLSL node which would simplify the set up process and allow the user to add as many waves as they would like while only needing to set up one.


Starship Defenders - Mixed Reality Project
Unity | XR | C# Programming | Tech Art (Rendering, Immersive Effects) | Solo
My final major project from my University Studies; I undertook the challenge of creating a Mixed Reality game using the Meta Quest 3, Unity and Meta SDK's.
Protect the colony ship from an attack of alien invaders as they smash through your walls in this mixed reality experience!
The project features an array of technical features such as a destructible mesh, selective passthroughs and stencil shaders which I used to mix the real and virtual worlds together. As well as making use of The Meta Mixed Reality Utility Kit to give the virtual objects a sense of presence in the real world space. This required me to gain new knowledge of game rendering and pipeline to implement the custom solutions for the game.
The project provided an array of challenges throughout development which pushed me to create new solutions to overcome the current limitations of Mixed Reality. One such challenge was making sure that the game could be played in any user environment so virtual object placement had to be carefully considered. My solution to this became reducing the amount of content that had to be placed via the environment and moving it to the player space. This is present in the wrist watch UI and player Guns which hold all the information the player needs for the game.
My final major project from my University Studies; I undertook the challenge of creating a Mixed Reality game using the Meta Quest 3, Unity and Meta SDK's.
Protect the colony ship from an attack of alien invaders as they smash through your walls in this mixed reality experience!
The project features an array of technical features such as a destructible mesh, selective passthroughs and stencil shaders which I used to mix the real and virtual worlds together. As well as making use of The Meta Mixed Reality Utility Kit to give the virtual objects a sense of presence in the real world space. This required me to gain new knowledge of game rendering and pipeline to implement the custom solutions for the game.
The project provided an array of challenges throughout development which pushed me to create new solutions to overcome the current limitations of Mixed Reality. One such challenge was making sure that the game could be played in any user environment so virtual object placement had to be carefully considered. My solution to this became reducing the amount of content that had to be placed via the environment and moving it to the player space. This is present in the wrist watch UI and player Guns which hold all the information the player needs for the game.


Crystal Chaos
Unreal 5 | Project Lead | Tech Art | programming | Group Work
Available to download on Itch.io; Crystal chaos is a Twin Stick shooter developed in Unreal Engine 5 by 24 students during their final year of University.
My role for this Project was the Project Lead. My main responsibilities was to manage and lead the teams departments (Art, Design and Programming) to ensure the overall success of the project with the goal of releasing a polished game to a public facing platform.
I oversaw the project production from concept to release, hosting regular meeting and discussions with the whole team and individuals to keep the project moving in the correct direction. I managed and kept track of member tasks and helped to provide solutions to developmental problems where needed. I maintained a constant stream of communication with the department leads and Project Directors to collect and understand feedback to better the project and team work flow.
Along side The Project Lead duties I also acted as a Tech/Programmer for the project creating game systems and mechanics for the project. Some of the mechanics and systems I created for this project include: Level Streaming Integration, Player Aiming, Player Animations, Camera Occlusions, Shader and Particle FX, Spline Tools, Art integration and Set up in Engine, Project Building and Version Control, Bug fixes and QA.
Available to download on Itch.io; Crystal chaos is a Twin Stick shooter developed in Unreal Engine 5 by 24 students during their final year of University.
My role for this Project was the Project Lead. My main responsibilities was to manage and lead the teams departments (Art, Design and Programming) to ensure the overall success of the project with the goal of releasing a polished game to a public facing platform.
I oversaw the project production from concept to release, hosting regular meeting and discussions with the whole team and individuals to keep the project moving in the correct direction. I managed and kept track of member tasks and helped to provide solutions to developmental problems where needed. I maintained a constant stream of communication with the department leads and Project Directors to collect and understand feedback to better the project and team work flow.
Along side The Project Lead duties I also acted as a Tech/Programmer for the project creating game systems and mechanics for the project. Some of the mechanics and systems I created for this project include: Level Streaming Integration, Player Aiming, Player Animations, Camera Occlusions, Shader and Particle FX, Spline Tools, Art integration and Set up in Engine, Project Building and Version Control, Bug fixes and QA.


Merlin's Apprentice VR
*People's Choice Winner - Gamebridge 2024*
This is was a VR project designed for the Meta Quest devices made in the Unity game engine.
You play as Merlin's foolish Apprentice who has accidently transformed his teacher; the mighty Merlin, into a wheel of cheese.
Can you transform him back before the timer runs out?
I did this project in my 2nd year of University and from this project I leant how to effectively build and create a game suitable for VR. This required me to take a different approach to the design and gameplay mechanics as to make it not only work well as a VR game but also to be comfortable for the player to play. This project was the first time that I had access to asset packs for my university studies so also had to learn how to effectively manage and use these well to get the desired effect and impact I wanted.
Developing Merlin's Apprentice challenged me as it was my first time developing for VR and with this being a 2nd year University project I wanted to try and push myself in creating something I was truly proud of. I am happy to say that I am proud of this project and felt like I achieved more with this then I initially set out to, and has also sparked a big interest in me to develop more for this platform in the future.
This is was a VR project designed for the Meta Quest devices made in the Unity game engine.
You play as Merlin's foolish Apprentice who has accidently transformed his teacher; the mighty Merlin, into a wheel of cheese.
Can you transform him back before the timer runs out?
I did this project in my 2nd year of University and from this project I leant how to effectively build and create a game suitable for VR. This required me to take a different approach to the design and gameplay mechanics as to make it not only work well as a VR game but also to be comfortable for the player to play. This project was the first time that I had access to asset packs for my university studies so also had to learn how to effectively manage and use these well to get the desired effect and impact I wanted.
Developing Merlin's Apprentice challenged me as it was my first time developing for VR and with this being a 2nd year University project I wanted to try and push myself in creating something I was truly proud of. I am happy to say that I am proud of this project and felt like I achieved more with this then I initially set out to, and has also sparked a big interest in me to develop more for this platform in the future.
bottom of page