A* Pathfinding Project 2.5 Is Released!

Hi everyone!

After a long wait, the A* Pathfinding Project version 2.5 is now released!

For those who don’t know what it is,
The A* Project is a simple to use but yet powerful pathfinding for Unity 3d.
The aim is to create an out-of-the box pathfinding which could be used in any game without having to deal with the complex stuff.
The only thing you need to implement pathfinding in your scripts are 3 lines of code!

This update features a lot of great new stuff such as new grid generators and an improved UI, here’s list of some of the features:

:arrow: A bunch of new grid generators, including:
⁃ Texture Generator : Now you can generate your grids from a texture.
⁃ Mesh Generator : The system does now support true navmeshes.
⁃ Bounds Generator : This generates 4 points around all objects and navigates between them.
⁃ List Generator : You can also place all nodes manually with this grid generator.
⁃ Procedural Generator : If these are not enough, here’s the option to code your own generators.

:arrow: Node linking is now a lot easier, new node linking features are:
⁃ You can now use the scene view to just click where you want the link to start and where it should end, rather than adjusting all positions manually.
⁃ There is also support for one-way links now.
⁃ And, if you want to make some minor corrections to the grid, no problem, you can now use Node Enablers and Disablers.

:arrow: The Seeker script has been heavily updates, for example it now features:
⁃ Sending error messages or empty arrays when the pathfinding couldn’t find a valid path.
⁃ The end position doesn’t need to be snapped to the nearest node now, the pathfinding will return a path to the exact point you searched for.
⁃ And if you want to only search in a specific grid, you might want to have one grid for vehicles and one for by-foot units, it’s now possible.
⁃ Corrected a bug which made the Remove First variable useless since it was hardcoded to True.

:arrow: Although it is not a part of the system, the AI script has been heavily updated too and is now named AIFollow:
⁃ The whole script has been rewritten in C#.
⁃ It has now an option to follow a specific object and execute pathfinding towards it at regular intervals.

:arrow: Other new features are:
⁃ A built in bug reporter.
⁃ An improved UI, a lot of stuff does now have icons, and there are a lot more tooltips.
⁃ Better debugging, for example you can now see exactly which nodes the last path searched, in real-time!

:arrow: Performance is always good, you might think this script is fast, but I have found that by hardcoding certain options I can increase the scripts performance to run twice as fast (although all these new options has slowed it down a bit). A tutorial about this will be released later.

To download the A* Pathfinding Project 2.5 visit A* Pathfinding Project

Thanks to all beta testers and a special thanks to Legionaryu (forum user), he was actually the first one to make it possible to use navmeshes with this system.

Hope you find it great :smile:

-Aron

262703--9457--$bild_20_109.png
262703--9458--$bild_21_203.png
262703--9459--$bild_22_203.png

Nice :smile:

this is the most useful kit in the new year 2010!!

This looks better every release. I will have to check this out when I have a chance. Thanks for working on this, I know this will help a lot of people out.

Just a quick note to say I was lucky enough to help Beta test this release and there’s a lot to like as you can see from the release notes. I highly recommend trying it out, you won’t regret it.

For me, the Texture and Procedural methods have opened up a lot of new, interesting possibilities, and I’m using the Texture method in a new game and it’s working very well.

Well done Aron!

Cheers,
Brett

This is a great bit of tech. I’ve only just started to scratch the surface. The online doc is soooo much better now.

Awesome work… as soon as it looks like I might have something worth putting out with it, I’ll be PayPaling the $$

Great work!

:slight_smile:

Awesome. Thanks you!

Great work!

Does this work with the iPhone? I know you were using the new GUI commands.

the generated data work yes :slight_smile:
the editor requires unity desktop until the ubermerge has happened

Thanks dreamora. That’s an acceptable solution.

Am working on a waypoint navigation system, optimized for the iPhone. I will provably release it later on. By the mean time you can grab this one (I’ve already test it out and is quite nice, great editor aditions).
Cheers,

Loving this bit of code… but have a request for help. My code fu simply isn’t up to it - and unfortunately I think it’s probably pretty simple :slight_smile:

I’m using the AI Follow script and I’d like to modify it so that is accelerates at the beginning of the path and decelerates at the end of the path instead of a constant speed.

Any tips on how I might do this?!

Thanks in advance.

Oh - should have probably mentioned that the acceleration is not such a problem. I have a very simple speed ramp at the beginning of the move… it’s more the slowing down to the last point that’s freakin my mind!

You can use this formula:

CurrentSpeed = Mathf.Min(CurrentSpeed,MaxSpeed*(1-(DistanceFromTarget/DeaccelerateDistance));

Where DeaccelerateDistance is the distance that the character will start to deaccelerate.

This is, truly, a great piece of work. The implementation is going very smoothly, thanks to your excellent documentation.

I do have one small problem happening. Sometimes my character gets hung up behind an obstacle. It seems that it is looking too many steps ahead when choosing it’s direction of travel. The blue debugging line jumps ahead to a spot that is obstructed.

If there is a variable that I can adjust so my character will only go one or at most two grid squares ahead then he would take the corners properly.

I scoured your documentation, the faq, and the comments, but couldn’t find anything about this. Is there a way to fix this?

Thanks so much for this great tool! I will definitely be purchasing the license from you when I use it in a product for sale!

I don’t seem to be getting very realistic pathfinding with this. I’m working with a terrain that is 2000 X 2000. First of all, the movement is very angular. I tried increasing the number of nodes, but when I increase them above a certain amount, I get very shaky behavior. It’ll oscilate sometimes back and forth between nodes, and through the entire path traversal, the object does some crazy rotating. Sometimes, it gets hung up on a node (maybe between two nodes?).

Does anyone know how to smooth out the path without increasing th enumber of nodes, or, how to have a very small node size (say, 5) and avoid the jitery behavior?

Have you tried optimizing/simplifying the paths? If not, then the path will follow the waypoints exactly and look very angular. With simplification it will try to reach the waypoint directly and so won’t walk at angles.

Click on the Runtime Settings button/tab thingy in the cluster at the top of the script component, then on the Simplification property choose Full button. See if that helps.

Also try setting Straight Line Testing - if there’s a straight line to the target, no path following needed.