RVO & 3D space example - Drone pathfinding

Hi, I’m trying to make a space game prototype by A* (ver. 4.0)

the user case is if we create a flight motor script, and calling RVOController.SetTarget(xxx)
will it return an actual path for me that already avoid obstacle ?

something I want to understand first. or point me the way that I can start working with ?!

  • RVO is that able to handle the local avoidance in drone movement ??
    such as ALLOW to ignore collision unless their are close enough to each other in y-axis perspective + agent’s y-axis volume…etc

^ I’m not sure the above feature is exist, but I can’t find it in example.

  • I can setup a set of Raycast area around Drone, and do something when they are blocking & Drone move forward to it (specific layer & dynamic obstacle…etc), but how can I send those information to RVOSimulator to make it take into count and allow the RVO agent to avoid them… (Am I looking into wrong class ? can’t find public API for that.)

following is the prototype that in progress,


The local avoidance in this package is intended for planar movement (like human agents walking on the ground), not for 3D space movement. It will unfortunately not work for what you are making.

I would suggest looking in to boids (https://en.wikipedia.org/wiki/Boids) or other steering behaviors.

Wow, thanks dude, that was quick response.

it’s okay, for the RVO not support in 3D space, and thanks for the link,
and how about the 3D Space path finding that allow Drone to move around ?!

so I guess I need to take a look into NavGraph & all the other graph work on that.

For your kind of game I wouldn’t use pathfinding at all. Its basically free space so any pathfinding system would just say “move forwards to the target in a straight line”, which isn’t particularly useful. Take a look at steering behaviors like boids instead.

True, but not exactly, if those drone will move between buildings.
there will be no straight line between the drone & target location.

I need a solution to pre-bake the environment into the memory, just like the NavGraph did.
you said your tried something in 3D space on the other thread. can you share some information for me.
personally I think the optimization you did on map baking was great, especially the ScanAsync method,
and those smooth edge algorithm…etc
that’s why I wanted to build on top for your system & write a middleware for it.

btw, Clean code & meaningful comment on files.

In the package right now, the only solution that can work for 3D space is a point graph.
You need to place nodes where the agents can move and then the graph will connect those with edges based on raycasts.
Make sure to keep the ‘neighbour distance’ setting as low as you can to avoid creating too many unnecessary connections (as that will slow things down quite a lot). Also use the ‘Optimize For Sparse Graph’ setting if you have the pro version.

Oh. okay, have a quick look, actually it seem that’s what I need, thanks
will open other topic after study.

and yeah, I upgrade to pro already.
and seem like you keep using “Ignore Raycast” as the default layer for “player” & “bot”
any reason for that ??! raycast bake I guess ?

It’s just some layer that I will exclude from being included in the graph scan.

got it, because “Ignore Raycast” by default is not collision with any layers.
therefore all example’s agent’s keep falling underground. if I import the plugin into other project.