Imagine a huge engine that's just been converted to run on a different kind of fuel. It had to be taken apart and all sorts of bits had to be connected up differently. Now it's back together again, mostly - there's still some open panels with cables coming out. You turn it on, and nothing happens. You check the wiring behind the on switch and realize you didn't connect it back up yet. You do so now, and try again. Status lights begin to turn on on the machine's panels, and it starts to emit a hum, then a belch, then an almighty crash and sparks fly, the breakers trigger, and something the colour and consistency of honey starts leaking out of the bottom. You think for a moment, then take off a side panel and rummage around. Yes, this needs to be connected to that via a filter, and if this happens, it should trigger the side valve, and...
Most of the work is done, now it's all a matter of figuring out those little missed bits and then wiring them up correctly.
That's the state Airships' data loading is currently in. I've taken all those hard-coded enumerations and turned them into JSON files that the game can load in and link together. Right now, I'm doing the final big sprint of converting all the module type information.
Then I'll be moving through the code and patching up cases where things are still going wrong - where it can't find graphics anymore, or where it tries to load in some resource too early, or fails to refresh it when the data is re-loaded.
By dev 8, you will be able to change and add to the following kinds of information:
- Crew types and animations
- Armour types
- Module types and categories
- Bits of background landscape
- Heraldic charges
- Times of day and weather
There's also a few things that will be not moddable because each type requires custom code:
- Heraldic layouts
- Spy actions
The nice thing about putting mods into data files that can be reloaded on the fly is that you can install and toggle mods without having to restart the game. Mods will also be multiplayer-compatible, allowing the creators of combats to specify which mods they want to use.
Going over all of this game content has also given me some new ideas for cool things to add, which I'll be adding to releases over time. As you may have seen, I've decided to split the next release into two to get a new major release out faster - so stay tuned.