Samuel Cairns
C#/C++ Programmer & Game Developer
C#/C++ Programmer & Game Developer
Hello! My name is Samuel Cairns and I am a Game Developer and Programmer. Whilst I typically make games in Unity/C#, I also have knowledge of Godot/C# and C++ Game Programming. I have worked on two shipped games, one alone and one as part of a team. I also do some software development. All games featured on this website are complete games which I have worked on and contributed to extensively, and the majority are solo projects. Whilst I have been developing games since 2023, I have been programming since 2014. Since 2023, I have developed a total of 14 games within both academic and professional environments.
I am currently working on developing a basic multiplayer game, whilst simultaneously producing game prototypes in Unreal Engine / C++.
Scrum Showdown is a game developed by Goblin Games, a team that I worked with as part of a promotion for the Woman's Rugby World Cup 2025, contracted by West Northamptonshire Council.
The game runs on an arcade machine which was built in-house, and is suitable for one or two players. I worked as one of two programmers, primarily developing the gameplay aspects of two of the four minigames included within Scrum Showdown.
One of the minigames I developed, 'Kick-Off' involves Player vs CPU or Player vs Player interactions, in which both players must choose the speed and direction to kick their ball, in order to hit targets at the other end of the playing field in order to score points. I specifically developed systems for target spawning and respawning, target movement, the input and control system, ball kicking, score-keeping and CPU AI.
In the other minigame I developed, 'Tackle', the player(s) receive input prompts on their side of the screen indicating what button they must press in order to successfully tackle the training dummy. Failing to hit the correct button would slow the player, giving the opponent an advantage. As the game progresses, the player(s) move faster, therefore the prompts appear quicker. The closer prompts are hit to the training dummy, the higher the accumulated score is for that input. For this, I worked on systematic training dummy spawning, player movement with a fair speed curve, an AI system for how accurate the CPU's inputs are, and the system for spawning prompts and relaying this to the player in an engaging and interactive manor.
Upon completion of this project, the arcade machine was taken to tour various libraries and locations within Northamptonshire, for public events and continued promotion of the WRWC 2025.
Unity, C#, Arcade Machine Game
Fun in Fifth - Unity / C#
Fun in Fifth is a mobile game which has been released in the public domain on Google Play. It is a indie game which I created for Android (and eventually iOS) from the ground up. This is the first release under the company title Arcadium LTD, a small indie-games studio which I created in 2024. Arcadium LTD is already working on its second public release.
Fun in Fifth has 3 core gameplay modes: Race mode, time trials and free play. There are also 4 maps with unique racetracks for the player to use. By default, the player has access to only one map, and race mode. They must collect coins which can be used to purchase the other gamemodes and maps. There is also a shop, where the player can purchase 4 vehicles in addition to the default car. Each vehicle can be upgraded in terms of vehicle colour, wheel colour, engine power, braking torque and tyre traction.
In race mode, the player races against 4 NPC's to the finish line. In time trials, the user races none other than themselves in order to beat their personal best. In free play mode, all racetrack restrictions are removed, granting the player access to roam the entire game map as they desire.
Fun in Fifth utilises a number of gameplay and application features such as: a vehicle controller, lap timer, lap progress detection, player place detection, day and night conditions, an optimised offline storage solution, a comprehensive shop and upgrade system, a settings and in-game reset function, and an anti-cheat system which currently remains unbroken. There is also a major update planned for the future, which will contain a large number of new features.
I released Fun in Fifth on Google Play to provide a free application (with no adverts) for any audience. The game has a low PEGI rating (3+) and is considered family-friendly by Google Play.
Check out Fun in Fifth on Google Play here: https://play.google.com/store/apps/details?id=com.Arcadium.FuninFifth&hl=en
Fun in Fith also has a complete Dev-log which can be found on Arcadium's official website: https://www.arcadium.uk/
Unity, C#, Mobile Game (Published on Google Play, Arcadium LTD)
Interstellar Isles was the first console (Xbox) game I created as part of a group project, in which I was the project lead. The game involved a series of floating islands in space, which the player could navigate using their jump boost abilities. Asteroids falling through the sky threaten the player, and various landmarks on the islands.
There are three major islands, each with a special ability. One has the radio tower for turret communication, one has a jump pad, and one has the spacecraft (providing regenerative player health). The jump pad provides large jump boosts. Each island has a turret with a corresponding satellite, which the player must rotate towards the radio tower. All landmarks could be subjected to asteroid damage, which would restrict the player's unique abilities.
The player has a weapon which they can shoot asteroids with, and there are additional weapons available on other islands.
Within this project, I managed all project lead responsibilities including hosting team meetings, delegating tasks and responsibilites and ensuring deadlines were met in a timely fashion. I also designed a number of the game's core features and mechanics.
I also worked as one of two gameplay programmers, creating core features such as random island deviations through space, the damage animation states of all 9 landmarks, flow of the game from one state to the next, asteroid spawning, all collision events and an infinite wave system.
Unity, C#, Xbox Game
Secrets of the Labyrinth - Godot Arcade Game - Game Jam Winner
I worked as project lead and one of two gameplay programmers to develop this top-down puzzle game. Secrets of the Labyrinth was a University Game Jam group project which took place over the course of 3 days. It is a game created for an in-house arcade machine which was built by the University. The game jam was for students from first year, to graduates. All five of us were first year students at the time.
The game can be played with one player or two, and is operated using joystick and button controls on the arcade cabinet. In single player mode, the player must find all three keys (with limited lighting) before they can use the exit. In multi-player, the players must race to find all three keys in order to escape before their opponent. The game also includes power ups such as increased light, increased movement speed and teleportation tunnels. If the game lasts too long, a dust storm can also eliminate you from the game. Each instance of the game has a randomly generated maze.
I specifically worked on application flow aspects such as the intro screen and how it transitions to the main game loop. I also programmed the functionality relating to the user interface, as well as collision mechanics between the player and interactable objects. Additionally, I handled all project-lead related tasks including time and resource management, as well as a large portion of the game mechanics.
Godot, C#, Arcade Machine Game
Don't Shoot the Messenger is a solo game created in Godot using exclusively free assets. This was also developed using C# as the scripting language.
Within the game, there are different enemy types, identifiable by their hat colour. They vary in terms of their speed, size, health points, and how much they damage the castle. Enemies move towards the castle entrances, in attempt to infiltrate.
Amongst the enemies, there will be a small number of green hat figures known as 'The Messenger'. These also seek to enter the castle, but with friendly intentions, and increase the health points of the castle.
Score is gained through number of enemies defeated, but if the player accidentally shoots the messenger, the game is over.
XP is gained through defeating enemies, which allow the player to level-up. There are five levels, with each new level giving the player access to another weapon within the shop. The weapons vary in terms of their fire rate, damage rate and accuracy. Some weapons also have unique characteristics.
Godot, C#, PC Game
Backstreet Bash was created for a group project, where I worked as the programmer to develop gameplay mechanics. I was also responsible for any work relating to application flow, from the basic animations displayed on the intro screen, into the main gameplay loop, and finally to the lose-state.
I also worked with artists to ensure all necessary sprite-sheets were produced, and personally implemented the functionality to bring them to life. I also developed the animation system to swap between the idle state and shooting state for the player and enemy, accurately calculating the angle for the player's arm for an accurate depiction of aim.
The Godot Mono 2D game engine was used to create Backstreet Bash, allowing us to opt for a C# scripting solution rather than Godot's GDScript.Â
Godot, C#, Android Game
I created this Fireboy and Watergirl clone using C++ and the SFML high-level games multimedia library. The game contains a main menu, level selector, two fully playable levels and basic settings.
Since this was not created using a game engine, I prototyped scalable systems for producing any number of levels for the game. This included level data storage, as well as reusable functions for in-game mechanics such as moving platforms, doors (with and without triggers), lava, fire, green goo, text prompts, boulders and teleporters.
I designed the level system in a way that repeatable functions relating to physics updates, collision detection and gameplay mechanics could be called within a script which contains logic specific to each level. This would also allow for expanding upon the level with functions which exist only within a single level, where repeatability is not essential. As such, this served to maintain the code overhead for the engine code I had written for the specific purpose of creating more levels with ease.
The game extends upon the functionality of the original game by simply containing mechanics which are not found in the original game. It is one of the first game projects I completed.
C++ / SFML, PC Game