Anthony Marmont

Tools Programming

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 really kick-started my passion.

RPGCore and Node-Based Editors

RPGCore has always been primarily focused around it's modular behaviours; however, creating tools for authoring these modular behaviours is the part of the project that I find the most inspirational.

Figure 1: The node-based behaviour editor for RPGCore

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!

Figure 2: The package content editor for RPGCore

Eitr and the Skill-Tree Editor

During my time working on Eitr, I produced a skill-tree editor tool that I found perticularly efficient at inspiring design.

Figure 3: The skill-tree editor for Eitr

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 where web-applications.

Web-Tools for Customer Service

At TT Games, one of my responcibilities was creating and maintaining tools that would be used regularly by our Customer Service department. These tools where 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 developers 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.

Figure 4: Documentation generated for AssetIcons.

Web-Tools for Content Generation

I have 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.

Figure 5: A screenshot of Fydar.Vox.Web, a Blazor web-app for importing and rendering .vox files

Specialised git clients

One of the more useful tools that I created at TT Games was a tool to maintain changes to data via a custom git client. Creating custom git clients can be powerful tools for interacting with the project source and I will always consider them a part of my toolkit when approaching new challenges.

Unity-specific Tooling

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.