AutoRhythm (2022, All Roles)

Started as a clone of the 2009 rhythm puzzler “AudioSurf”. I created it as part of my A level computer science coursework. Initially written using a custom game engine of mine, I was forced to switch to the Godot engine after my custom engine’s renderer inexplicably broke and I did not have time to fix it. I had never used Godot but I was able to learn how to use it and the native code interface gdnative, which I needed in order to perform audio analysis to generate levels, in just a few weeks. I did not write my own audio analysis code from scratch, I made use of the helper library aubio for transient, frequency and loudness detection. Audio was decoded using Fmod’s low level API, which I ported to Godot myself mainly because I needed direct and fast access to the raw audio data, which existing Fmod ports could not give me (I only ported functions I needed to save development time).
Source code available on Github

Reflections (2022, Director, Programming, UI/UX Design)

“A traditional 8-gym Pokémon game. Or is it? Only one way to find out”

Reflections is a game I made despite saying I would never make another game like it. Also created during a ~1 month game jam, this time in 2022, the theme of which was “simplicity”. It is a parody/commentary on JRPGs, initially presented as a traditional (to the point of being painfully generic) Pokémon-style game and eventually becoming more of a visual novel as the game breaks the fourth wall to ask the player why they chose to keep playing. On this game I did a considerable amount of UI design, in order to sell the idea of a fresh new game despite the major internal gameplay changes I made to parody the JRPG genre and turn based battles.

pre;COGNITION (2023, Director, Programming, UI/UX Design)

“Embark on a journey of adventure, mystery, and discovery... again, and again.”

Despite saying that after the release of Reflections I would never again make a game with RPG Maker XP, I returned to Relic Castle's game jam scene with my most ambitious project to date. It began life as a roguelite but it slowly morphed into more of a clone of the game Outer Wilds but with a roguelite Pokémon gameplay loop surrounding the mystery and the time shenanigans. Part of the ambition came from the fact that I once again decided to completely remake all the UI from scratch, but also from the fact that in some ways it was a radically different kind of game to what RPG Maker is generally used for. A large chunk of the engine's internal workings had to be changed to cooperate with the time loop mechanics as well as my decision to use a larger screen resolution than the average RPG Maker game, and my overuse of (by RPG Maker standards) "complex" graphical effects.

pre;COGNITION was considerably more popular than I expected it to be, and would go on to win the community spotlight award for the game jam it was created for.

Pivot (2023, Programmer)

“It's pivoting time! Zzt!”

Pivot is a multiplayer online battle arena (MOBA) game made using RPG Maker XP. Also a project made during the aforementioned Relic Castle game jams, but one that I joined the team for after the jam had finished, fixing critical bugs and issues with the game engine that the team would otherwise been forced to accept and ignore. I also developed the game's updater, learning PHP to build a server side patch generator to reduce download times for the end users.


Miscellaneous Projects

bfgame

This is an interpreter for the esoteric programming language brainf**k, designed to make it “possible” to create graphical games. The I/O is very simple, eight digital buttons in, a 64x64 1bpp display out, no sound. Display is written to using the first 512 bytes of the interpreter’s memory. I am yet to write a game using it, though logically it should be possible to write functional if basic games with it, and I intend to write a compiler to simplify that process at some point in the future mostly to prove that it can run games. You can view the source code for the interpreter here.


Graviton

A 3D puzzle “concept” about changing gravity. Specifically, the player would fire a gun at a wall, and the force of gravity would change to pull the player and any physics objects in a direction inverse to the normal vector of the wall it hit. I have ideas as to how I would expand on this concept (such as sliding doors on rails, “cube and button based puzzles” like in the portal series, objects that the player cant pick up but can be moved by shifting gravity) but I’ve kept it on the back burner for a while since I have greater interest in other game ideas of mine. There exists a semi functional prototype written in C here and I also began working on a Unity version though I struggled to get unity to play nicely with the concept of changing view and gravity vectors, unlike my custom C engine with the Bullet physics library. Speaking of C and Bullet, at the time of development there was no robust C binding for Bullet, and for some reason instead of switching to C++, I decided to write my own. It was the first time I had ever attempted to use a library written in C++ with C, and I think it went quite well considering I neglected to ever google the question “how do I use C++ classes in C”.


The Many Game Engines

As a programmer first and foremost I prefer working in programming heavy environments. This had led me to create my own game engines for personal projects, often in C++ with OpenGL, occasionally C or C#. I unfortunately don’t have the free time to develop a full 3D game engine from scratch as well as design + program an entire game in that engine, so these engines are often mostly short experiments before I return to using a tried and tested existing solution such as Unity/Godot (or as of quite recently GameMaker Studio 2). I have come very close to developing a full game with a custom C++ engine however, this was due to multiple people involved in the project initially opting for a custom solution, though we slowly realised that the “make games not engines” principle very much matters for small hobbyist teams. That engine was called southwest, and is available on Github in a semi-functional state. I am also passively working on a modular, cross platform framework/engine in C++ called "gamestage", whilst I determine if GameMaker Studio 2 is viable for the ARPG I am looking to make. In the past I have worked an engine by the name Saltwater (some boilerplate of which can be found in southwest) and CRGSS (a framework inspired by RGSS of the RPG Maker series written in and for the Crystal programming language, though this was long before Crystal was usable on Windows so it was difficult to work on once software incompatibilities forced me to abandon Linux).

My github page contains some less notable WIP/generally unfinished projects.


Music

I have written plenty of original music for my unreleased personal projects here.

Unaltered (2019-ongoing)

A JRPG by a friend of mine which I wrote/am writing parts of the soundtrack for. I took a lot of influence from the Pokémon series, as well as Xenoblade Chronicles and Persona 4.

DELTAWAVE (2021-ongoing)

An ongoing project to cover the soundtrack of Toby Fox’s ongoing episodic RPG Deltarune in a retrofuturistic 80s style. I began with a cover of the ever popular battle theme “BIG SHOT” from the second chapter of the game and slowly worked on more and more tracks over the months. Many remain unreleased though there are quite a few up on YouTube, the BIG SHOT cover notably surpassed 100,000 views which is something I didn’t ever expect to happen. It has been a great exercise for my production and arranging skills, and like a lot of my major bursts of musical productivity, partially reinvented my entire sound as a musician.