Welcome to this week’s dev news! There’s lots of reworking some older mechanics on top of everything else so we thought we’d elaborate on some the new mechanics you can look forward to.
After we released LiF:YO, we decided we’d like to completely rework animal behavior mechanics. Our goal was to achieve better code clarity, extensibility, and an easier way to modify parameters in realtime.
The new pathfinding algorithm removes the old manual implementation, and instead takes advantage of the well-known recast/detour library. This allows us to provide walkable surfaces (Navigation Meshes), not only on the ground, but on the stairs, buildings - everything with proper collision geometry. It’s also fully tunable: maximum angle, impassable area size near walls, etc.
After we had taken care of the new pathfinding, new animals (and the native NPCs in the future) would still be lacking good behavior implementation and proper spawn logic. Therefore, after many discussions, we decided to move forward with the ‘behavior tree’ approach. This technique showed great adjustability and was really clear to understand.
This screenshot shows an approximate behaviour tree for predatory animals, such as bears, boars and wolves.
Spawn logic was the last feature to add for our overall animal AI improvements. We originally divided the whole territory into regions.
256 regions in one terrain
256 x 9 regions in one server
However, now civilization rates are taken into account, it reduces the chance for animals to spawn so we’ve made the animals appear more randomly in their respective biomes (wolves on forest soil for example) and the spawning algorithm is more adjustable.
At the moment, these new algorithms are present in Beta Wave #0 of the MMO, and are currently being thoroughly tested and continuously improved.
Thanks for reading this week’s dev news, join us next Friday for more!
Please note that we are aware of, and hard at work on, issues that may have affected some users since the latest update. The team are diligently working on fixes and apologize if anyone is affected by these changes
- The team