A* Pathfinding Project

Repathing with some points not considered



When using the local avoidance on 4.0.10, some of my agents are getting stuck because of each other(while some of them are standing and some of them are pushing through them. And I was wondering if there’s a way around it. The way I thought about it, is that I’d estimate how long it should take for the agent to go to the next path.vectorpath[x] and check if the agent takes too long to get there. If that’s the case then he should repath using a way around the path.vectorpath[x].

Did anyone had this problem? Any solution or advice?



Still looking for an answer. Bump


Still looking for an answer. Bump



Sorry. I am not sure how I have managed to miss all these bumps. I’m terribly sorry about that.

Solving this is unfortunately a pretty hard problem. I have done some experiments with cooperative pathfinding (see https://arongranberg.com/2015/06/cooperative-pathfinding-experiments/) but that only works for strictly grid-based pathfinding and movement. I also did some experiments with a local pathfinder that tried to move around agents in a slightly better way than can be accomplished with only local avoidance, however it had significant performance problems.
What you could try is to use Physics.RaycastAll to check how many agents there are in front of your current agent. If there are a lot of them, use two more Physics.RaycastAll checks diagonally forward to the left and right and move towards the one that has the lowest density of agents. That might give you more fluid movement.

You can also experiment with the ITraversalProvider to add penalties for moving where agents are (which seems to be similar to what you are suggesting). In my experience this leads to a lot of jitter however, but it was quite a long time since I tried it though. See https://arongranberg.com/astar/docs/turnbased.php#ITraversalProvider


Thanks for the answer.

How to use cooperative pathfinding??


Cooperative pathfinding was just an experiment and it is not something I have released yet.
I have sent download links to some people who were interested (Cooperative Pathfinding Update?). However note that right now it is not a plug-and play solution unfortunately.