This release focuses on stability. It’s been tested extensively, and a number of crash bugs from the first release have been resolved. Thank you to everyone who played the first one – I couldn’t have done this without you.
Major changes in this release:
- All path-finding has been refactored to go through a single templated system, that offers callbacks for Success, Fail and Arrived. This helped fix a number of issues, and coincidentally took care of some issues in which entities would try and path through a wall that was built while they were already en-route.
- Entity and Component queries now use boost::optional, rather than a pointer. This fixed some issues via static analysis, and gave me a good roadmap to add guard clauses to every utilization. This fixed 90% of the reported crash bugs.
- Refactored “is_stuck_or_invalid”, and used it everywhere instead of bounds-checks in several different places. This resolved a crash issue, and also made debugging easier.
- Located a few times in which sudden death could cause the game to become confused and crash. For example, if a settler died mid-way through building a wall, the game would try to continue building even though the settler was dead. The death system has been re-engineered to ensure that this can’t happen, and checks added to ensure that it isn’t happening even though it shouldn’t!
Once again, thank you for your patience with the 0.10.0 build. Getting a release out was important, and helped me identify these issues. An extra “thank you” to everyone who took the time to report issues to me!