Implementing Rulesets and Modding

Though it’s probably too early to dream of a thriving modding scene, I did need to work on implementing a better system for the ingame balance. It turns out that serializing C# objects into XML files is quite straightforward. The key is that Unity Monobehaviors can’t be serialized, meaning that you need to make a few custom classes for the system to handle serialization. Plus, by building out the game’s balance into custom objects, it makes it quite easy to build out an ingame interface for exploring what’s going on.

My dream with this is to let players easily change the core rules of the simulation without digging into HEX editors or decompiling source code. Imagine if you could fiddle with the factors influencing RCI in SimCity or change how land values are impacted by pollution as easily as you fiddle with the ingame taxes.