即时战略游戏将领指挥AI方案设想
<<C&C>>的巨大成功标志着即时战略游戏的正式崛起,而到了今年,
即时战略游戏无疑已占据了游戏的主导位置,然而,<<C&C>>及<<RA>>
的巨大成功并不能掩盖其人工智能的低劣,而近期推出的大量即时战略
新作,虽然很多在人工智能上都有一定的突破,但离玩家的要求往往相
差甚远,其结果使即时战略游戏在单人作战时总难以摆脱苦守再屠杀的
固定模式,从而大大降低了游戏的可玩性。
人工智能发展到现在实际上水平还是相当低下。但对于即时战略游
戏来说,仍有很大的发展余地。但以<<C&C>>为代表的AI方式已几乎走到
了尽头,即时战略的AI设计思维可能需要有重大变革,否则,仍在此基础上
发展,有限的改进就需要大量的计算,计算增加的速度将远远超过科技进
步的速度.
即时战略AI现在普遍缺乏的大致有以下几种能力:
1. 判断能力: 主要是对电脑方而言。电脑应具备一定程度的形势判
断能力,能够对双方的实力对比,敌方兵力分布,防御体系的强弱作出一
定程度的判断,并据此采取相应的战略战术。
2。战术配合、协作能力:大多数即时战略游戏现在的控制方式还是单
兵控制方式,由于缺乏整体协作,经常会出现部队堵死等毛病。不同的战斗
单元有不同的最佳作战方式,在大规模战斗中,玩家往往控制不过来,而机
器的单兵作战思路方式则经常使一些部队进行一些看起来非常愚蠢的行动。
3.战略策划能力:这是建立在全局判断力的基础上的。部队的兵力分配,
调度,主攻方向,佯攻方向,投入战斗的时间等,虽然战术配合/协作能力
如果功能极其强大也可以胜任战略策划能力,但这样强大的战术能力实际上
是做不到的。
4.灵活性:这是指战略战术上的变化而言。绝大多数即时战略游戏在电脑
AI上都只有有限的几种固定攻击套路,这无疑也是使游戏显得单调的重要原因。
判断能力是一切能力的基础,理论上也是容易完成的。比如,我们把每
个部队与防御物定义其威力强弱以及参战能力.(固定的如炮台,箭塔参战能
力只限于射程所及,移动部队则要有相当程度的扩大,越远参战能力越小。),
而后对其进行累加,即可以判断其部队军力与分布。话虽如此,假设一个80
*60的地图,就有4800个地形单位。上百个兵力单元,每单元影响几十到上百
地形单位的参战能力,这已经需要巨大的计算,更何况这仅仅是AI的第一步。
因此,要解决上述问题,必须从控制方式上进行一些变化。
我们考虑真正的战争,统帅与将领们的判断具有相当大的概括性与模糊性,
他们对自己部队的指挥,对敌方军力的判断一般是以部队为单位的,而指挥模式
是一种逐级指挥的模式.以此为借鉴,我们试着解决上面几个AI问题.
国产游戏<<赤壁>>创造性地在ATG游戏中引入了将领与阵形的概念,我们就
以<<赤壁>>为例。首先,我们进一步设计AI体系。我们把它设计为统帅-->将
领-->士兵三级指挥结构,不允许越级指挥,不同级别设计不同的AI。
先说统帅,统帅是进行全局统筹的,对玩家来说,不需要统帅级AI,仅每家
电脑对手存在一个统帅级AI。由于其数量很少,因此不必太担心速度问题。
统帅的判断能力可以考虑按战区划分。战区可以简单地矩形划分全图,也可
以考虑地形进行划分,甚至由设计地图者预先划分完毕。如果要较高的智能,后
两种方法比较合适,但比较难以完成。统帅根据各战区的敌我势力以及各战区的
地形联系,或者再加上资源等其他因素判断全局形势。判断敌我势力时,以部队
为单位。
统帅不考虑战术配合,协作,只考虑战略策划。由于只指挥十几到二十几个
将官,因此可以进行比较全面的考虑。同时,统帅和将官之间可以有一定的通信
机制,使统帅及时了解一些情况的变化,并视情况作出相应的策略变化。
再说将领,将领是统帅命令的执行人,当接受统帅命令之后,决定部队的行
军路线、队形变化,以及意外情况下的应变,同时,要把一些信息如距离远近,
到达目标地时间,发现敌情等反馈给统帅。
战斗时将官应首先建立战场的概念。先划定一块区域,以此为基础考虑作战。
并在一定时间后或一定情况下改变战场位置与范围。这样可以限制将官考虑战情
时的计算量。
将领的判断能力主要是行军时间,受到威胁情况,战斗时则是判断战场范围
内的敌情(以战斗单元为单位)。将领的战斗指挥主要是决定进攻方向或防御方
向,如果有可能,也可以引入战线的概念。
由于将领数目一般从十几个到三四十个,因此将领的AI可以略微复杂,但不能
过于复杂。
最后说士兵,士兵的数目一般上百。如何让士兵围绕将领行动可以说是整个
设计方案成败的关键所在。为此,必须使部队成为一个整体(溃散时例外)。
行军时,士兵应根据将领所划出的路线,以统一的速度(以部队中最慢的单
元速度为准)列队行进。统一速度可以考虑采用放慢高速部队的办法和让高速部
队适当等待的办法。只有当将官下令战斗时才以各自的速度投入战场。战斗时,
不同的兵种应有不同的规则。如步兵与骑兵应冲在第一线,弓兵则需要在后方放
箭,另外,士兵一般不要离开战场。
士兵的判断能力则仅限于判定攻击目标的价值以及自身的安危,周围位置的
安全程度(可以自己判断,也可以直接调用将领的判断)。
即使使用了分级指挥体系,上述体系首先未解决灵活性的问题,其次,它还
必须避免出现过多的判断分支。因此,我们应进一步设想用计算来代替判断。实
际上也就是引入简单的神经网络方法。我们把影响决断的各个因素都加以量化,
而后再加权,从而得出总的影响值,以此为判断依据。这样,在战斗中不必担心
考虑因素过多,并且调节权值即可产生不同特点的士兵,将领,甚至统帅。
统帅到将领的决策可以考虑随机化。产生采用高斯随机变量等适当的随机数
,并根据其值进行决策,可以在合理的基础上引入随机性,有助于战斗的多样性
。这里的随机数需要大量产生,使用C中的随机数是不够的。可以根据时间,按键
等选定初态,而后利用长周期伪随机序列批量产生随机数提供使用。
另外,一些较难进行,或需要计算量较大的判断和决定可以适当地模糊化处
理。统帅的战区级判断就是一个例子。将领的战场区域判断如果难以完成的话,
也可以分割战场为2x2或3x3小区域进行判断。另外,还可以用降低判断频率的方
法来减少计算量。
撞车处理上则采取逐级处理的方案,让路算法在部队级上进行,如果部队级
无法解决,就到统帅级上进行
要使战斗仍保持紧张激烈的特点,就必须使战斗多样化,不同时机,在不同
方向投入不同兵种的部队产生不同的结果。因此,可以考虑使部队状态鲜明,并
加入新型兵种。如步兵就可以分为枪兵(攻击力强)与持盾刀手(防御力强),
进一步降低弓箭手防御力。如果产生下面的效果,估计玩家的紧张程度不会有什
么降低:
士气相同,等级相同
一个枪兵 vs 一个刀手 平
15个枪兵 vs 15个刀手 枪兵胜
15个枪兵 vs 8个刀手,7个弓兵(正面作战) 弓兵,刀手胜
15个枪兵vs 8个刀手,7个弓兵(背后伏击)枪兵胜
另外,还可以加入探马(速度极快,侦察范围广),增加工兵的掘陷阱功能,
允许击毁鹿砦,鹿砦内弓手与鹿砦外弓手互射时受到一定防护。可以大大提高士
气的作用,给不同的将领以不同的声望,并随着部队战绩变化。将领败退时,全
军士气降低。将领被杀则降低的更多。降低值依据将领的声望而定。激励只允许
用一次。这样可以使玩家注意每一场战役的胜败。
在计谋方面,可以增大火计的威力,限制其使用地点,并与天气联系。如分
地形为易燃区与不易燃区,火向周围扩散的概率与风向,风力有关,甚至于专设
火矢兵放火。建筑物属易燃地区。这样,在大风天气放火可能收到奇效。
资源上,可以设木材与铁,钱为招兵必需物,而粮食则起到维持士气作用,
同时每天消耗。粮仓数限制最大存粮数,粮食平均储藏在各粮仓之间,随粮仓被毁
而消失。这样使部队必须注意对基地的守卫,同时也使粮少的一方不得不迅速追求
决战,至少电脑统帅如此。