Week 11 - Engine Changes & City Timesteps
A Change to Serialization & Health
This week two major changes have occured in the Terasology codebase. In the engine, a new serialization system was merged into master, which reads and writes all the assets & save files more efficiently.
The number of changes in the serialization pull request.... oh my!
This update required many changes to multiple modules in my workspace, which took up more time than expected. If you recall from three weeks ago, I had some troubles with pathfinding serialization, where the game would throw errors when a path is saved to a character. With this new system, the errors have reoccured again.... Except this time, the game doesn't only throw errors, it crashes entirely with a NullPointerException. The current cause of this is unknown, and must be fixed as soon as possible.
In addition to this change, vital changes have been made to the Terasology/Health module as part of another GSOC project, which changes the way that events are used in regards to health events. This change also required lots of workspace updates, and also took up a lot of time this week to resolve.
A City which runs on (world) time
Last week, a change was made to city building generation which ensures that buildings will not spawn when the game is paused. This has been improved upon this week, with the building cycle changing again from a constant delta update, to using WorldTimeEvents. This ensures that the building speed is constantly based on the current world status, and not the updates of the local client.
World time in the debug menu
Over the Next Week
- Continuing factions, and determining overlap with CombatSystem.
- Continuing player needs, with thirst, rest, etc. Specifically with thirst, determining a good way to naturally integrate with Terasology/Thirst.
- Fixing the newly determined problems with pathfinding + new serialization.
PRs & Issues
- https://github.com/Terasology/Behaviors/pull/22 Transfer continuous pathfinding nodes from TutorialBehaviors#5
- https://github.com/Terasology/TutorialBehaviors/pull/5 Add smartFriendlyCritter, demonstrating continuous pathfinding
- https://github.com/Terasology/MetalRenegades/pull/29 Integration of Pathfinding in Citizen Movement
- https://github.com/Terasology/DynamicCities/pull/51 Change construction timer to operate on delta values
- https://github.com/Terasology/MetalRenegades/pull/26 Integrate tooltips, with information for citizen needs