Diary #52 – 1.1.06 & 1.1.07 Release Notes
[p]So uh, sorry about that everyone! I managed to create a new bug in 1.1.05, so a fix went into 1.1.06, but then another bug was reported the next day which warranted the release of 1.1.07. Now that those are sorted, I’m back on feature work, but I wanted to talk a bit about what happened and why.[/p][h2]1.1.06[/h2][p]So you may remember my long explanation of the color bug fixed by 1.1.05, and maybe you thought, “wow, this guy went into a lot of detail about this bug, he seems to know what he’s doing”. It turns out, nope. While fixing the problem, I decided to go ahead and write some code to manually write out the color, rather than relying on the default serialization. I still think this was a good call, as relying on the default was the cause of the comma/period bug, but as I was writing it the autocomplete spat out what looked like the thing I was trying to type. So I went ahead and finished the line & moved on. (This was mistake #1.)[/p][p]Publishing software to actual people should involve a decent amount of testing to prevent bugs from reaching them. Ideally, it’s one part of the “swiss cheese” model we all got to learn about in 2020. For major releases, that is the case – not only do I run through a full playthrough or two, but Bea McCullagh also does some substantial testing – that’s why she’s on the credits. For this one though, because I was in such a hurry to get a glaring bug fixed, I didn’t do enough testing (and I was the only one testing it). I made sure that loading saves with the white hair and trains fixed the colors, and saving the game seemed to work without crashing, but I forgot to verify that these new saves could then be loaded again. (Mistake #2) That is kind of the definition of a working save: it’s kind of pointless if it can’t be loaded again. But this was a last minute “oh, I should fix this too” change, so it didn’t fall on my radar as something to test.[/p][p]So what was the problem? I forgot the alpha channel when storing colors. Or specifically, the autocomplete forgot it, and I didn’t notice. This autocomplete is IntelliCode, which I made the dumb mistake of just assuming was just rebranded IntelliSense or something, just some sort of fancy autocomplete. (To be fair, that does describe all LLMs, but still.) But even though it’s not Copilot, it calls itself some sort of AI feature, so I finally went diving through the mess of settings to disable all of it. Apparently I’m not enough of an anti-“AI” zealot.[/p][p]Anyway, without the alpha channel, the code that loads the colors throws an exception, which stops the loading, which prevents the “Loading…” panel from going away. I still generally think this is generally correct behavior, otherwise you could load a corrupt save and all sorts of unexpected shenanigans might happen, but a missing alpha channel stopping loading is too much. The loading code will now properly handle missing alpha channels for colors, and going forward all saves will include it again.[/p][h2]1.1.07[/h2][p]Another bug got reported afterwards, but thankfully this wasn’t caused by another fix. In one save, the “scheduledRoyalTrain” variable in the ProgressionManager (code I have that handles the game levels, a.k.a. permits) had somehow been set to “true”, but there was no Royal Train present in the save, either in town or listed as a “nextTrain”. Unfortunately I couldn’t reproduce the reason why this happened in the first place, which would’ve been ideal, but there’s now code when loading the save that checks if this variable should actually be true. If it shouldn’t be, it gets set back to false, which allows the TrainDispatcher to realize it should spawn the Royal Train. That code is now in 1.1.07.[/p][h2]How to Report Bugs[/h2][p]The most useful thing to help deal with bugs is providing your save file to me; second is your log file. The fix in 1.1.07 never would have been made without getting an affected save, so I’m taking this opportunity to make a PSA. If you run into an issue in the game, the most useful thing you can do is send an explanation of the problem and a save file. Where do you find those saves (or the related logs), you might ask? Every operating system seems to have an annoying location for them, but here’s the full listing:[/p][p]Save Files (Steam Cloud):[/p]
- [p]Windows – C:\\Program Files (x86)\\Steam\\userdata\\ (Your Steam ID)\\3011060\\remote[/p]
- [p]MacOS – ~/Library/Application Support/Steam/userdata/(Your Steam ID)/3011060/remote[/p]
- [p]Linux – ~/.local/share/Steam/userdata/(Your Steam ID)/3011060/remote[/p]
- [p]Windows – %appdata%\\Godot\\app_userdata\\Iron Village\\logs, saves[/p]
- [p]MacOS – ~/Library/Application Support/Godot/app_userdata/Iron Village/logs, saves[/p]
- [p]Linux – ~/.local/share/godot/app_userdata/Iron Village/logs, saves[/p]