比“A星寻路”和“跳点寻路”更快的寻路算法《RCA寻路》介绍,对付大地图寻路的利器。

自己没实现,只是一个想法而已。

本来只是来学技术,没想到看了一场这么精彩的博弈。
up不要太和对方置气,是非对错大家心里都有评判了。
然后我想说的是,要不起个好记的中文名吧,咱们小厂,人均英语水平没过4级,哈哈哈,请大佬来个响当当的中文名吧!

已经重新开了一贴,寻路算法已经升级过,这个贴子里提到的有小概率不是最短路径,会多走几个格子的问题已经修复,并且减少了一半的寻路运算,现在这个寻路更完善了,无论效率和准确性都进一步提升了。寻到的路径距离很多时候比A星寻到的路径更短,就算不比A星寻路更短最少也能和A星持平(说明这个路径已经是最短路径)。

新的算法介绍帖子。

你提到RCA寻路的路径有概率不是最短的问题已经修复,包括A星寻路路径有可能不是最短的问题也都修复。这是因为之前寻路时,从openlist查找f值最小的路点时,遇到多个相同权重f值的路点时随便选一个引起的。后面修改了一下,多个路点f值相同时再判断谁的h值最小,f值和h值都相同时再判断谁的g值最小,这样就解决问题了。现在这套“RCA寻路”和“A星寻路”组件已经趋于完美,不会发生找到的路径不是最短的情况了,寻到的路径100%是最短路径。新代码可从地图编辑器下载菜单的“基础框架”或“高级框架”获取

地编地址
https://easymapeditor-1258223435.cos.ap-guangzhou.myqcloud.com/v2.0.0/web-mobile/index.html


用在线地图编辑器绘制下面截图这种地形障碍再验证一下。还有文章里有人提到其它地形遇到不是最短路径的情况也可以再验证一下。

1赞

这个问题不是4方向或8方向寻路的问题,而是我上面提到的寻路时,从openlist查找最小f值的路点时。如果存在多个f值相同的路点随机选一个引起的,只要做一下处理就可以。多个路点f值相同时,再对比谁的h值谁更小,h值也相同时再判断谁的g值更小。


我的寻路组件优化如下截图,因为openlist用的是堆叉存储结构,f值小的放左子树,大的放右子树,所以存放路点时做了f值是否相同的判断,然后分别判断h谁更小,再判断g值谁更小。做了这层判断后,寻路路径有概率不是最短的问题解决了。

2赞

请问这个算法可以在哪里查看呢?或者有相关教程的链接吗?

迷雾大陆的怪还是寻路呢?我玩的比较多,在绕障碍走的时候怪经常会被障碍物挡住,卡在那里,我以为就是在朝着玩家移动而已。
而且用流场寻路也合适,因为只用计算角色周围n个格子的流场数据就可以了

确实诶,可以直接算玩家周围的格子的流场感觉也能实现这个效果。但是还是想学习一下这里提到的迷雾大陆的寻路算法是如何实现的:thinking:

怎么感觉是B*的思路

没有动态阻挡等,应该优先考虑navmesh导航吧,计算节点数非常少,

谈不上新算法,更准确的说是一种寻路策略,通过对地图做预处理优化来减少计算量,其实很多游戏都是这么做的。

虚幻引擎有一期视频。说光线反射,如何逼真,用的是射线思维

一口一个瞎子,傻子,说的话各种带侮辱性的词汇,家教有点堪忧,就那种能力差脾气大的感觉,你这样的性格,注定走不长远。我接触过的大佬不计其数,大家都是很谦逊的,反而有些入门不久,有点小认知了,就自认为自己好像遥遥领先了,目中无人了,我也拿到过腾讯的offer,不过没去,和一个老板自己开公司去了,我们招人的第一条就是态度,技术都可以学,但是人品和态度,一辈子养成了,改不了。

:rofl:大佬,年都过了,瓜都过期了,别鞭尸了

image
盲猜用户-1

我都忘了这帖子,昨天有人回复又给置顶被我刷到了,然后看了一下后续,从技术争论变成吵架了。。

那你是年前太忙了,快过年那段时间吵飞了,还单开了帖子又吵了一架

有链接吗 我去瞅瞅


拿走

2赞

image 看了,这种函数也太新手了,毫无意义的封装。话说这帖子真有意思,还专门去找问题,贴脸开大

1赞