A* Pathfinding Project

The A* Pathfinding Project is a powerful and easy to use pathfinding system for Unity 3D.
With this system you can give your AIs the ability to find smooth paths around obstacles! No more running into walls. And the system is multithreaded which means that it will barely affect the frame rate at all!
The system works for both Unity Free and Pro and comes in two versions, one Free and one Pro version.

Features

Many graph types

The system supports Point, Navmesh and Grid graphs. None of them are “hard-coded” into the system, but written as add-ons which means that it is easy to add you own

Multithreaded

The system can optionally be run in a separate thread which means that pathfinding will have barely no effect at all on the game’s fps

Path modifiers

Paths can be post-processed using path modifiers, for example using the funnel algorithm, raycast simplification simple smoothing using bezier curves or other smoothing algorithms

Automatic navmesh generation

The system uses Recast translated to C# to automatically generate stable navmeshes from any level geometry

Graph updating

Many graph types can be updated during runtime when, for example a new tower is placed in a TD game

Blazing fast

Search speeds over a thousand nodes per millisecond (see performance)

Grid Graphs

Grid graphs can be set up on any ground, they can be rotated and scaled however you want

Navmesh Graphs

Navmesh graphs are great because they provide very high accuracy and lighting fast searches while keeping a low memory footprint

List Graphs

Aka “Point Graphs” can be set up from a collection of Unity GameObjects, can it get easier?

Interconnected graphs

All graphs can be mixed an matched together using Links placed in the editor

Graphs saved to files

Graphs can be saved to files, both in the editor and during runtime and loaded later

Cached starts

No calculation time at startup, graphs can be cached and loaded from memory in a split second instead of an annoying lag at the start of the game when the graph is calculated

Choose your favorite heuristic

Several heuristics are supported, Manhattan, Diagonal Manhattan, Euclidean and you can of course skip calculating any heuristic at all to get a Dijkstra’s search

Custom editor makes setting up pathfinding a piece of cake

A custom scripted editor makes pathfinding simple! And it has fancy fading effects too.

Optimizations using #defines

Several settings can be “hard-coded” into the system to gain extra performance or just enable some debugging. And everything can be done in the editor

Low memory footprint

All graphs have been optimized for memory, and memory leaks are nowhere to be found. Compared to 2.9x version of the system, the memory usage is less than 15% (tested with Grid Graphs), and 2.9x had huge memory leaks, so those 15% soon becomes 10% or even less after some time in gameplay

Easy intergration

A path request is a single line of code! Need to smooth the path? Add a smooth modifier component, not a single line of code needs adding. The system handles that

Optimized and specialized search modes

Want your Resource Gatherer to find the path to the nearest resource, or do you just want your civilians find any path which takes them away from the evil enemies? You can do that in a single path request!
Search modes available are: Normal, Multiple Target, Flee and Random. But as with graphs, all of these are written as add-ons, they are not hard coded into the system which means that you can add your own specialized search modes without modifying the pathfinding core!

And a whole lot more!

Also includes a lot of utility stuff, Bounding Box Trees, Binary Heaps, a whole bunch of polygon and vector math functions, multithreading utilities, custom written serializer, #define parser, Bresenham’s line drawing algorithm and much more

Performance & Memory

The system is really fast. The search speed, that is how many nodes it can close (search) per millisecond is usually from 800 to 1500. Including overhead for searching for the closest nodes etc. etc. This means that a normal path often takes less than a millisecond to calculate. And to this comes that the system is multithreaded, so your frame rate will barely be affect by this at all in any case!
Memory usage is also optimized, almost no memory allocations are made during a path search.

Demos

Demo of the Example1 scene included in the project

Free versus Pro feature comparison

Comparison page

Download

Download the A* Pathfinding Project here

Documentation

Documentation can be found here powered by Doxygen

9 Responses to A* Pathfinding Project

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>