Tools Development
Work
Ability Editor
As part of development for the game "Where's our Healer?" for Glasswork Games, I sought to create a tool that helped designers create abilities for the game's characters without having to overly rely on the development team.
Taking inspiration from Robert Nystrom's Bytecode Pattern I turned our abilities into instruction sets that can be saved and loaded from data assets on disk. This allowed the creation of a GUI that permits designers to design and quickly iterate abilities that get saved and imported into the game in that data asset format.
This GUI was developed as a Unity Editor extension, given the project is built through Unity. It keeps designers within a single program, allowing them to integrate the tool into their workflow quickly.
Development of this tool has required close coordination with the design team and creating features that act as quality of life. Among them, these include:
Validation to ensure created abilities make syntactical sense
Visual user feedback to let designers know when an instruction requires more nested instructions (such as the multiply operation above missing one of its operands)
A 24 page manual detailing how to use the tool and its technical architecture so other devs can extend it.


Quest Editor
Working on a solo project called Adventurer's Guild, I designed a quest system that operated as a tree of decisions and events players had to navigate through.
I wanted a tool that would help me design the quests and save them as data files that the game would load on start. I chose to save the quest data into JSON files as they seemed easiest to parse, most compatible with other tools and it made debugging simpler.
To create the trees, I created a custom editor window in Unity. Using Unity's GraphView as my base, I created the logic to create the types of events supported by my quests: Information Events, Decision Events and Challenge Events.




Looking Glass
To help with the development of Bat Bots, I created an in-game debug tool. Accessible only in development builds of the game, it greatly empowered our testing capabilities.
Development of this tool started as we began work on the power up system. To avoid having to change spawn logic for testing, I created this tool to give us quick access to that logic in order to do tests mid-run.
Over development, Looking Glass kept growing as I saw more ways for it to add value. The last version enabled the team to:
Spawn any bats we wanted for testing or toggle their spawning in general
Toggle power up spawn availability
Unlock or reset achievements
Lock framerate for quality and performance testing
Show the bats movement vector to debug collision avoidance.






Data Dashboard
As part of Bat Bot's development, I built a gameplay data capture pipeline to maximize the amount of playtesting feedback we were able to capture. I used the architecture below to feed a NoSQL database with data and then created a dashboard using Python's Tkinter and Matplotlib libraries.
Built using the MVC architecture, the code for it can be found here.





