Hi,
I'm Rhys, an enthusiastic Game Developer currently working at Push Gaming.
Lead Game Developer with 4+ years of experience building games across both frontend HTML5 browser platforms and Unity-based games for desktop and Android, with four projects released so far.
I specialise in crafting gameplay mechanics, enemy behaviours and modular systems using object-oriented programming principles. On the frontend as a game client developer, I’ve led the development of multiple browser-based titles using TypeScript, PixiJS, and the HTML5 Canvas API.
In Unity, I’m currently exploring procedural animation systems to create dynamic enemy behaviours. This interest is highlighted in “Kurat,” a TIGA-nominated indie project developed by myself and 4 others, in which I was dedicated to crafting Player Combat and Enemy AI.
Along with gaining a First Class Honours BSc in Computer Games Programming from the University of Gloucestershire, I have continuously demonstrated my passion for game development by engaging in multiple game jams as well as my own projects. I am currently working on three solo projects: a Task Management App, a Mobile Maths Puzzle Game using Unity and a Third-Person Stealth game in Unreal Engine 5.
Working alongside a team of Artists, Animators, QA's, Server Developers and Mathematicians at Push Gaming, I led the development of Power Paws featuring Cluster Wins, Cascading symbols, and Colossal Nudging Symbols. A beta demo of this game can be played here.
Contribution
My role was to implement all mechanics and features, as well as to ensure that the game responded correctly to server data and would load to the correct state at any point that the user disconnected from the game (on purpose or due to internet issues).
Mechanics Implemented
Cascading Reels
Cluster Wins
Mystery Symbols (Random symbols appear before revealing a symbol)
Random Wild feature
Colossal Mystery Feature (1-2 colossal mystery symbols of sizes 2x2 to 4x4 are placed over the grid, before revealing a group of the same symbol)
Expanding Colossal Nudging Feature (Colossal mystery starts at size 2x2 on the top row. The symbol reveals, and then nudges for each spin. Expander symbols can land and increase the size of the symbol to 7x7. The symbol nudges until reaching the bottom row)
Multiplier symbols (Increase the overall multiplier during the Colossal Nudging Feature)
Collector Symbols
Multiplier Symbols
Instant Coins (instant prize of bet multiplied by number on coin can land inside the colossal mystery symbols)
Recovery (of game at any stage should the player return)
Task Picker App
Role:
Solo Developer
Language(s):
C# (Unity)
Date:
July 2025 - Ongoing
Game Overview
This is a project that I have been working on recently. When struggling with ADHD, trying to decide the next task to start is a daunting thing, especially when you have an almost endless list of tasks or hobbies that you want to get done; often times I end up getting stuck and doing nothing instead and then feeling disappointed in myself. I decided to create an application where I could put in all of my tasks or things that I want to do, and then allow it to randomly select my next task. I added an urgency level feature too so that tasks can be more or less likely to show up. I then added a timer that can be adjusted by scrolling. Currently, the mechanisms are only laid out for desktop, but I have designed the layout for mobile using Figma. Of course, this entire project may have just been another way of procrastinating from my important tasks whilst still feeling productive XD.
Contribution
As this is a solo project, I am doing both the design of the application and the programming in C#. Mechanics Implemented
Tasks with adjustable names and urgency levels
Tasks can be deleted from the list
Task list has perminence if user closes and reopens the application
Higher urgency levels mean the task is more likely to appear
User can skip or complete a task
User can toggle the task being active or not
A task can be set as the current task manually
Infinite scroll wheel to set a timer
Start, stop and reset buttons for timer
Timer resets if a task is skipped or completed
You're On In 5 - Global Game Jam 2024
Role:
Solo Developer
Language(s):
C# (Unity)
Date:
February 2024
Game Overview
This was my first game jam in which I worked entirely alone for 26 hours, utilising free assets and animations from Mixamo in order to add some character to the game. The theme was "Make Me Laugh". This being the case, I decided to create a small game in which the player must navigate a clown through a circus-themed obstacle course in order to get to the stage. The course randomises on each playthrough, allowing the player to keep trying and attempting the different obstacles. The game is uploaded to Itch.io, here. If the web game does not play well, the build is downloadable from the same page.
Contribution
Implementations
Player Movement (walk forwards, backwards and jump)
Swinging Pies (for the player to avoid)
Whoopie Cushions (for the player to jump over)
Cannon Balls (for the player to avoid)
Bananas (player must press H and A 40 times each within the timeframe to not slip)
Random placement of all obstacles on each playthrough
Lead Developer from start until release, working alongside a team of Artists, Animators, QA's, Server Developers and Mathematicians at Push Gaming. Prior to this project I had only 4 months experience of TypeScript and Push Gaming's in-house tools and codebase. A beta demo of this game can be played here. (Side note, sound messes up towards the end of the video above due to my screen recording software running for too long)
Contribution
My role was to implement all mechanics and features, as well as to ensure that the game responded correctly to server data and would load to the correct state at any point that the user disconnected from the game (on purpose or due to internet issues).
Mechanics Implemented
Base Spins
Nudging Mystery Reels (where seaweed symbols must only move down 1 position before revealing a symbol)
Chest Symbol with Multiple Prize Shuffle and Selection
Bonus Game plays until no Mystery Symbols on the grid (where the All Wins multiplier is increased with each spin)
Collectible Tokens (to eventually break the pot and trigger Swarm Mode)
Golden Leprechaun Reels
Collector Symbols
Multiplier Symbols
Instant Coins (instant prize of bet multiplied by number on coin)
Recovery (of game at any stage should the player return)
Last March of the Ent - Global Game Jam 2023 (Roots)
Role:
Programmer
Language(s):
C# (Unity)
Date:
February 2023
Game Overview
Last March of the Ent is a short game created within a 48 hour time frame as part of the Global Game Jam 2023. The team was composed of a designer and myself as programmer. The theme of this project was “Roots”; so we decided to make the player control an Ent digging its roots into the ground in order to fight against gravity, whilst knocking away the Lumberjack's deadly axes. We took inspiration from QWOP for the control scheme.
This is a project that I have started in my freetime. When I was in primary school, we were shown a maths game on the internet named Powerline; the idea of the game was to arrange the given numbers on a diagram in order to make all lines equate to the expected result. I have fond memories of this game, though there were only 10 levels or so. I decided that I wanted to use this concept to make a mobile game, in which I could supply countless levels by creating a random generation system. So far I have 100 levels for each of my current 9 pattern types.
Contribution
As this is a solo project, I am doing both the design of puzzles and the programming in C#. I have developed a system in which I can set the preferred pattern layout, press play, and generate as many possible puzzles as wanted; as well as a level loading and spawning system.
Mechanics Implemented
Movement of number slots
Checks if rows or columns equate to expected number
Checks if entire puzzle is solved
Continuous gameplay loop throughout levels
Currently 9 different pattern types, with 100 levels each
Project Perspective
Role:
Solo Developer
Language(s):
C# (Unity)
Date:
June 2022 - Ongoing
Game Overview
This is a project that I have started in my freetime. I have always been fascinated by perspectives and puzzles, and about 7 years ago when I was in college I had an idea for a platformer in which you could adjust how much the camera can be angled in order to make new clues and items visible from behind walls. I finally decided to make this mechanic into a game. Though it is still just a prototype, I have level designs already drawn out and a development plan ready to follow. I have also been doing the art and modelling for this.
Procedurally Generated Puzzle
Role:
Solo Programmer, Puzzle Designer
Language(s):
C# (Unity)
Date:
May 2022 (3rd Year)
Game Overview
This project was my output design as a part two of my final year research assignment. Since I have always had an interest in puzzles, I focused on the Use of Procedural Generation for Puzzles in Video Games, whereby the main conclusion being that it can lead to a much higher rate of replayability for a player wishing to reexperience a story/game. To backup my research I designed and developed a puzzle where a player is given a grid of pillars. Each pillar has a hole with part of a number. By rotating the pillars, the player is able to align number parts to reveal the numbers required for a code to unlock the door. The grid is randomised from 2 by 2, to 7 by 7 pillars. The code is randomised from 2 to 9 digits long. And the numbers are always split up and scattered randomly amongst the grid of pillars. There are also difficulty options of Easy, Medium and Hard to give as large a sense of replayability as possible.
Kurat has been developed by myself and 4 team members for our final university project. The game has been taken to Insomnia 68 where we gathered over 1000 playtesters and a large amount of feedback. Kurat is an action board game for up to 4 players, in which the players must make decisions as a team and survive a variety of trials supplied by the Devil. Weapons are physics based using the right analog stick to control; for example you must swing a scythe around the player to gather momentum to deal higher damage. Should any team member die, the whole group loses.
Contribution
Within this project, I primarily focused on the physics based combat system and the enemy AI.
Implementations
Using the right analog stick of a controller, the player can swing around their character; using the speed of the swing the game calculates the exact force and damage that the player character deals to the enemy and in which direction.
By pulling back the right analog stick, the character can pull back the sting of a bow and aim in the direction to be released; the further back the stick has been pulled, the further and stronger the arrow will fly.
On top of this, I worked on the major enemies within the game, such as the Frog of the North and the Ancestors. Some of these enemy attacks are displayed in the GIFs below.
Nominated for TIGA Creative Assembly Best Student Game 2022 Award
Character Creator
Role:
Solo Programmer & Artist
Language(s):
C#
Date:
December 2021 (3rd Year)
Game Overview
Using the Unity game engine, I was required to create a character creation screen which could be used within a video game. Though not needing to, I chose to also create all the artwork myself for added enjoyment.
For this project, I was given a project with 2 user-controllable tanks, and was tasked with changing them into two types of AI. This was my first time programming AI, and led to new found interest in games programming for myself. The blue tank uses a behaviour tree for their AI, and actively searches for the Red, scouting their last known positions if the target manages to hide. Whereas the red tank uses a State Machine and tries to sneak up on the Blue, and is able to find cover when realising they have been spotted.
For an experimental games module, my team and I decided to make a vr game in which a player would play as a blind person. The objective was to complete a series of household chores to get ready for work. The player is able to get a sense of where they are via a shader which produced sonar-like waves across surfaces based on sound created within the game. Objects could create a sound wave from being dropped or hit against a surface; there were also radios around the house to give some base sound visuals.
Contribution
This was the first game I had worked on for VR compatability. My contribution included
In this assignment I was tasked to create a Level Editor. The requirements for this, were to be able to import and split up a tilemap, place and delete sprites on an extendable grid, and save/load "drawings". This was the first time using two different programming languages simultaneously. In XAML, I had to program and design the layout of the window of which the user would navigate through the available sprites, and choose which tools to use.
Contribution
Being the only programmer on this assignment, I had to do all coding and design myself.
This mini golf game, is a mobile based game which was a requirement to develop as a first year assignment. Within the game, there are 8 courses, each with varying designs and obstacles. The game also keeps score of how many shots the player takes before potting the ball. This project was made using the Unity Engine, and all levels were designed and modelled within Autodesk Maya.
Contribution
As I worked on this project alone, I had to do each aspect personally; planning, programming, level design and asset building.
Mechanics implemented
Main Menu
Options Menu (Adjustable Sensitivity of Touch)
Mobile Input, touch input and button pressing
Tutorial Level
Golf Physics in Relation to Power and Bounce from Collisions
Adjustable Direction and Power
Score Tracker
Level Features (Bumps/Ramps, Teleporting Holes to Different Areas, Bounce Pads which Add More Force, Blockade with Button)
Role:
Lead Programmer, Level Designer, Story Writer
Language(s):
C# (Unity)
Date:
June 2019
Game Overview
No Signal is a short game created within 30 hours for the University of Gloucestershire Game Jame 2019. My team consisted of 3 Programmers including myself and 2 Designers. The theme of this game jam was "Waves," so my team and I decided to use radio waves as the main mechanic. The game follows a UFO hunter with a radio scanner which he uses to track down his van to enevitably get back home after being abducted. However, when using the scanner, it causes the aliens to try to attack him.
Contribution
Within this project, I helped implement the movement, radio scanner tracking system, and the pressure plate minigame. I also worked on the game's story, as well as the level design and importing of sprites and animations.
Mechanics Implemented
Player Movement
Short Range Radio Tracker (A Device of Which Would Beep Faster or Slower Depending on the Player's Distance from the Target)
Enemies which try to attack whenever the scanner is on
Pressure Plate Minigame (Step on the plates in the correct order to open the door)
Radio Wave Minigame (Match the frequency and amplitude to the wave in order to go home)
This game came in the Top 3 within the main competition, and was then chosen to be shown off at the end of year show, where it placed 2nd overall.