Welcome, and thank you for browsing my portfolio! As of 2022, I have three years of experience with C++ and C#/Unity, and nine years of experience with Java. All projects below include source code where appropriate, as well as usage examples and video demonstrations.
On a personal note, I enjoy the challenge of programming in most aspects but my favourite areas to work in are procedural generation and creating frameworks for UGC. I’m a strong believer in giving players as much freedom as possible.
Please do allow me to preface these projects with one caveat: Art is not my strong suit! While I have put time into the art, it may not match the quality of programming within the projects.
Citizens is currently my largest project, and was my Final Year Development Project at De Montfort University. The project is built as an observable city simulation, in which you can watch vehicles and pedestrians navigating around a generated city in real time.
The project makes extensive use of Unity’s NavMesh system, and creates agents who function from a state machine. It also completely generates the city at runtime, with a working road network and buildings, as well as spawning and destination points for both pedestrians and vehicles.
C#/Unity: Protect Sarius
Protect Sarius is a mobile game, which was made for the Mobile Games II module in my second year at De Montfort University. This game was created exclusively by myself, and is a 3D third person space shooter based loosely on the 2D arcade classic Asteroids.
The game uses an infinite forward-facing environment, in which asteroids are spawned ahead and cleaned up behind the player. As a mobile game, performance was a major focus.
C++/OpenGL/GLSL: Shaders Examples
These shader examples were my coursework assignments for the Shaders and Advanced Shaders modules in my final year at DMU. One program includes an infinite, procedurally generated terrain calculated in a compute shader as a height map, as well as reflective water and height-based terrain texturing. The other includes various lighting and texturing techniques.
C++/SFML: Space Invaders
Space Invaders is from my first-year C++ assignment, where we were tasked with recreating the popular game using C++ and SFML. I am overall very pleased with the results, and achieved a grade of 98. The game feels very authentic to the original and makes a good use of object-oriented programming.
Java: Minecraft Mods
I have been creating mods for Minecraft in Java since 2013. Details on my current active mods are available on the dedicated page here, or my CurseForge profile with over 750,000 downloads (MCHeli at 1.2m is not counted) is available here.
This was a tool I created for people who were making music charts for Clone Hero. The program can take a MIDI file as an input, and convert it to a usable drum chart for the game.
Worlds Adrift Inventory Viewer was an internal tool created for use on Bossa Studio’s MMO, Worlds Adrift. I created the tool during my time there, which allowed us to take a JSON file from the servers, and view player or container inventory and statistics quickly out of the game. This allowed us to decisively track down players using exploits in the game to duplicate materials and handle these players as appropriate.
The tool is written in Java and parses JSON data from the game server. Due to the nature of the project, I am not able to share the source code or example files, but screenshots and explanations of usage are provided.