Programming:
I created a custom Google Sheets to JSON pipeline to load the script for this game, allowing me to display the narrative in an easily readable format, edit from any device, and easily collaborate with Sheets' built-in multi-user editing.
To make this pipeline quicker, I also wrote a basic editor tool, which allows me to specifiy which sheets I want to pull from, then fetches the latest version of each sheet, converts to JSON, and places this result in the correct folder in the Unity project. In the end, it takes 5 clicks to download, convert and organize the entire script!
This editor tool works by first sending a request to Google's Apps Script, where I wrote a simple program to export the sheet with the 1st row headers as keys. It then clears the previous JSON files, creates a folder for each sheet in the Resources folder, and saves the JSON files there. On game start, I load these JSON files and parse them into C# dictionaries with Newtonsoft.Json!
Code Snippets and DocumentationOne of the core mechanics of the game is an ability creation system, where players design custom hacks using ~20 different ability components.
To facilitate such a large number of possible combinations, I divided components into 3 categories: bases, which determine the hitbox & core behvaior, effects, which determine what happens to each enemy hit, and mods, which change how the ability is cast in the first place, such as an autocast or an aura around the player. This allowed me to elegantly implement any ability in terms of its base, which would then determine which enemies are hit and call a single ApplyEffects() function on them, passing in the list of attached effects.
With this framework, whether the player wants to create a slowing damage circle, a dash that attaches a bomb to enemies, or an auto-firing projectile that baits enemies into walking closer, all I need to do is run a simple collision check and call 1 function!
Art: