[WIP] FAST PATH. A* based path-finding solution for 2D and 3D games

2782482--201343--860x386 (Cropped for forums).png

Hello Everyone. I am working on the projects for a few weeks now and now I think its ready to be revealed!
Just a few days more and it will be ready for everyone. Most the screenshots and demos are only left :wink:

Features:
- Extremely Fast
- Supports both 2D and 3D.
- Multi-threaded so you will have little to no effect on performance on your game
- Full C# Source-code included.
- Extremely Easy to use
- Many more optional parameters if you need more flexibility :wink:
- Grid Based
- Map generated at run-time and can be updated anytime anywhere!
- Variable Terrain Cost

Fast Path is a fast A* based grid-based path-finding solution for 2D, 3D or even 2.5D games all in one.
It has been highly optimized to keep your game at High FPS. I know what it feels to have a slow path-finding solution :p. It’s extremely easy to setup and start finding paths with! The map can be generated and updated at run-time so it is extremely suitable for TD games or RTS games. You can chose between finding paths fast or accurate, generate map fast or detailed, etc so you will never feel like you have no other way! Variable terrain cost is also supported so your AI can be more real-life like.

Screenshots, videos and demos will be following the thread soon ;). If you have any questions please ask us below and thanks for your time :wink:
Edit: link to github- https://github.com/yvsja/Fast-Path

What makes it faster than other pathfinding such as unity’s built-in, A* Pathfinding Project or Apex? Those are the big ones i can think of.

To be honest, Its not fair to compare it with other solutions like that. They are big ones as you said. But neither this solution nor it’s price will be as big as them. Fast Path will cost hardly $5-15 so anyone can afford it easily. But the performance compared to price will still be very fast.

Speaking of what makes it fast in general-

  • It uses a binary-heap to keep the open list sorted.
  • I have tried to reduce the call stack in the core pathfinding-finding function as much as possible.
  • The method uses to calculate heuristics is really cheap.
  • The OpenList and ClosedList are actually arrays. This not only reduce the GC Allocation dramatically but also improves performance by not resizing the list multiple times. All this costs just a little bit more memory consumption.
  • You have an optional parameter ā€œEstimate Aggressionā€. Increasing this can increase performance drastically without effecting the path much. You can also reduce it to find more accurate paths but slower.

And there are many more mirco-optimizations like caching, minimum call-stack etc so you can enjoy great performance :wink:

2 Likes

After a little break, I am ready to present a video showing the performance of Fast Path. The video is nothing special (my first attempt to record something :p) but it shows roughly how fast it is. The video also shows some basics of map being updated at runtime and paths being recalculated.
NOTE: The test was done a terrible PC- Intel Pentium Duo 2.0GHz, 1GB DDR2 RAM, and 90% RAM used before starting the test.
Here’s the video (shot at 18fps):

Total nodes in the scene are around 10K and finding path from one edge to another takes roughly around 1 ms.
The occasional bumps in the profiler are when the map is updated and many paths need to be recalculated…
Any suggestion / reply / anything is welcome :wink:

Another performance test (this time on a complicated map and around 10-11K nodes) gave me 8-9ms per path.
A test on a relatively simple map gives the path in 3-4ms.
The performance of simpler one:


Remember that the video and screenshot above do not use multi-threading.
A map featuring complicated maps and multi-threading will be following soon.

Another news is that I have tested it with 1123200 (1.1 million) nodes at max currently. Performance and Garbage Collection both seemed fine relative to the map size (Now going to reveal the figures :p).

Please let me know what you think about the project and are you interested in it or not. It is really inspiring to listen from you people…

I am really sorry for being inactive for a while but that was because my exams in which I really needed to pass…
Anyways I am back, giving as much time to the project as possible. But there are only a few things that I managed to do during the exams. First the documentation is completely re-written! The most boring part of the project is over! Second, most of the asset store images are done. Just the social one, some screenshots and few more demos (currently only 1) then I think that Fast Path will be ready to be reviewed!
Edit:- Anyone please if you want to test it please send me a PM and I will consider it. It’s not possible for one person to test the whole package :wink:

Alright unfortunately it got rejected by asset store saying ā€œthey doubt my professionalismā€ and that ā€œI should have a profile because of itā€. And (most likely because of artwork of page too.) :(. Anyways making a portfolio is not a one day work so I decided to put it on github. Please download it tell me what all improvements you would like in it and is it high quality enough to be on asset store!
Here is the link: https://github.com/yvsja/Fast-Path
I have hardly used github before so may be more problems on it rather than the package itself but I am ready to solve them.
Hope you like it!

That seems rather harsh of them. I’ll give this a try when I get the chance. Thanks for sharing.

Thanks for the support. I hope you like it :wink:

nice
Thanks for sharing
Still update or completed?
don’t support slop?
Others like a* pathfinding plugin is too heavy for me

Well the project on the github page is complete (though it has no description/readme etc). Though I don’t update it still you can ask for help if you want to. And thanks for using it. It is always nice to see someone use something you made :slight_smile: