First up, I’ve identified some ways in which dogs can have genetics that result in invalid body construction. Some of these were natural, and some were not (people have been hand-editing exported dog codes and I sometimes get bug reports with dogs clearly generated that way). I’ve gone through and fixed up all of these types of issues that I could find. Mostly they stemmed from dogs trying to scale parts of their body negatively and inverting their colliders, which causes a whole other batch of problems in some cases, but there was also a situation with certain dog genes being able to grow too large to parse. The game had code to handle this, but that code had a bug causing those genetic values to inflate overly rapidly. This means that if you have any unstable dogs, after this patch they should be more normal again. It’s a little sad, but it also means these dogs will (hopefully) no longer be able to break the game.
The larger change (which will likely be invisible to most of you) is that I’ve done a big refactor with how I manage and store dogs internally. I’ve been working on this game for years and some of these code paths have been around nearly as long. As things grew, a lot of this stuff got tangled and hard to manage, leaving opportunities for some obtuse bugs and edge cases. I started looking into this stuff because one person with the breeding center softlock was able to provide me a log file with an error message that stemmed from these systems. While updating all of this code I identified and fixed several bugs including a few that could result in softlocks, and I cleared out a few places where the game was storing redundant data. As a result of that, this update may slightly reduce memory usage. On my computer it’s barely noticeable but it may make a larger difference for players with low RAM. I still haven’t been able to reproduce the breeding softlock, but if the errors I was seeing were part of the cause, there’s a chance this change will help address the issue. If you encounter that bug again after this patch, it would be a huge help if you could file another bug report and leave me your contact info so I can request your log files!