Software Engineer & Game Developer


Me

Hi, I'm Charlie, and I'm a programmer focused on making video games.

I've worked for multiple games studios from small to big, where the products I have worked on have been played by millions of people across the world.

Most recently I worked at Wushu Studios as a Lead Programmer, on several AAA titles with a variety of different clients. Before that I was a Senior Programmer, working primarily on gameplay and tools.

Experience

  • Wushu Studios (2022-Current) - Senior/Lead Programmer
  • Ninja Kiwi Europe (2019-2022) - Intermediate Programmer
  • Hyper Luminal Games (2018-2018) - Junior Programmer
  • deltaDNA (2016-2016) - Junior Programmer

Core Skills

  • C++, C#, Python
  • Unreal Engine, Unity Engine, Custom Engines
  • Visual Studio, Rider
  • Git, Perforce, PlasticSCM
  • Technical Leadership
  • Technical Recruitment
  • Project Management

Portfolio


RuneScape: Dragonwilds

State of Decay 3

Fall Guys: Creative Construction

Bloons TD Battles 2

Bloons TD Monkey City

Big Crown: Showdown

The Lost Colony

Lost Myths: Sons of Ragnar

deltaCrunch

deltaCrunch


"Journey through the isles, unlocking new locations, taking part in exciting challenges to test your skills."

My first industry job, I started at deltaDNA when my college tutor recommended me to them for a Junior Programmer role. deltaCrunch was an example mobile game that they created to showcase their analytics platform. I was assigned and worked on this project independently.

Key Responsibilities

  • Implemented gameplay as designed by the game designers at deltaDNA.
  • Integrated the deltaDNA analytics SDK into the game and provided impartial feedback to them on the quality of the SDK and the available product features.
  • Designed and built tools for the game designers to make their own levels and game level progression path.

Engine

Unity & C#

Role

Junior Programmer

Links

Close Project

Pepper Wars


Command your army of pixel troops to fight your friends in this local or online multiplayer game!

Pepper Wars was my second year college project, and a throwback to Advance Wars. It is a turn based multiplayer strategy game, in which two players can command different units and fight to destroy each others army or castle. Armies are made up of different unit types, each with their own unique abilities.

Key Responsibilities

  • Implemented gameplay within the MonoGame & XNA programming environment.
  • Implemented my own UDP packet manager for online gameplay (across the same local network).
  • Implemented turn-based combat, unique character classes and abilities.
  • Designed and implemented five playable maps.

Engine

MonoGame & C#

Custom tools and networking library

Development

4 Months

Links

Never released

Close Project

Unstable Elements


Follow your way through a science experiment by playing eight fun minigames!

Unstable Elements was created for the Abertay serious game jam, sponsored by the University of St. Andrews to create games with a chemistry theme.

Key Responsibilities

  • Implemented a few of the different minigames along with the other programmer on the game jam team.

Engine

Unity Engine

Development

3 Days / 20 Hours

Links

Never released

Close Project

Caravan To The End


Escort the VIP out from the underworld, fight in turn based combat, develop your characters relationships and make story choices that may have dire consequences.

Caravan To The End was my third year professional project. The game involves travelling the underworld, recruiting characters into your party, surviving random encounters (combat, dialogue), handling resources (food, oil, gold) and turn based combat that changes based on character relationships, traits and class types.

Key Responsibilities

  • Implemented gameplay and built custom tools within Unity3D as the only programmer on the team.
  • Implemented a simple turn-based combat system that the designers could use to introduce new abilities to characters.
  • Implemented a character generation and relationship system where individual characters would have personality traits that would cause them to like or dislike one another if they spent time together.
  • Implemented custom tooling for the designers to use that allowed them to create dialogue trees and random encounters as the caravan moved, such as combat, dialogue and more.
  • Implemented a character creation system, where players could swap out their character clothes and various ligaments. This included a palette swapping shader that allowed players to customise their outfits colours.

Engine

Unity Engine

Custom tools for dialogue, character creation and world editing

Development

2 Months

Links

Never released

Close Project

Cardinal Editor


Cardinal Editor was developed as a set of tools, including a game framework and an editor for building the next version of Pepper Wars.

Key Responsibilities

  • Implemented a custom editor using the Dear ImGui C++ library, consisting a Tilesheet Importer, Tilemap Editor, Actor/Prefab Editor, Level/Scenario Designer and Animation Editor.
  • Implemented a game framework that integrated with my editor, consisting of barebones framework features such as a screen manager, event manager, entity-component system, etc.

Technology

C++

SFML

Dear ImGUI

Development

4-6 Months (part time)

Links

Never released

Close Project

The Box


The Box was made as part of the 2019 Global Game Jam. The theme of the jam was 'what home means to you'. For this project, we created a series of isometric perspective mini-games, involving a time puzzle, memory puzzle and shoot 'em up.

The Box attempts to capture the imagination of youth, where a simple cardboard box and your imagination could allow you to become an astronaut, a pirate - or live in the wilderness.

