Posted January 05, 2024 by madodev
I mentioned it before, but up to this update the importing of data for the game used Excel. That data was then converted to csv files which were then verified and enriched by the game itself. This was born of necessity, since at the start of the game there wasn't a game at all, so I needed something that stored data without using anything in game. It also worked fine. The amount of data that had to be imported was small, and I could easily remember which scripts existed and what data formats I was using.
However, nowadays there is a lot of data in the game, so it's also a lot easier to make errors. These then have to be caught by running the game, and then fixed. There are also contributors, who don't necessarily have Excel, and hence have to work in the tab delimited csv files that its macros spits out. This then causes consistency problems as the Excels are no longer in sync with the data files. Finally, there are modders, who don't directly have access to the game editor, and certainly aren't aware of all rules for adding data.
So, all in all, a new importer was needed.
I've created a new importer in Godot, which looks a bit like Excel. It shows all possible data folder and subfolders and displays the data files in those in a grid format. When pressing Export it then updates the underlying data file.
This is JSON-like. It looks like JSON, but is actually the way Godot writes its variables to file and is slightly different. You're not supposed to manually change these txt files anyway, that's what the importer is for.
It also automatically verifies all the data, and tells what data it expects to be. These verifications can also be edited by the importer. It also has potential for some nice visual stuff. Now it already shows you the actual icon that is used instead of the icon string, which already allowed us to find and fix a couple incorrect goal icons.
Finally, the new importer also imports all textures, and stuff like special scenes and sound files. It then displays them so it's clear at a glance what is missing.
At the same time, this allowed me to rework modding. I could simply repurpose the editor to allow it to also edit mods (although I removed the data where modding would make no sense). This way modders are able to have instant verification of the data they add. They can also see what data is in the game, and what possibilities there are for scripting.
This also means I don't have to make any modding guides. The data that is seen by the modder is the exact same as the one in game, so it's self documenting. Additionally, the mod importer also shows what textures are included in the mod. This allows the modder to see whether the files he included are actually registered by the game.
To see how to create your own mods, look at the new modding guide.
Finally, I also changed the code such that the game can fully reload without restarting. This makes it possible to enable and disable mods and have it take effect immediately. The same holds for translations. And this also means you can finally return to the main menu from in-game (while creating an autosave).
This may seem trivial, but there's a reason many games require you to restart for some stuff. Up to now, the game started off by immediately loading the tutorial dungeon and its characters. This was a remnant from how the game was originally programmed, and I still needed to test a bunch of stuff without having a save system in place. These things eventually get so deeply rooted into the code that it becomes hard to remove them.
Firstly, mods from before 2.8.2 are no longer compatible. Do not upgrade if you'd like your current mods to keep working. Give the modders some time to update them to the new format.
The Mod Manager allows you to see which mods are loaded and select and deselect them. To see how to create your own mods, look at the new modding guide.
There are now manual translations for Korean, Simplified Chinese, and Traditional Chinese. These are bundled in the game. These translations are made manually by community volunteers, so stuff may be incorrectly translated in context. If you find such things, you can let them know on the dedicated translation threads on Discord.
As you can see, not everything is fully translatable yet. But that's something we're working on.
The game now has experimental Mac support. Strangely enough, the default compatibility renderer caused crashes on Mac. So it required someone who knew what they were doing to actually get it all working.
Content:
Minor:
Bugfixes: