[Released] BFGames: Simply A* Pathfinding! NOW FREE

Im proud to announce that Simply A* has been accepted to Unity’s asset store:

Assetstore link!

BFGames: Simply A* Pathfinding: a double solution!



Try the grid based solution webplayer here: GRID WEBPLAYER
(move around with the left mouse button, can also push the mini-map and see path there)

Try the waypoint based solution webplayer here: WAYPOINT WEBPLAYER
(move around with the left mouse button)

Simply A* is built as two different solutions for pathfinding.
A grid based solution and a way point solution. The project is based on a highly optimized
algorithm that is the basis for both solutions.

Overall features:

  • Fast implementation
  • C# delegate queuing system to keep game performance at a high FPS.
  • Really easy setup!

Grid-based solution features:

  • Auto-generates map. (work with procedural generated levels)
  • Choose your own tile-size!
  • Choose climb limit and max fall down height.
  • Tag list: ignore dynamic objects or make some static objects non-walkable when map is built.
  • Dynamically change of grid based map at run-time!
  • Support for 2D game sin the XY plane!! NEW

Waypoint-based solution features:

  • Design the system exactly as you want in the editor.
  • Can limit waypoint connections to one direction (want to fall down but no go up?).
  • Choose to only follow waypoints or go to the exact end position.
  • Tag list: if end position equals a disallowed tag, go to nearest waypoint.
  • Works with different “levels” such as houses with multiple floors.

JavaScript/UnityScript support now added!:

Tutorial video:

The system is so far tested on PC/Mac standalone, Web Player Android Basic.
A tutorial / documentation PDF can be found at (soon to be updated):Tutorial/documentation

Tested and works with Unity 3.5 and 4.0!

Get both solutions for: 20$

To be released:

Version 1.03:

  1. Updated inspector GUI.
  2. Improvement to memory management.
  3. Improvement to the way-point systems exact position method.
  4. New tutorial video.

For the upcoming update, a video showing the possibility of changing the
grid based map dynamically:

The demo showcases the new possibilities of changing the grid at runtime! (Coming with next update)
It is a TowerDefence (TD) (quickly made) demo showing some of the possibilities with these changes.
In the TD, the map is updated when a tower is placed on the map, and we check to see if a path is still available – if not we remove the tower again so we always have a path for the enemies:

- BFGames

Tested on android now! On the new LG Nexus 4:

On a 15000 Node map having 10 units calling 5 paths randomly every second (50 paths calls per second) i got an avg FPS of 45 so far.

Finished a 12 page Tutorial / Documentation: TUTORIAL/DOCUMENTATION

Next up is:
Video tutorial / show off.

What’s the advantages over the other A* solutions on the store? Obviously the price! :slight_smile:

The price is the biggest ofcause.
It is aimed at low budget productions (though it can be used for all).

Furthermore the waypoint based version works with “levels” - like houses with several floors and such. Not all solutions on the asset store that works that way. The grid based solution works with procedural generated maps, which is also not the case with all that are on the asset store. Here you get both solutions for 10$.

A video showing these features will be up very soon!

Shows a more complex setup of the waypoint system in a house and how it can work with different height levels/floors:

And a more simple setup that in my case worked just as well:

Making scenes for the video at the moment.

Showcase / tutorial level for the grid based approach is finished!

Updated the thread - try the new web players!
Most is done now, only need to fix a few minor bugs and create a tutorial video.

Hopefully it will be submitted next week! :wink:

  • BFGames.

Update:

  1. Fixed a bug in the grid based system, such that if you try to go to a disallowed position in the grid based system it will search for the nearest allowed node.

  2. Tested the limit of the grid based system - 1.000.000 nodes. Then the 2D C# array cannot handle anymore (memory issue). But with 1.000.000 nodes i still had excellent performance (though creating the map takes a few seconds longer) .

  1. Made the possibility in the way-point system to choose whether to go to the exact end position or the nearest way-point to the end position. In this way the system can also be used to control AI patrols paths (dont need to connect all nodes anyways).

The video tutorial will be shot tomorrow and the documentation updated. Then the system will then be submitted Sunday hopefully.

  • BFGames :sunglasses:

Expect to get $10 from me in the future.

Awesome!

Submitted to the assetstore now!

Thread updated with a tutorial video!

Can Simply A* be setup to use custom coded navigation systems such as Ladders and Teleporters? Also, the ability to Jump?

I have not tried it, but i am pretty sure it will be possible with the way-point based system. I might try creating a scene for that purpose, as it is quite interesting. It will at least be very possible to implement a teleporter option into the way-point system. It is written down now and will be a future update!

However i am not sure what you mean by the ability to jump? Just normal jumping while following a path? Sure then you just need to do some sort of height check when comparing to the path.
It is on purpose that the system is created such that it will just return a Vector3 list. This gives developers all the possibilities they need to fit it into their projects.

Thanks for quick response. I’ll purchase when this becomes available on Asset store.

Regarding jumping. What I meant was, the ability to path find by jumping over obstacles or between items. eg: Jumping on crates, jumping between buildings etc. As you mention in your response, a height check would allow you to find a path via jumping up/down on items.

I don’t know anything about path finding, but I expect jumping between items would need a trajectory calculation to determine if path is possible. This would need to be directional. As you could jump further if the landing was lower than the launch location.

Ah then jumping is quite possible, with both solutions as they both work with height. You could just check if the path node is > (bigger) then some Y value while still being close to the path nodes x and z coordinate, if that’s the case perform a jump in that direction.

I am glad to hear you will buy it! And if you got a certain request for a project just ask. Then i can maybe help with some coding snippets and create more tutorial scenes for the project.

Im proud to announce that Simply A* has been accepted to Unity’s asset store:

Assetstore link!

To be released next:

Version 1.01:

  1. Update the inspector GUI.
  2. Improvement to memory management.
  3. Improvement to the way-point systems exact position method.
  4. New tutorial video.
  5. New improved grid based tutorial scene

Working on adding the possibility of dynamically changing the grid based map in runtime with basic colliders. Will create and add a TD scene to the project, showing how it would work with TD games as an example.

For the upcoming update, a video showing the possibility of changing the
grid based map dynamically:

It is fast for smaller objects like in the video, but for larger objects i would not suggest updating it too often. (They update every frame in this video at 60 FPS).
It will work with most basic shapes! However if something like a fallen tree needs to work in game it will be an idea to put the dynamic script on two parts; the tree crown and the log.

It will work really well with TD games, as you can let players build exactly as they want without having a route pre-planned.

This looks great! Can you tell me how hard it would be to use this for a 2d platformer game? I have tried to setup a few of the other A* pathfinding solutions on the asset store and found it too difficult to get them working properly. Basically looking to have enemies that can jump from here to there when chasing the player. Thanks.