Unity Editor Spline Tool
Developing a tool to automate production

Intent

Goal

Software

Improve: Custom Unity editor scripting, production automation

An editor tool to automate production of game levels.

C#

|

Visual Studio

Unity

Skills improved

  • Unity proficiency
  • C# Programming
  • Applying math formulas to code
  • Writing custom editor scripts
  • Writing custom inspector UI
  • Prototyping tools
  • Automating production elements

Automating creation of levels

This project started as a prototype of a game concept. Considering the game itself had no remarkable elements to prototype, there was an issue considering the game would rely heavily on having a massive amount of levels.
I took it to the drawing board to prototype a tool to automate the creation of these levels. As the game would be a puzzle game with objects moving along a set of twisty splines, the tool needed to be able to create splines manually and automatically. Not only that, the splines created also needed to be editable after creation.

The main goal here was to develop a tool to automate editable-spline creation based on a set of input values, with the ability to randomize.

Developing a prototype tool

Prototyping this tool was a very linear process:

1. Core: Note down what functions I need, highlight the basic needs, research the basic needs, build a core functionality test, note down it's strengths and flaws, research how to improve the flaws, build another test with updated flaws and optimized strengths.

2. Extras: The extras were mainly UI, quality-of-life, and being able to flatten the spline/handles on the Y-axis. The process didn't change, I started with research first, and an updated test build after. I kept the custom UI for last, great documentation and lots of info on forums saved me a lot of time.

3. Automate: Time ran out when I only had a very buggy automated test working. I decided to clean up the latest manual prototype to work with. However with the failed automation test archived, I would only have to work out the bugs in case the concept was to be further developed.