Contents
Tools for Design
I am passionate about programming tools that inspire design.
I have always been a fan of games where content is delivered regularly with updates; being able to create a tool that could drive content generation kick-started my passion.
RPGCore and Node-Based Editors
RPGCore has always been primarily focused around its modular behaviours; however, creating tools for authoring these modular behaviours is the part of the project that I find the most inspirational.
I struggled for a long time trying to decide (for the re-write of RPGCore) what the node-based editor should be implemented in. I experimented with Win-Forms, Avalonia, Electron, and other UI frameworks to try and find something that would give me an efficient, cross-platform authoring pipeline. I eventually decided to use Unity's IMGUI, as it was my game engine of choice at the time.
Asset Management
When rewriting RPGCore outside of Unity I got really into asset management, authoring and packaging pipelines!
Eitr and the Skill-Tree Editor
During my time working on Eitr, I produced a skill-tree editor tool that I found particularly efficient at inspiring design.
Tools for Live-Ops and Player Management
During my time at TT Games I was introduced to a new type of tooling; tools for interacting with databases and managing the game state.
Many of the tools I created at TT Games were web applications.
Web-Tools for Customer Service
At TT Games, one of my responsibilities was creating and maintaining tools that would be used regularly by our Customer Service department. These tools were all web applications.
The "Player Admin Tool" was created to allow us to manipulate the profile of players.
The Player Admin Tool featured authentication which granted developers additional permissions and functionality for debugging and designated "Power-Agents" to manage the permissions of other customer service agents.
I also produced a "Username Auditing Tool" that allowed stakeholders to perform GDPR-compliant username audits to manually review the profanity filtering.
Web-Tools for Developer Efficiency
I worked directly with developers from all across the departments in order to create player management tools to increase their productivity. Being able to manipulate a developer profile in order to get them into a state where they can efficiently test their features was a very rewarding experience.
Web-Tools for operating Live-Ops
Other web applications I maintained included tools for server management. These tools maintained mapping players to server environments; managing server lifetime; and direct database interaction.
Tools for Developer Efficiency
Documentation Generation
For AssetIcons, I created a documentation generation solution that utilised ASP.NET Core MVC to generate a single-page documentation file.
This project utilises Roslyn to perform code analysis and syntax highlighting.
Web-Tools for Content Generation
I am excited by the unique position that web tools have when it comes to games development and content authoring. I think 'Dead Cells' is a great example of the potential that these tools have.
Inspired by the web tool featured in the Dead Cells development log, I created my own Blazor application to render voxel models.
Unity-specific Tooling
Configuration Tooling
I joined a dev team who where changing constant variables and recompiling to change the game behaviour. In Unity, this consumes a lot of time; so I made a configuration system.
Upon leaving the team I decided to make another configuration system; targeting specifically Unity applications.
AssetIcons
AssetIcons is a tool for Unity that draws an icon for ScriptableObjects using their content. This is a very powerful tool for asset management.