打鸡进来指点一下
rimworld吧
全部回复
仅看楼主
level 1
@不准打鸡 @不准做鸡 [滑稽]
看了你不少技术帖收益颇多,不知道有没有研究过路径成本的算法?
最近研究了一下加农炮阵,苦于不知道路径成本的算法,最后还是失败了,想看看你有什么意见。
大致如下,图画得不好,太长了,而且炮台应该更密集,将就看吧。
五角星代表加农炮(难得有个好点的炮台总想好好利用),圆圈代表最大射程。最大射程到围墙中间有一定距离,算是安全区吧,最初设定是3格宽。
红色箭头是理想的AI寻路情况——绕开炮台的火力范围进入我不设防的基地。
蓝色箭头是我理想的行进路径——我希望的是AI先判定可以绕过炮台,进入之后因为各种因素直接往炮台中间冲(各种因素包括二次寻路判定、受到小人的攻击、发现有小人正使用末日火箭瞄准——通常准备发射时敌人会主动冲过来,等等)。
这个实验并不成功,海盗着陆后直接去拆墙了——当时刷出2路空降工程兵,在落地前保存了一下,AI判定是落地后才有的,这时候保存可以更方便的进行实验。
之后做了一系列修改,包括增大安全区、在围墙内或外放机枪塔等等,当把下图区域之外的地方都放在机枪塔的范围内并把安全区扩大到5格宽时(当然基地内部并未被机枪塔覆盖),有一路海盗直接冲了进来,他们并没有往炮阵里冲,而是顺着安全区的路径冲进了基地,另外一路仍然傻乎乎跑去拆外墙,尽管被拆的墙壁在机枪塔的范围内(按着机枪围城思路,机枪连了电线)。
反复读档测试发现,即使用狙击枪去打跑进来的海盗,也无法把他们吸引进炮阵,但他们跑到左上的时候——他们是往左边绕的,却会因为收到攻击而往炮阵冲过来,但这时候位置并不好。末日火箭也一样,别说瞄准吸引仇恨了,发射出去炸死几个其他人也完全无视,起来他们像是设定了移动到左上并在那之前不受干扰。
对了,之前(3格安全区时)还试了先拆掉电线,等海盗开始往里面跑时再造电线,反正电线造得快,但实际上即使没连电线,海盗也会回避这块区域,而加农炮又不像机枪塔那样可以卸载,不然就好办了。
再就是5格安全区时虽然有一路海盗会冲进来,但如果在里面铺上石砖他们又不会进来了,可见还是和路径成本有关——有石砖的地面移动更慢,路径成本更高。
还有就是,即使是同样的情况下——上面说的5格安全区无石砖,虽然两路海盗时有一路往里面走,但读更早的档重新按同样的布局建造,然后再刷出新的包含工程兵的海盗,却不往里面跑了。
感觉如果能知道能路径成本的具体算法应该还是有办法让敌人跑进炮阵的。
对了,我还想到个笨办法,就是基地周围多造几个类似的阵地,这样AI没得选,只能走其中一路,反正走哪路就接通哪路的电就行了,但这样占地面积太大了,我还是希望能够集中一个区域。
2019年01月08日 11点01分 1
level 1
还是在下面回复吧……
看起来还是路径成本的问题,我又试了下,重新建立了阵地,在地图左下刷了一波敌人,落地前存了档,测试了机枪围城的影响,当机枪间隔缩小到每6格一架机枪时,敌人终于往阵地里冲了……
而当我清除掉敌人,重新刷了4波5000点的工程兵之后,发现炮阵附近的往里面冲,远的就近砸墙,看来是路太远也增加了成本,因此宁可就近攻击。估计密度很大的时候还是可以让他们都绕路,不过成本有点高。
同时还发现个问题,上面说的左下刷了一波敌人,这是自然刷新而非开发者刷的,人数比较多。这批敌人因为离炮阵近会绕过炮塔,但绕路的过程中走走卡卡,看起来这种情形之下寻路算法很耗资源,有点像我们玩RTS时——从一个点控兵去另外一个点一般只要点一下就行了,但如果要绕过危险地带就需要一定的微操了。AI大概也是这样,有障碍的地方程序本身就限制了进入,无障碍的地方却需要无数次反复运算,就导致了卡顿。
2019年01月08日 13点01分 5
level 1
正常情况下工兵队是这样的——绕着炮塔的射程走,反复计算路径导致卡顿。
往射程里走的也有,偶尔有1、2个落单的,可能因为路径计算的BUG跑进来送死,同时还有部分有射程优势的单位会远远地攻击炮塔。
至于整队人往炮塔范围里走的,那是普通袭击,不是工兵。
再就是推测财富因素也会影响路径成本,百万财富的基地机枪围城密度很高才能够迫使工兵如下图一样往设计好的路径走。
另外看下图中AI和射程范围保持的距离,差不多就是我上面说的射程
+3
格。
2019年01月09日 13点01分 13
你这炮台数量……表示我后期基地+一堆mod也凑不了那么多零件和钢铁
2019年01月09日 14点01分
@盟军班长 虽然这是用开发者测试的,但也不算太夸张,大概20个左右,也就是7000钢铁800玻璃钢120零件,一张地图上的钢铁是以万计的,玻璃钢一般也有几千,零件可以自己造可以买,后期不至于造不出20个加农炮……另外以前A17时常年野外挖矿,光玻璃钢我就有6万多,现在也可以去海盗基地挖矿。
2019年01月09日 14点01分
1