Week 5 - Time Tracking Simplifications & Final Characters
Time Tracking Changes
Last week was a major development week for time-based behaviors. A new character was added, and character's behaviors were adapted to change the city dynamic when night fell. The pull request that adds all this is now at a mergable state, after making a major suggested from a mentor review:
The time-tracking system used to operate on a component/system architecture, where each character is given a component which stores the time given out by a cycle inside of the larger system. This cycle operated on a world time event, which cycles very quickly. This has been swapped out for an action/system architecture, where each character runs an action to check the current daytime status. In the system, the time-checking cycle has been replaced with dawn/dusk events. This is much more performance-safe than the old system.
The time-tracking system used to operate on a component/system architecture, where each character is given a component which stores the time given out by a cycle inside of the larger system. This cycle operated on a world time event, which cycles very quickly. This has been swapped out for an action/system architecture, where each character runs an action to check the current daytime status. In the system, the time-checking cycle has been replaced with dawn/dusk events. This is much more performance-safe than the old system.
The Final Cast of Characters
With most of the project so far being dedicated to the development of citizen characters, the last step of this development is drawing near. The five earlier characters were great demonstrations of different possible behaviors and of character spawning, but these must now be swapped out for the three characters outlined in the original Metal Renegades forum post.
The original cast of characters presented in the forum post.
As we do not have formal models for the characters at this point, gooey analog models are still used for the first two.
The three final characters, the good, the bad, and the gooey.
Hunger Strikes the Town
These new characters will contain behaviors that will be "need-based". This means that each character will have various different needs (such as hunger, thirst, and rest) which the character fulfills by performing a certain action. This week the 'food' need was added. When a character becomes 'hungry', they will search for and travel to the nearest place with a FoodSourceComponent. In this case, this will be the marketplaces. Over the next week, more needs will be added to the characters which are all satisfied in different ways.
Over the next week
- Continuing development of need-based behaviors, each satisfied by a different action.
- Add world-feature tracking for need-based behaviors, so a character can fulfill thirst by finding a lake, etc.
PRs & Issues
- https://github.com/Terasology/MetalRenegades/pull/7 "Time-Based Behaviors for AI agents"
- https://github.com/Terasology/MetalRenegades/pull/10 "Add vertical offset to character spawning"
- https://github.com/Terasology/MetalRenegades/pull/11 [WIP] "Need Based behaviors and Implementation of Final Characters"
Comments
Post a Comment