l1-path-finder
看上去牛逼
大概看了下依赖的ndarray有动态代码
后面抽空转换进具体项目试下效果
不只是曼哈顿距离的问题。有时候RCA的路径连你自己的A*的路径都不如,而且有比较严重的更换起终点路径不一致的问题
下图左 RCA 右 A星

路径不一致问题

还是叮当猫牛,费力做测试案例
这种简单场景的最短路径都会算错,已经可以算是很严重的问题了
寻路策略不一样,路径可能就不一样。你用笛卡尔或jps或其它寻路算法和a星对比相同起始点和终点,路径也是可能不一样的。至于你说的下图,左边的RCA寻路的路径不是更短吗?
你打开浏览器控制台,查看寻路结果的总路程,很多时候是RCA寻路的路径更短,当然也有一定的概率是A星寻路的路径更短。
RCA寻路95%能寻到最短路径,个别地形情况路径会长一点,我打开控制台日志查看过总距离,误差很多是2格以内,个别大的地图的长距离寻路可能5格的误差,但是这些都是可接受范围。
你真不是在开玩笑吗?你是用什么方式看出来左边短的?
那我这么说吧,交换起终点,RCA是是走的上面那条路径,你选一下哪条路径更短吧。
你不会告诉我一样短吧?
而且在我看来,交换起终点寻路路径不一致的问题比不是最短路径更严重。
加入了这个算法。
忽然感觉吾尝终日而思矣不如mark一下
牛逼
不过其实它是支持动态添加 障碍的
CY,这种才是技术分享的好帖子啊
其实寻路的算法,一般要求不高的话,都可以自己写个简单的,因为有很多业务逻辑的修改,要修改到算法内的,如果三方的话就不容易。
我碰到过几个,例如大尺寸物体的寻路,还有迷雾对寻路的影响(玩法需要某些动态障碍在迷雾中不可见,需要被寻路算法当成空地,走到的时候直接停止)等等玩法要求的特殊修改,还有玩法逻辑相关的提前剪枝优化。自己写的改起来就方便很多。
就还是根据项目需求来吧。
mark一哈!
所以大佬们,如果是随时删改障碍物的随机生成的2d大地图的话,想要敌人有绕开节点巡路效果该用什么最优呢
笛卡尔是什么算法?Dijkstra?
我不觉得是可接受范围内,你的这5%并不是在复杂场景下才会触发,非常简单的场景也会有这个问题。
对于交换起终点寻到两条路径的问题更几乎是在临界位置可以稳定触发。
针对游戏使用的场景,我过去寻了一条路径,回来你给我寻了另一条路径。你觉得这是小问题吗?
又是一个新颖的算法,好我纠正一下
表格加个单独一列写出实现语言更好了
好的,顺便让备注更客观。
66666…
老板:…上会儿班
这个利用四叉树方式寻路我也用过, ta甚至可以对多边形 进行划分, 精细到1px, 而且有一个优点, 利用划分的格布局, 可以很快就判断出就算有路可以到达, 会不会因为角色大小导致无法到达
RCA寻路已经解决了预处理时间长的问题。利用外部提前烘焙数据。进入游戏后就不用在线烘焙了。