Navigation ivoker navigating outside their radius

Hi,

We’re evaluating the possibility of using navigation invokers in order to generate dynamically only the navmesh that is needed.

Is setup and running and everything seems to work fine, but there is a last thing we’re not 100% sure about what would be the best solution. Here is the prob:

  • We have some actors that can patrol over a group of way points.
  • If the way point is inside of the actor radius(nav invoker radius) everything works fine and the actor moves towards destination.
  • If the way point is outside the radius the actor is not able to path find to it.

In order to solve that we’ve added as navigation invokers the waypoint actors so in that way if the designer places them correctly everything works fine.

Would that be the preferred solution or best for the engine? Or is there a way to allow actors to path find to positions that are inside the navmesh bounds but don’t have navmesh generated yet?

Thanks for your help!

Cheers,
Andres

Hey Andres,

In short: yes, the approach to have every waypoint be a navigation invoker as well is a good one - the navigation system copes really well with big amounts of invokers, so you will be fine. You can also easily implement a “patrol path” mechanics, that would gather all waypoints AI is following and procedurally create a single invoker containing all the points.

Alternatively, you can configure pathfinding to allow “partial paths”, which means if AI can’t find a path to a goal it will follow a “best candidate” path (best-cost path closest to goal found by A*). AI would follow such a path, and by moving and generating new navmesh path should get updated - should, but it’s possible it will require some touches in the code, we haven’t tested this approach ourselves.

Cheers,

–mieszko

Hey Mieszko,

Thank you very much for your answer. Good to hear about the ability of the system to handle well several invokers.

I think we have activated the partial paths but it was not working as expected. I’ll try to debug the code and find out what’s going on!

Thank you very much for your support!

Cheers,
Andres