Pathfinding (A*) Video Tutorial Now Available

There’s a new 8-video (more than 60 minutes) tutorial available at MasteringCoronaSDK.com that shows how to use the Jumper pathfinding library for things like tower defense games, adventure and strategy games, etc.

http://masteringcoronasdk.com/jumper-pathfinding-tutorial-a/

Here are a couple promo videos that show a couple of the demos in the tutorial…

http://youtu.be/Ry8_UvwzCCw

http://youtu.be/i1Kts2KM8ic

Sample code for 4 demos is also included with the tutorial. The coolest thing is that you do NOT have to understand how algorithms like A* work in order to make use of it!

http://masteringcoronasdk.com/jumper-pathfinding-tutorial-a/

 Jay

I’ve not had a chance to view these yet, but thank you for providing these.  

Rob

Hi, we just implemented our own A* for a side scroller. The reason we did not use Jumper is that it’s aimed at grid based (tile) search.

We needed a more generic form that works on an actual Graph with nodes that can be located at any point on the screen (like waypoints). This allowed us to have mobs following the player even in a none grid based game…

How hard would it be to adapt your library to work on a generic graph and not a grid of cells? We did not implement the search jump part so we might just game some performance out of it…

Just to clarify, the Jumper library wasn’t written by me, I only created a set of tutorials on how to use it.

In one of the tutorial videos I show how an “invisible grid” can be used under the hood with an adventure game like Secret of Monkey Island to handle pathfinding. You may not want to use that method for a game like that, but it certainly works.

The second video up above shows a mob (of flames) following the player and while there is a grid, I’m not bound by it. Your game may very well need something other than Jumper, but in my experimenting I haven’t come up against a pathfinding problem it can’t handle.

 Jay

 (Admittedly, my experimenting has been limited and not all tools work for all situations.)

Hi all,

I just came accross the discussion, and I felt the need to drop in and provide a few details.

In its current state, Jumper operates only on grids, and that was my design choice at first when I started writing the library.

Starting from it, I have been rewiewing the most common algorithms and tried to implement them as nicely as I could, while keeping them tight together through a common, simple and easy-to-use interface.

But it doesn’t mean Jumper cannot support any other types of environment. That is indeed the next step i will definitely be working on. I am considering providing a generic Graph data structure, from which new specialized environments will be inferred: grids, loose grids, waypoint graphs and navmeshes. Most of the search algorithms actually implemented will work flawlessly on those types of data structure (with some minor modifications), but not Jump Point Search, as this very algorithm was only designed for grid-based environments.

Those changes will also require some modifications to the actual API, and I am considering adding new search algorithms, such as ThetA* (which is quite done, but need some improvements), IDA* and much more.

I am also considering clearance-based pathfinding, which will provide pathfinding for entity larger than one tile size.

All of these takes times, and I am pretty busy at the moment, so I can’t provide any timeline. Just watch the repository on Github.

Last point, thanks again @J.A. Whye for those awesome tutorial series.

I’ve not had a chance to view these yet, but thank you for providing these.  

Rob

Hi, we just implemented our own A* for a side scroller. The reason we did not use Jumper is that it’s aimed at grid based (tile) search.

We needed a more generic form that works on an actual Graph with nodes that can be located at any point on the screen (like waypoints). This allowed us to have mobs following the player even in a none grid based game…

How hard would it be to adapt your library to work on a generic graph and not a grid of cells? We did not implement the search jump part so we might just game some performance out of it…

Just to clarify, the Jumper library wasn’t written by me, I only created a set of tutorials on how to use it.

In one of the tutorial videos I show how an “invisible grid” can be used under the hood with an adventure game like Secret of Monkey Island to handle pathfinding. You may not want to use that method for a game like that, but it certainly works.

The second video up above shows a mob (of flames) following the player and while there is a grid, I’m not bound by it. Your game may very well need something other than Jumper, but in my experimenting I haven’t come up against a pathfinding problem it can’t handle.

 Jay

 (Admittedly, my experimenting has been limited and not all tools work for all situations.)

Hi all,

I just came accross the discussion, and I felt the need to drop in and provide a few details.

In its current state, Jumper operates only on grids, and that was my design choice at first when I started writing the library.

Starting from it, I have been rewiewing the most common algorithms and tried to implement them as nicely as I could, while keeping them tight together through a common, simple and easy-to-use interface.

But it doesn’t mean Jumper cannot support any other types of environment. That is indeed the next step i will definitely be working on. I am considering providing a generic Graph data structure, from which new specialized environments will be inferred: grids, loose grids, waypoint graphs and navmeshes. Most of the search algorithms actually implemented will work flawlessly on those types of data structure (with some minor modifications), but not Jump Point Search, as this very algorithm was only designed for grid-based environments.

Those changes will also require some modifications to the actual API, and I am considering adding new search algorithms, such as ThetA* (which is quite done, but need some improvements), IDA* and much more.

I am also considering clearance-based pathfinding, which will provide pathfinding for entity larger than one tile size.

All of these takes times, and I am pretty busy at the moment, so I can’t provide any timeline. Just watch the repository on Github.

Last point, thanks again @J.A. Whye for those awesome tutorial series.