Work on commercial projects
Here are some of the larger things I've worked on during my previous employment.
2024
Pummel Party - Online game reconnect support + QOL
While for most games with online connectivity today this seems like a standard feature, Pummel Party wasn't initially designed with this functionality in mind. Many assumptions and shortcuts in the game's logic had been made around this limitation that needed to be found and re-evaluated across not only the Steam version, but the three console versions too.
Some of the problems that needed to be solved here included: what UI should be available to allow a player to rejoin, what should the player see when they're rejoining, when during a game a player was allowed to rejoin, and how they would be represented to the remaining plaers while they were disconnected.
Ultimately we settled on allowing a player to rejoin their last online game for 15 or so minutes after they disconnected. We provide a rejoining screen that tells them what the state of the game is (who's turn it is, what minigame is being played, etc.) and the game allows the player to truely rejoin and take control of their character (who is managed by a bot while they're absent) at the start of each ingame round.
This update also included many quality of life improvements, such as more granular control rebinding, faster load times, and more complete saving/loading of games.
Pummel Party - Team gamemode and cosmetics overhaul
Players had been requesting a way to play in teams (2v2, 3v3, etc) for years. I was tasked with scoping out how this could be achieved and how it should be implemented. It sounds simple enough, but there are many aspects that need updating that aren't initially obvious. Things like how should minigames be scored, what happens if teams aren't balanced, how should the UI be updated to show that players are on the same teams, should teammates be able to damage or target each other with items.
Almost every part of the game needed some kind of change in logic to work with "teams" instead of just "players".
As part of this update, I was also tasked with expanding the selection of cosmetic items for players to unlock and use. So many new items meant that a cosmetics loadout system, and a new UI screen for viewing and unlocking items was worth pursuing.
Players could now create up to 12 pre-made loadouts of cosmetics, and select them quickly once they joined a lobby.
Pummel Party - Nintendo Switch and Xbox One ports
I ported Pummel Party to the Nintendo Switch and Xbox One consoles. This involved implementing platform-specific functionality for online services (server browser, game invites, online connectivity), account management and controller management. Much of the game's general functionality was built around interfaces, so the console-specific logic could be built and plugged into the game (replacing the Steam-specific functionality) with relative ease.
The Switch port initially ran terribly, even on menus where not much was happening. This required a lot of profiling and performance fixes across the game to get it to run at a stable and acceptable framerate, and also to keep runtime memory usage low. The game needed to be ported across to using Unity's Addressables system, a process that took several weeks. In the end, this resulted in a smaller build size, reduced runtime memory usage, and faster framerates not just for the Switch, but for all versions, as they all share the same project/codebase.
The Xbox port didn't suffer from any major performance issues as it was developed after the Switch and so got to benefit from all of the improvements there. Instead, the user account management on Xbox was by far the most difficult element. The platform requirements around user accounts combined with the freedom available to users to sign in and out at any time introduced many edge cases and considerations that the game wasn't originally designed to handle.
2023
Pummel Party - Mod Editor improvements
After the launch of the mod editor at the end of 2022, the community got to work creating custom boards and minigames for the game. This was awesome to see, however some of the more technically advanced mods were pushing against limitations with the editor as it had been built.
I spent several months redesigning and re-implementing aspects of the built-in, action-based programming language players could use to add functionality to their mods. The goal of this was to eliminate networking issues (desyncs), improve performance, and expand what was possible for players to create by adding functionality.
All of this work culminated in a major update in August, which saw many highly requested features released for the mod editor that could now be supported due to the smaller changes and fixes throughout the year.
Mid to late 2022
Pummel Party - Mod Editor
I worked in a team of four and assisted in developing the mod editor and workshop tools for Pummel Party when I first started at Framework Games. The editor is essentially a recreation of the Unity editor but built within the Pummel Party executable. The UI is built using Dear ImGui. Much of the foundation of the mod editor was already in place when I joined. I implemented several of the "Mod Actions" and "Components" that creators can use to add functionality to any minigames or boards they create using the editor.
I maintained and added features requested by community members to the mod editor through to mid-2024.
You can read more about the mod editor on the mod editor wiki I was tasked with creating.
Early 2022
Work at Applied Virtual Simulation (Land Sim Core 2.0 Tranche 1)
As part of my Software Engineering degree at the University of Newcastle, I was required to do 12 weeks of industry placement. My FYP supervisor recommended me to Applied Virtual Simulation, who offered me a full time position.
I worked for ~5 months at AVS to support the LSCore 2.0 project by configuring digital 3D assets for use in a piece of army training simulation software. During this time I also assisted a team of 3D artists from Upsurge Studios to refine the content creation and delivery process between Upsurge Studios and AVS. I was responsible for QA of the produced 3D assets to ensure they met the requirements of the project.