大家好,英雄无敌3这个经典游戏的AI在当时的水平下做到了较高的水平,甚至比它的后继作品从算法的效率上都还要更好,所以直到2022年的今天,仍然有值得玩家研究的地方,本文将从城防系统的AI进行入手,给大家分析如何在守城战斗中“间接”控制你的箭塔,攻击最有威胁的目标。
在大多数玩家1V7的200难度对战中,用副将守城以少打多是一个非常关键的逆袭点,然而让我们感到很绝望的是,即使是城防完整的守城战,箭塔的攻击目标总是让人觉得它是不是弱智,比如以下这个局面:
【资料图】
敌人的攻城部队同一日内车轮攻城,我方虽然半兽人还有不少,但缺乏骗反和保护的分兵了,而此时我方箭塔上的半兽人已经被敌人兵力吓破了胆,逮着小怪物丢斧头,任由火精灵在城内施虐,大耳怪和狼骑全灭,半兽人死了好几个才干掉火精灵,而这个时候敌人已经趟过护城河了,这个时候,小怪物还没有被箭塔杀完。面对肉的惊人的恶鬼,守城部队大势已去。
所以有人说,常年蹲坑守城的副将,必备技能就是炮术,能确保你不会窝囊的输掉本应该胜利的战斗,但大多数时候副将也是有啥来啥,指望炮术技能来人为控制箭塔并不常见,也没有效率,所以本文将从箭塔的AI逻辑开始展开:
1.箭塔对战场形势的判断
大多数老玩家应该都知道,所有的AI,包括野怪,箭塔,敌人的英雄,都会在战斗中选择两种方向的战术策略:
A:积极战斗策略:发现部队实力与敌人有一战的机会,此时会发挥最大潜力进行战场最优解选择(起码是AI认为的最优解),例如判断如何对敌人造成最大战力损失,谁是最会威胁我方部队的敌人,给谁加增益魔法或者控制魔法,通过走位避开攻击范围,而对城防的箭塔而言,就等价于一般远程部队的策略,按一定优先级进行判断选择;(后文详解)
B:消极战斗策略:发现部队实力落后太多,判断取胜已经没有希望,于是采用消极躺平的策略,箭塔的攻击目标就是“尽可能”造成敌人部队绝对数目的损失,也就是上文的例子中的的大量小怪物,但当战场局势又变得有希望后,也会转变策略(十分无语);
那箭塔是如何判断战场局势的呢?那得从每支部队的价值说起:
在游戏AI的设计过程中,对各种游戏元素的价值分析是AI能否有效运行的核心元素之一,我们知道,每一种部队在资料面板上都存在两个价值:人工智能价值,简称AI价值;战斗价值,简称F价值。如下图最下两行所示:
经过多年来大神们的总结,这两种价值的出现场合已经被解析清楚:
AI价值:其数值影响AI决策行为,比如AI是否能进攻玩家的英雄、野怪是否害怕逃跑、玩家军队实力的评价,最有价值的目标,因此这里面会考虑部队所有的特技和特殊效果,以及速度和攻击类型的改变;
F价值:其数值影响战场局势的判断,指的是在本场战斗中,这支部队基本属性和某些固定效果带来的基本实力,可以称呼它为“硬实力”;
例如上图的神射手比弓箭手多了2的速度和双击特技,其AI价值提高了40%以上;但由于攻防杀伤和血量均没有变化,因此F价值不变;
经过多轮测试,这里直接抛出结论1:箭塔判断战场形势采用的是F价值,在英雄攻防相抵的情况下,战斗策略转变临界值是攻方是守方两倍F价值;
验证箭塔用的是F价值而不是AI价值很简单,我们用蛇女作为中介,人马的价值可以忽略不计,仅仅是当作箭塔攻击指示器,使用墓园地形和0攻0防的英雄是为了让部队不会获得额外的攻防,
可见此时进攻方的F总价值已经接近守军两倍,AI总价值早已超过守军2倍以上了,然而箭塔还没有放弃治疗,还在集火骑士,当骑士数量增加一个后,结果则是:
可见临界点就是F值达到守军的两倍;需要注意的是,英雄的攻防,部队上施加的法术,甚至部队是否处于防御姿势,都会影响箭塔的判断,可能是部队的价值仅是基础属性带来的价值,如果通过其它任何途径改变了属性,则实时价值也会出现波动,也会同时改变箭塔的局势计算结果。
2. 箭塔对攻击目标的选择
这里先讨论一下消极策略中具体目标的选择:
消极战斗策略也不是简单的攻击最大生命值最少的敌人,所以也不是仅仅看部队的最大生命值进行攻击,而是也会给敌人划分类别,进行细致的计算,如下图,我方1000个骑士,已经让防守方事实上放弃了,消极策略下,箭塔攻击僧侣:
龙蝇生命值20,僧侣生命值30,如果仅以造成最大数量损失而言,应当攻击龙蝇,此时不攻击龙蝇的原因是龙蝇的攻击范围无法覆盖蛇妖,被列为B级目标;僧侣在当前回合都可以威胁蛇妖,是A级目标,因此优先选择。
而当龙蝇移动位置,下一回合可以攻击蛇妖后,箭塔立刻转变了目标,原因就是龙蝇进入了A级目标组,在和僧侣的生命值比小竞争中,胜出。
那么B级目标是否可能优先级会超过A级目标呢?答案是肯定的,我们看下图,将龙蝇换成精灵,精灵需要两回合才能攻击蛇妖,属于B级目标,而此时箭塔放弃了A级目标的僧侣。
这里给出结论2:箭塔会根据进攻方部队在几回合内能威胁到我方部队,来将其分成A,B,C类,分别赋予100%,50%,33%的权重,计算能造成最大数量损失的部队。
因此,上面的例子里,处于B类目标的精灵,最大生命值是3,等效于最大生命值6的A类目标,自然可以在与僧侣的竞争中胜利。但如果将僧侣换成最大生命值4的塔楼丢丢,则自然不及丢丢更有吸引力。
接下来我们看积极策略:
在箭塔认为部队尚可一战的情况下,其基本逻辑仍然是将敌人分为ABC类,而此时会考虑到对敌人造成最大战力的损失,由于箭塔被设计的非常蠢,它基本上不会考虑自己会造成伤害溢出,(其实箭塔非常容易产生伤害溢出!)因此实际可以按箭塔伤害为1进行数值判断,这里同样直接抛出结论:
结论3:积极策略下,箭塔同样分为ABC三类目标,权重同样是100%,50%,33%,期望对其造成的战力损失为单兵种 “AI价值 X 1/最大生命值 X 权重系数”,选择期望最高的目标
由于大部分战斗都是处于可以一战的状态,F战力超过两倍的时候也不是常见情况,因此每种部队的仇恨值也就可以精确计算出来,比如下表是所有远程部队的仇恨排名,由于远程部队基本都会属于A类目标,因此该值的高低直接决定箭塔基本攻击目标:
经过测试,箭塔基本上是遵循这个清单进行顺序攻击,但例外的是幻影射手,由于幻影射手的攻击是无视城防和射程衰减的,他能获得比表上魔幻法师更高的箭塔仇恨值;另外,弩车也是有仇恨值的,由于永远是A类目标,尽管非常低,但在特殊情况下,箭塔也是会集火弩车的,
另一个常处于A或B类目标的单位组就是飞行单位了,我们见下图:
圣龙遥遥领先,几乎总会成为集火的目标(事实上,箭塔无视攻防,攻击圣龙确实是最优选择),而七级部队中,大恶魔,大天使独占鳌头,由于这几只部队能在第一回合攻击敌人,因此和射手一样是A类目标,而在仇恨值上又遥遥领先,因此可以造成箭塔不去攻击脆弱的射手,而去攻击血厚的7级部队的情况。
以上基本上就是箭塔攻击目标选择的大体框架了,除此之外,在积极策略下,还有一些小的波动,例如每次战斗赋予的AI随机值,以及目标当前生命值过低,箭塔临时转换目标补刀什么的,但这不影响大的框架,我们对于箭塔的控制仍可以基于上述的AI逻辑进行控制。
对于守城和攻城的玩家该如何指挥部队,在没有炮术的情况下,令箭塔攻击想要的单位呢?我们下次再进行讨论!
谢谢阅读,如觉得有趣,还请关注!
下一篇:最后一页
X 关闭
Copyright © 2015-2022 每日造纸网版权所有 备案号:浙ICP备2022016517号-15 联系邮箱:5 146 761 13 @qq.com