A* Pathfinding Project

Our 2D game and Local Avoidance


Hey there.
I’m currently working on a game called Kim. I’ve been using PolyNav2D for our pathfinding since forever, but we recently wanted to take another look at your asset since you added 2D Local Avoidance. Our issue with PolyNav was that agents often walked on top of each other, so your solution seemed like a good match. I tried your free demo and really liked what I saw, but we’d like to know for certain that your Local Avoidance solution works with our setup before we buy.
It’s pretty simple, we’ll have the player and x number of agents walking around in various levels. Here’s an editor view of one of our towns:

Will we be able to use Local Avoidance to make agents walk around in a level such as this? Some (shopkeepers) will be idling and moving only a little in front of their stores, while other will be moving across the town. Is there any way we can play with the 2D Local Avoidance system before we decide to purchase?

I hope you can help with some answers I’m loving what I’ve seen so far, very flexible and robust!

Kind Regards



2D Local avoidance is very new. I would expect it to work just as well as the XZ version, however currently no movement scripts (AIPath or RichAI) that have support for local avoidance also have support for 2D movement, so you would have to write your own movement script (or more likely, just tweak the existing ones a bit to work in XY space).

It’s hard to get a sense of how large a character would be in that scene, so it is hard to say how well it is going to work.
It works best for low to medium density crowds.
One potential problem I could see is that the shopkeepers might walk away far from their original positions if a group of characters comes his/her way and the shopkeeper cannot find an easy way to walk around them, but it is hard to say if that will be a problem until you have tested it.

I could send you an evaluation version if you want. However keep in mind that the tooling/support for 2D local avoidance is in beta.


agents are pretty much the same size as the camera gizmo in the screenshot. We don’t have that many agents in a scene at one time so I’d think we could categorize it as a low density crowd. An evaluation version would be amazing - I’m pretty confident that we can use this, but it would be nice to be 100% sure - thanks a lot buddy.


Just wanted to give you an update on this. The RVO system works perfectly with Kim, which is a topdown 2D game. Really impressed with the performance. I didn’t have to change much either - was really easy to integrate with our system and our NPCs and animals have now stopped walking on top of each other :slight_smile: - thanks for the evaluation version, we will most definitely buy your asset!


I’m glad it works so well for you :slight_smile:
Let me know if you have any other questions.


Also. I’m looking for games to feature on the A* Pathfinding Project homepage (arongranberg.com/astar). Would you like to have your game there as an example of a game that uses the package?


Sure, that would be great :slight_smile: Let me know if you need any images or logos.


Is this now integrated? If not mind giving us some details as to how you did it?



The current beta has support for it, though I am going to release an update to it soon-ish. The beta is relatively old right now.


Please if possible allow us to toggle rotation on all aspects? Much of what i want to do does not involve rotating while path finding! Thank you, and thanks again for your product.


Hey again @aron_granberg - So, with the new update (4.0), would you recommend updating if I’m currently using the previous RVO beta and only using the RVO stuff? Are there any big differences?



That depends on which version of the beta you were using.
Most of the architectural changes were done already in the beta, but there have been some other changes as well.
The neighbour distance on the RVOController is now automatically calculated which makes it easier to configure and can also improve performance in some scenarios. How high priority agents are handled has been improved. RVO now works in the XY plane (I don’t think it did that in the beta). The gizmos for the RVOController have also been improved (this was included in one beta I think). The inspector has been improved (though some of that work has not been released yet, it will be included in the next update) and the code has been cleaned up a bit and the API has been streamlined a bit more.
I think that was most of the changes to the RVO system.