Key Responsibilities

  • Implemented the pirate box-defense mini-game, where the player uses the keyboard or controller input to move the 'pirate ship' around the island and shoot incoming pirates.
  • Implemented the memory puzzle star game, where the player jumps from one star to another to make them shine in a specific order.

Technology

Unity & C#

Development

40 Hours

Links

Close Project

Strategic Depth


"Strategic Depth is a tower defence war game, where structures have a realistic line of sight and limited ammunition. The game map presents different terrain challenges to you and your enemies, as they will react and attempt to perform coordinated attacks, retreat and flank your defences. Use the features of the terrain to create the ultimate defence against the incoming invaders."

Key Responsibilities

  • Joined the project as a support programmer to help Strategic Depth's designer (Nikita Kotter) with getting the game ready for release. Part of those duties included helping improve, debug and optimize the game code.
  • I also helped build some of the games 3d-world UI, screen space UI, scenes, transitions, controller mapping for multiple players and more.
  • We continued to release updates of the game together with bugfixes and improvements, until eventually stopping when we both entered fulltime employment.

Technology

Unity & C#

Role

Programmer

Links

Close Project

Lost Myths: Sons of Ragnar


"Ragnar's Sons is an interactive museum experience, where the player can experience the viking history of Ragnar and his sons by navigating and interacting with a 3d world in virtual reality."

My first entry into Virtual Reality, I was approached by a team at the University who wanted to bring their ideas for an interactive viking museum to life.

This project was developed in Unreal Engine - with one engineer, one audio designer and two artists. We won the 'Peoples Choice Award' at the 2019 Abertay Graduate Show, and our game was showcased at the Perth's viking exhibit opening day in May 2019.

Key Responsibilities

  • Implemented gameplay within Unreal Engine 4 blueprints. I decided to use blueprints instead of C++ as I was the only programmer on this project at the time, but the artists and designers needed to be able to make system changes.
  • Identified artists and designers needs, and quickly came up with solutions to address them. This includes helping them iterate on any ideas that they had, and building executables with their suggested changes that they could test in VR.
  • Implemented materials and custom effects for the artists.
  • Ran the booth at all of the events we attended, which included showing players how to use the VR headset, controllers, and talking them through the mechanics with our in-game tutorial.

Technology

Unreal Engine 4

C++ & Blueprints

HTC Vive

Role

Programmer

Links

Close Project

Big Crown: Showdown


"Big Crown: Showdown sees friends become foes as they compete in 4-player local and online multiplayer combat, set over 3 wacky worlds full of medieval shenanigans. Avoid perilous hazards and engage in frantic fights as you attempt to knock your opponents off 15 crazy courses in the ultimate royal battle!"

When I joined Hyper Luminal Games, it was in their early days as a company. Starting out as a co-development studio out of University, they were working on their first original IP (Big Crown Showdown). My task was to primarily do contract work with other studios, and between contracts I helped with this project doing any odd jobs I could to help.

I was one of the team members who took Big Crown: Showdown to EGX London prior to the games release, for three days of showcasing and community interaction with players at the Sold Out publisher booth.

Technology

Unity3D & C#

Role

Junior Programmer

Links

Close Project

RuneScape: Dragonwilds


Lead Programmer on RuneScape: Dragonwilds port to PlayStation 5, Xbox X/S and Switch 2 for Jagex and Wushu Studios.

Note that as this project is not out yet, and that I have signed a NDA - I am unable to go into any further public detail about the work done on this project.

Technology

Unreal Engine 5

Role

Lead Programmer

Links

Close Project

State of Decay 3


While working at Wushu, I had the chance to work on State of Decay 3 with Undead Labs, as a Lead Programmer.

My mandate was to work directly with the Undead Labs technical leadership team - and to take ownership of a series of game mechanics for State of Decay 3 - working with our client on providing solid technical solutions for them.

My wushu responsibilities included providing technical leadership to my engineering team within Wushu. This was in the form of code reviews, long term project planning, mentoring, career growth and working with company stakeholders.

The game mechanics that I was responsible for included working with stakeholders from all major disciplines, and were core parts of the gameplay loop.

Note that I have signed a non-disclosure agreement, meaning I am unable to go into of detail about the work I have done on this project.

Technology

Unreal Engine

Role

Lead Programmer

Links

Close Project

Fall Guys: Creative Construction


Fall Guys: Creative Construction is a major feature within Fall Guys that allows players to create their own fall guys levels. Players can then publish their levels, and other people can play them!

This was the first project I joined at Wushu, and I was fortunate to be promoted to Lead Programmer while on the project. My major tasks were to integrate Creative Construction into the mainline of Fall Guys development, and support the project technical team.

Note that I have signed a non-disclosure agreement, meaning I am unable to go into a lot of detail about the work I have done on this project.

Key Responsibilities

  • Designed and implemented branching strategies for releases and features. Performed large file merges for feature integration, and assisted with large code reviews.
  • Implemented fixes for many different types of bugs - working on UI, networking, gameplay and performance.
  • Implemented features as designed by a given specification, which included working with varying disciplines across Wushu, Mediatonic & Epic Games.
  • Worked with design to understand their needs, and create technical specifications / designs that were delegated to the team.
  • Worked closely with Mediatonics production and technical leadership team in order to plan the product roadmap and technical delivery of the product.
  • Worked closely with the code team and production to break work into manageable tasks, assigning that work to sprints and working with the engineers to provide support and balance their workloads.
  • Performed regular 1:1s with the code team, executing their feedback to improve on existing processes.

