BRENT VOS
Internship - Triangle Studios
Overview
During my time at Triangle Studios I mostly focused on creating abstract backend tools within Unity that can be used for a wide variety of projects. I also gained experience working in a team, as I also worked on features for a prototype.
Save Data Tool
For about 3 months I worked on a tool that makes save-data easily readable and editable inside the Unity editor. I liked working on it, this is the first time I took a bit of a deep-dive into JSON files.
When creating save-files for players, it is of importance that these files are both protected and efficient. Files are often encrypted to protect its contents, making them harder to edit. Files usually also contain efficient forms of data, for example, an ENUM value should be saved using its INT representation, and not its STRING representation.
​
However, this can backfire when a developer needs to read into a player's data-file. And that's why I made a tool in Unity that detects JSON-structures inside of a text-file, and converts its contents to the Unity editor.
​
On the right (image 1 & 2) are two versions of a file I used as an example. It is hard to read what is going on in the first image, and impossible in the second image (the encrypted version).
Image 1 - Save-data file

Image 2 - Encrypted save-data file

On the right (image 3) is the converted version inside of the Unity editor. The data is shown in a more intuitive matter and is easily editable. When the user is done editing, they can save the file with its new values.
​
The tool is very flexible, it can detect multiple json-structures inside of a file. It ignores any non-json-structured data in the file.
​
Below (image 4 & 5) are other data-files that use the same tool. The tool can use any json-structured file, as long as it meets certain conditions.
​
These conditions are roughly: The data-class needs to exist in the Unity project, there needs to be an SO with the data-class its data, the data-class needs to implement a specific interface.
​
The conditions ask of minimal manual work, in return for readable save-data. And by using an interface, it doesn't interfere with any structural design.
Image 3 - Converted save-data file

Image 4 - Converted save-data file

Image 5 - Converted save-data file

The image below (6) shows the global structure of the code.
Image 6 - Global code structure

Gizmo Tool
For about a month I worked on developing a tool that makes it easier for developers & artists to organize their gizmo-settings in Unity.
I wasn't able to finish this tool, specifically near the end I decided to hastily refactor my code, which sadly backfired on me. Even though it's not a finished product, it can give inspiration on what a custom gizmo tool could look like. This was my first time working on a custom inspector, I liked it a lot!