New Log File, No Legacy Save Support, and Partial Sick Day
Hey Folks! Hope everyone had a good weekend. Ours was a good one, complete with a b-day party for the youngin', beautiful weather, and the SeaFair air show practically on top of our house. F-18 fly-bys are hella loud if you're trying to do something in the house, but a lot cooler if you're outside watching them.
I'm afraid I have some bad news for the new NEO Scavenger engine: it will not load the old save file format. I spent another morning messing around with it, and there appear to be several layers to the problem, and none of them are easy to solve.
For one thing, even though Flash and Haxe can both read and write sol files, Flash used a semi-proprietary format for the data within the sol file. And Haxe doesn't understand how to parse it. There are some libraries out there that can read the format, but it'd also involve some error-prone work behind the scenes to link fields in the old format to bits the new engine is expecting. In other words, they might as well be separate languages and structures, even once the app opens them and peers inside.
As a result, the rollout of the new build is going to mean old saves cannot be loaded. Players will just have to start a new game. And I'll have to be super clear about that in the announcement when it launches.
That said, it won't delete the old save file, either. So if the player mistakenly upgrades, their old save game will still be there (assuming something else hasn't deleted it in the meantime, like cookie cleaners). I think my plan is going to be keeping both the new and old engine builds up on the site for a period of time in case folks want to go back and forth between them. And some day down the line, I'll pull the old Flash build for good.
In practice, I suspect very few people will care much about this. If they're actively playing a save file, they can just finish it up before starting a new game on the new engine. And if they haven't touched the game in a long time, the chances of them wanting to continue (or even remembering what was going on in the save) is limited.
In better news, I think I was able to find a way to generate an honest-to-goodness log.txt file as the game loads assets. Using the EasyLog lib from Haxe, it's pretty trivial to send logging messages to a text file as the game loads.
The aim here is primarily to help modders debug their mods as they test them. Hopefully, this will give them some insight into the process of loading their mods, and where it failed. And it should be a major upgrade compared to the old ephemeral on-screen log and clipboard solution in Flash.
In theory, this could also be applied to in-game logging after the game starts. I'll have to check if this will create issues with large file size or threading. But it could help with debugging some of those harder-to-find issues.
Lastly, it looks like I'm ill again. The morning started off with a symptom like a sore-throat, and has developed into aches and chills. Not good.
As a result, today was less productive than some, and it's questionable whether I'll be at work tomorrow. I'll have to play it by ear. See you again (hopefully) soon!