Technology

Unity3D & C#

Role

Senior/Lead Programmer

Links

Close Project

Bloons TD Battles 2


From the creators of Bloons TD6... Bloons TD Battles 2 is a brand new installment of the top-rated head-to-head tower defense game. Gather your Hero, choose your team of powerful Monkey Towers, and prepare to battle one on one against other players and relentless waves of Bloons!

After finishing my work on Bloons Monkey City, I was moved to work on Battles 2. I primarily supported the team as a tools programmer, working in C++ with all disciplines to make sure they had what they needed to continue development.

Key Responsibilities

  • Created and maintained custom C++ editor tooling (imgui) for all disciplines. Such as user interfaces design tools for UI/UX, project data validation tools (run through CI) for code and animation tools for artists. Worked with all stakeholders to streamline custom editor experience.
  • Client-side implementation of user account management, including persistent profile data, sign in game-flow, account management and other account tasks. Also consulted, designed and helped build the server infrastructure for the same task.
  • Created python tools for engineers to use which generate C++ code from a given JSON schema. Used for generating client code which can be used to call server endpoints for multiplayer state management.
  • Worked on and implemented gameplay systems such as towers, effects, equippable cosmetics, in-game user interfaces for different devices (phone, tablet, desktop).
  • Assisted on multiple major game updates in the live service roadmap, diagnosing and fixing live issues that were effecting real players.

Technology

Custom Engine & Editor

C & C++

Python

Role

Programmer

Links

Close Project

Bloons TD Battles 1


"Go head to head with other players in a Bloon-popping battle for victory. From the creators of best-selling Bloons TD 5, this all new Battles game is specially designed for multiplayer combat, featuring the ability to control bloons directly and send them charging past your opponent's defenses."

After finishing my work on Monkey City, I was asked to independently do a content update for Battles 1.

Key Responsibilities

  • Implemented a new map, balance changes, game mode, and quality of life features for update 6.7.
  • Worked closely with design and quality assurance teams to ensure the update was ready and working on time.

Technology

Custom C++ Framework

C & C++

Role

Programmer

Links

Close Project

Bloons TD Monkey City


"Create, upgrade, and customize your very own Bloons Monkey City in this groundbreaking blend of city building and tower defense awesomeness!"

My first major challenge from Ninja Kiwi, I was asked to overhaul and update large parts of one of their successful mobile games, and bring it to new platforms (Steam). I worked on this project independently, and had to learn to use an older company tech stack and pipeline - and then modernize it.

Key Responsibilities

  • Updated the games code and architecture to work on 64-bit android devices. This included moving the legacy game into a newer gradle android pipeline.
  • Updated the games code and architecture so we could bring the game to the Steam store for OSX and Windows.
  • Rebuilt the game user interface so it would work correctly on new devices and aspect ratios.
  • Implemented new content gameplay features and fixed legacy gameplay bugs for the update.

Technology

Custom C++ Framework

C & C++

Role

Programmer

Links

Close Project

The Lost Colony


"The Lost Colony is a strategy, building and survival game about discovering what happened to a famed lost colony of Vikings. As Jarl, the player must try to command their people and try to survive on a cursed island where vengeful gods are trying to kill them."

I was the sole designer and engineer on this project, which I started during my final year at University as a fan game and test bed for learning new Unreal Engine skills (such as Unreal Behaviour Trees, materials, UMG, Slate and Unreal C++).

I released this project on itch.io and proceeded to iterate and released several versions of it from there before pulling it from the store. I learned a lot of my existing Unreal skills from this project, and iterated on it in any spare time for over seven years.

Key Responsibilities

  • Designed and implemented the project as a solo developer within Unreal Engine 4. Migrated to Unreal Engine 5.
  • Implementation of villager AI using a combination of Utility AI for decision making, and Hierarchical Task Network Planning for planning and task execution. Villagers do complex decision making based on environmental factors around them.
  • Implementation of gameplay elements such as placing buildings, commanding villagers, dynamic events, weather, a needs system for villagers (eating & sleeping) and more.
  • Hired and worked with contractors to deliver work such as 3d prop art, character modelling, rigging and animations - including directing them with feedback and appropriate references - on time. Any art that wasn't commissioned, such as the environment art or icons, came from related asset packs.

Technology

Unreal Engine 4 / 5

C++ & Blueprints

Development

May 2019 - 2026

Links

Close Project

Split


Split was my Global Game Jam 2020 submission, working with the same team who made The Box in the previous 2019 Game Jam.

Two players work co-operatively to repair their broken island by solving puzzle mechanics together, but apart.

Key Responsibilities

  • Implemented the puzzle gameplay and built simple tools within Unity3D for our teams game designer.

Technology

Unity3D & C#

Development

31st of January - 2nd of February

Links

GGJ Website
Close Project