Progress Report: Tech Update (v2.82)


Tech Update

The Old Importer:

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.

The New Importer:

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.


The Mod Importer:

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.

Reloading without Restarting

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.

Other Updates:

Mod Manager

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.

Translations

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.

Mac Support

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.

Changelog

Content:

  • Full change of how data import works.
  • A mod manager and a way to easily modify mods.
  • Mac Support, thanks Abitenum!
  • Translations are now included by default:
    • Korean Translation, thanks SpeciaLee!
    • Chinese Simplified Translation, thanks Roland3!
    • Chinese Traditional Translation, thanks Fishplate!
  • Preset adventurers can now appear in curios, or very rarely in the stagecoach, thanks Keyarl!

Minor:

  • Updates to the translation files.
  • Music for the swamp combat.
  • You can now exit to the menu.
  • Data is now autosaved when you exit to menu or desktop through settings.
  • Recruit are now color coded by rarity.
  • If curios contain a captured adventurer, you can ask her opinion on the curio, thanks Haraberu!
  • The Mental Ward has been streamlined, thanks Keyarl!

Bugfixes:

  • Scanner's self-destruct would kidnap everyone (fixed in v2.81 hotfix 1)
  • Huge Slime's would keep grappling (fixed in v2.81 hotfix 2)
  • Jobs would appear in the overview before they are unlocked.
  • Mimics no longer destroy items.
  • Sometimes you would get extra items at the end of dungeons.
  • Hidden and cursed items have been refactored to hopefully stop the deluge of bugs related to them.
  • Forced tokens didn't get cleared after suggestion removal.
  • There were some data errors in curio choices.
  • There were some icon errors in the goals.
  • Cow mask had the incorrect uncurse goal.
  • You could get stuck on curios if you had an absurdly high loot modifier.
  • Mage's had +DEX instead of +INT as permanent bonus.
  • You can no longer get an advance to crestless from curios (but for real this time).
  • Mental Ward operation costs weren't always suggestibility based.
  • Healing would do recoil damage.
  • Quests had incorrect description in their tooltip.
  • Tooltips for class effects would move out of view.
  • You could visually duplicate adventurers by replacing them on a full party in the guild.
  • Cocooned adventurers could still use their old class's riposte albeit without animation.
  • Set bonuses, force tokens, and force dots wouldn't always register correctly after equipping in the guild.
  • The cow tail wouldn't show up when wearing a face covering mask, and would show up incorrectly when kneeling.
  • The HP increases from class updates weren't shown in the tooltip.
  • Latex ring was horribly bugged.

Comments

Log in with itch.io to leave a comment.

awesome, idk much about coding but i hope this new system if more efficient than the old one. i hope it makes the game run better. (I wonder if it has to do seqential checks for info or code and that this new system can do it better and faster)