网页功能: 加入收藏 设为首页 网站搜索  
即时战略游戏将领指挥AI方案设想
发表日期:2006-09-03作者:[转贴] 出处:  

<<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个弓兵(背后伏击)  枪兵胜
另外,还可以加入探马(速度极快,侦察范围广),增加工兵的掘陷阱功能,允许击毁鹿砦,鹿砦内弓手与鹿砦外弓手互射时受到一定防护。可以大大提高士气的作用,给不同的将领以不同的声望,并随着部队战绩变化。将领败退时,全军士气降低。将领被杀则降低的更多。降低值依据将领的声望而定。激励只允许用一次。这样可以使玩家注意每一场战役的胜败。
   
  在计谋方面,可以增大火计的威力,限制其使用地点,并与天气联系。如分地形为易燃区与不易燃区,火向周围扩散的概率与风向,风力有关,甚至于专设火矢兵放火。建筑物属易燃地区。这样,在大风天气放火可能收到奇效。
  
  资源上,可以设木材与铁,钱为招兵必需物,而粮食则起到维持士气作用,同时每天消耗。粮仓数限制最大存粮数,粮食平均储藏在各粮仓之间,随粮仓被毁而消失。这样使部队必须注意对基地的守卫,同时也使粮少的一方不得不迅速追求决战,至少电脑统帅如此。 

当然,上述设想实际实行起来还是有很多困难的,有些问题更是世界性难题。但游戏编制并不等于实际的模拟,人们可以通过许多理想化与简化的办法来绕开障碍。

我来说两句】 【加入收藏】 【返加顶部】 【打印本页】 【关闭窗口
中搜索 即时战略游戏将领指挥AI方案设想
本类热点文章
  A*寻路算法(For 初学者)
  A*寻路初探 GameDev.net
  用有限状态机实现的迷宫求解
  计算机中随机数的产生
  精美的随机数生成器程序
  即时战略游戏中如何协调对象移动
  计算几何算法概览
  飞行射击游戏中的碰撞检测
  电脑AI浅谈
  五子棋算法探讨
  小谈网络游戏同步
  五子棋算法
最新分类信息我要发布 
最新招聘信息

关于我们 / 合作推广 / 给我留言 / 版权举报 / 意见建议 / 广告投放  
Copyright ©2003-2024 Lihuasoft.net webmaster(at)lihuasoft.net
网站编程QQ群   京ICP备05001064号 页面生成时间:0.0039