RVO weird behaviour

I am trying to implement pathfinding such that objects avoid eachother and try to surround their target. Below are results with A*:

Without RVO:

With RVO

Note: with RVO I tried multiple settings, disabling colliders, different radius etc. The above was best result I could get…

(below continued due to stupid 2 links limit!)

Below is my pathfinding system which checks for collisions using spherecasts by shooting at different angles until hits no target so can move in this path. Debug shows rays, green is the choosen one:

The way I do it feels like an overkill to what it should be hence I considered RVO but it seems RVO is quite bad at this. Am I doing anything wrong? Does RVO works only on particle like objects that only move and do nothing else as shown in the examples? All I want is simple AI that will surround the target and avoid collisions on the way to it. Simple system like in most RPG or RTS type of games.


RVO is a cooperative avoidance algorithm. It will not work great if the agent you are trying to avoid shouldn’t cooperate because it is an enemy. In this case you can see that the player (?) i being pushed back by the other agents.

The beta version has some other algorithms that do horizon avoidance instead (used in sc2 for example), but unfortunately I don’t think they would work perfectly out of the box here either.