Hi,
I'm Rhys, an enthusiastic Game Developer currently working at Push Gaming.
As lead developer on my first commercial project, “Shamrock Saints” (released on March 5th), I’m thrilled to bring my 9 years of programming and software skills into the gaming world.
I have found that my primary interest lies in Gameplay and AI Programming. 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 within the Unity Engine.
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 two solo projects: a Mobile Maths Puzzle Game using Unity and a Third-Person Stealth game in Unreal Engine 5.
The skills of which I have acquired include:
C#, C++, TypeScript
Unity Engine
Unreal Engine 4
Visual Studio (Community and Code)
Adobe Creative Suite
Autodesk Maya
Perforce, GitHub
Confluence, ClickUp, Trello
Many of my projects are available to look at below.
Thank you for taking your time to view my webpage portfolio.
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
The first game in industry which I led as 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.