Hello all, I'm trying to implement a little project using Jumper for pathfinding, but I'm unable to find a Gideros working project... Does any of you happen to have any working example to share ? Kind Regards
@oleg, there is no "Gideoros" example on using jumper on that site but I was just looking there and it raises an interesting question or two..
1. Jumper supports a load of different algorithms for pathfinding. Do some perform better than others in certain cases? Which one performs best "on average"?
2. Should Gideros have a native path finding ability as it would be faster than a Lua based one.. ie; just look at performance of native bump compared to bump.lua!
@antix it works as it is, since it is pure lua: what's missing there is how to actually use it in a gideros game, but I feel it depends on how you would use it inside you project. I can share my experience with it, but it is one of the first things I did with gideros some years ago so my memory could not be that accurate.
I don't think Jumper is a good option for real time games, maybe it is now with coroutines, but I think that there may be issues if you need to change paths "on the run": it returns a table with sub-tables (paths) of coordinates from A(x,y) to B(x1,y1).
The game where I used it is turn based - and unfortunately still work in progress . Jumper may be used in turn based games without too much hassle since we can move everything of "unit speed" squares, then recalculate the paths for the next turn.
@chuz0 Here a snippet I did to import a "collision layer" made in tiled into a format suitable to jumper.
--TILED TO JUMPER --usage: --roads = {datatojumpr ( map.layers[1].data, mapdata["mapwidth"], mapdata["mapheight"] )}function datatojumpr ( tble, width, height )--mapout will contain the collision values in a format suitable to jumper local mapout ={}local counter =1--make a row of tiled datalocalfunction makerow (val, width)local values ={}for i=1, width do
values[i]= val[counter]
counter = counter+1endreturn values
end--for every row, make a rowfor h=1, height dotable.insert( mapout, makerow(tble, width))endreturn mapout
end
There is some space for optimization here, and I suppose there is in Jumper too with the gideros special math operators.
A native version would be certainly welcome, but someone would have to write it... and it seems pretty complex to me. Overall I remember it to be pretty fast as it is, what has to be avoided is to update a hundred paths on each frame
Which algorithm is faster ishould not be a big issue: there are certainly scenarios where one is better than the other, but it seems to me that this choice is only an option to set when calling the pathfinder: not much work to make a real test directly in a game.
@pie@chuz0 specifically asked if anyone had an example for Gideros where @oleg just pointed him back to the projects github page.. a page that @chuz0 had most likely already found.. which does not contain the requested information
I was asking about which one generally performs better because if Gideros was to get some native pathfinding.. then it would be better to create one of those algorithms, say A* for example, instead of all of them.
Comments
https://play.google.com/store/apps/developer?id=razorback456
мій блог по гідерос https://simartinfo.blogspot.com
Слава Україні!
1. Jumper supports a load of different algorithms for pathfinding. Do some perform better than others in certain cases? Which one performs best "on average"?
2. Should Gideros have a native path finding ability as it would be faster than a Lua based one.. ie; just look at performance of native bump compared to bump.lua!
Likes: SinisterSoft
I can share my experience with it, but it is one of the first things I did with gideros some years ago so my memory could not be that accurate.
I don't think Jumper is a good option for real time games, maybe it is now with coroutines, but I think that there may be issues if you need to change paths "on the run": it returns a table with sub-tables (paths) of coordinates from A(x,y) to B(x1,y1).
The game where I used it is turn based - and unfortunately still work in progress
Jumper may be used in turn based games without too much hassle since we can move everything of "unit speed" squares, then recalculate the paths for the next turn.
@chuz0 Here a snippet I did to import a "collision layer" made in tiled into a format suitable to jumper.
A native version would be certainly welcome, but someone would have to write it... and it seems pretty complex to me.
Overall I remember it to be pretty fast as it is, what has to be avoided is to update a hundred paths on each frame
Which algorithm is faster ishould not be a big issue: there are certainly scenarios where one is better than the other, but it seems to me that this choice is only an option to set when calling the pathfinder: not much work to make a real test directly in a game.
Likes: Apollo14
I was asking about which one generally performs better because if Gideros was to get some native pathfinding.. then it would be better to create one of those algorithms, say A* for example, instead of all of them.
It's hard for me to write in English so it's easier to give a link
Likes: SinisterSoft, MoKaLux
https://play.google.com/store/apps/developer?id=razorback456
мій блог по гідерос https://simartinfo.blogspot.com
Слава Україні!