Week 8 - The Path Less Traveled & Hungry Players
In regards to last week's Path problem, the determined solution was to change how the Path class was structured. This class no longer extends ArrayList, which seems to have done the trick; the crash no longer occurs. Pathfinding now works on basic characters!
Now, another issue has risen in regards to Pathfinding. I attempted to integrate the existing nodes into Metal Renegades. After a long runtime however, the performance hit skyrockets, hitting over 500ms delay in the BehaviorSystem. This doesn't seem right.... I'm thinking that a behavior node is running wild by accident; perhaps calling the pathfinding operation over and over again. This is another pathfinding issue that needs to be solved in the coming weeks.
Citizens in the Sky
With the new need-based behaviors, a few more issues with standard character movement is becoming apparent. This week, I took a bit of time and researched the issues present with character motion and put them inside of a new issue. The issues that exist are wide and varied, but the connecting link seems to be that they all occur when the game goes through a framerate delay.
One problem identified in the issue, where a character can get caught in a "fall loop"
Hunger & Hunting
With need-based behaviors finished, now it is time to work on the needs that the player must fulfill. Prior to this point, the player has had no real goals, or incentives for gameplay. This is about to change with the addition of Hunger. This uses the Terasology/Hunger module, which has integrations with lots of other modules; one of these being Terasology/CombatSystem. Conveniently, this combat system was just integrated by one of Wabadump's pull requests! (Another developer working in this repository for GSOC). They added deer characters that travel around outside the city:
A deer roaming outside the city
The player is provided with a weapon, and when these deer are killed, they drop meat. This meat can be eaten to restore hunger!
This need is the first need in a collection that will be added in the future, along with more ways to gather food.
A Description for the Masses
One more change that took place this week; the Metal Renegades repository finally has a proper readme.md file! It outlies the current features available in the module, with a tutorial on how to start the game for any newcomers. Hopefully, this will allow more people to test the game!
The new readme.md
Over the Next Week
- Fixing the bugs brought up with world generation & with behaviors
- Continuing documentation, next step being starting a wiki on the Terasology/MetalRenegades repository
- Integrate pathfinding into metal renegades characters
- Continuing player needs, and adding more ways to obtain these needs (as soon as #18 is ready, have needs items available there)
PRs & Issues
- https://github.com/Terasology/MetalRenegades/pull/11 Need Based behaviors
- https://github.com/Terasology/MetalRenegades/pull/17 Add module authors and a brief description to module.txt
- https://github.com/Terasology/Behaviors/pull/18 Listen for path calculation in FindPathToNode
- https://github.com/Terasology/Pathfinding/pull/39 Change path to not extend ArrayList
- https://github.com/Terasology/Behaviors/issues/20 Various character movement bugs caused by performance drops
- https://github.com/Terasology/MetalRenegades/pull/21 Simple integration of Terasology/Hunger
- https://github.com/Terasology/MetalRenegades/pull/20 Add description of the module inside readme.md