This one has a toooon of bugfixes. Some of these are fixes to regressions in the prior build, of which there were an uncomfortable number. An amusing one was causing lots of phantom icons to spring up all over the place, in this kind of insanity kaleidoscope. Others were just error spam. These were a result of my improvements to the collections to lazy-initialize, and there were some edge cases in a couple of them that I did not properly account for. That’s fixed now.
Hey, also there are several features that had been “DLC3 while testing” that are now part of the base game. Roguelike features like Hidden Galaxy, and then the new Border Aggression feature.
There’s a large class of exceptions based around “someone changed a thing on the unit and we’re looking at it belatedly and now it’s null and time to throw an exception.” Those are all fixed, because we no longer allow them to be nulled out. That led to some interim internal hilarious bugs with scaling and stats being off, but now it seems to work fine, knock on wood. So this is a pretty large category of stuff that no longer will break anywhere in the codebase.
There were some pathfinder errors that could still pop up, although these were new ones. These are now fixed. They MAY have been related to thread timings, but I’m not sure. Either way, I made some changes to make them more robust in their defenses, and that seemed to work.
Another big group of bugs were some “invisible dead ships” that would hang around on planets, sometimes with a full forcefield showing, and then also appear on the galaxy map. I am not sure why exactly that started happening, but I have it so that it self-repairs properly now. Most ships don’t properly explode on death anymore (but their icons still do), so that’s something else I need to fix next week.
Last major known issue that really impacts play lately is the stuck threads issue. I’ve made some progress on that, in large part due to Tom and in particular Daniexpert doing some debugging. I’ve corrected a few of the most major cases, and then there’s a couple of remaining cases that I now have a pattern for reproducing, and will start chasing down on Monday. In the meantime, as long as you don’t reload the game too too many times, it seems to work fine. Or if it’s messed up and you reload one more time, then it also fixes itself. I don’t think pausing and unpausing works anymore. But overall if there are behaviors you see, or other ways to get it to mess up, then I’d love to have that information.
Hopefully after a lot of these things, code will kind of start settling down. I still have one major piece of surgery, which is to take the necromancer away from being its own faction and to instead be a faction type for humans. That will probably be some bugs. And there are still other known issues like the xml reload locking up (though I need to retest that actuallly), and tutorials and beacons not being re-enabled yet. But a lot of the biggest, scariest things seem to be slowly settling down. Or we’re just through the first batch and about to discover a giant new cache of new ones, who knows. Hopefully not.
More to come soon.