top of page
Screenshot 2026-06-03 224220.png

THE GAUNTLET

Role:

Lead Designer/Project Manager

Date

March 2026- May 2026

Project Type

C++ Introduction Project

Team Size

Solo

Genre

First Person Movement Shooter

Game Engine

Unreal Engine 5

Skills

C++, UI, Project Management Methodologies, Time Management Strategies, File Manipulation, Data Manipulation

Rider, Unreal Engine, Github

Software:

01 Concept

A High octane, fast paced movement shooter that requires the player to run the gauntlet, boost through the air, grapple from place to placer and try to set the best score possible. Inspired by Titanfall 2, and built almost entirely using C++. The project features a fully modular weapon system allowing a developer to quickly produce new weapons and a high score system that ranks the players top 10 best times.

02 Features

  • Weapon system - all weapons based on one parent class, with their stats all managed through a data table. A rifle could easily become a shotgun by changing a few variables

  • High Score table - that updates whenever a new time is set, and saved between operations

  • Movement system - flowing and quick with jump boost, sprinting, sliding and wall running

  • Abilities - grappling hook and combat stim

  • Gauntlet system - interconnected target system and checkpoint systems which keep track of the player and penalise them for going wrong.

03 Project Focus and Outcomes

The Focus of this project was to produce a complete game artefact using solely C++ for the functionality. As such I picked a movement shooter for it's relative small scope and perceived feasibility for me.

I Really wanted to challenge myself as well to ensure that game feel was a major focus due it being one of my weakness's as a technical designer, function over form.

Taking a lot of inspiration from games like Titanfall 2 by Respawn Entertainment and Call of Duty: Black ops 3 by Treyarch, I am pleased that I managed to produce a thrilling and satisfying games artefact with some of the best built systems I have made.

As a result of this project I have developed key C++ games development skills along with a new appreciation for the considerations required for excellent feedback and impactful game feel.

04 Planning and Research 

Much of the Planning was done through listing the requirements of systems and then iterating when the need arose. 

​It was intriguing watching videos that would showcase how to produce a system in blueprint then translating that into C++, As I did for both the Grappling Hook system  by Gorka Games and the Wallrun system by Ryan Laley.

I also spent time learning about C++ from excellent resources such as Unreal Website and through websites like Unreal Garden

05 Challenges

Overcoming my initial lack of C++ know how at the start was a difficult task but thankfully due to my experience with C# and blueprint the ball began to roll.

 

One of my main challenges was indeed the Highscore System due to the nature of having to format all the data stored in the file, first I had to extract the structs, then sort them then work out the time and then output them to a high score table.

 

While my struct search function does work, I firmly believe it is likely not the ideal way to implement the searching of the string arrays for the contents of structs due to it incrementing in blocks of 4 which leaves it open to vulnerability should anything go ary like curly brackets being saved to the same line, I should like to find out the best way to Implement a system such as this in future

06 Moving forward

This Project was important as it diversified my game dev toolkit through its exploration of C++ and lower level (language) games production. It allowed me to interact with the engine In ways I had not yet tried which was a boon and a blessing. I now feel confident In my C++ skills and feel motivated to push them further.

 

Moving forward I Definitely want to investigate how to implement pathing algorithms like A* or Dijkstra to see what I can do with AI, as I was wary of touching for this project.

image.png
bottom of page