如何设计RTS游戏的AI?从《全面战争》系列说起(二)
如前所述,战术AI控制的,实际是每场战斗中与玩家对战的那些敌人。它们需要决定各个单位的阵型和行动。同时,他们还需要把不同的单位组织在一起,以实现特定的战术目标,或是根据现有的地形和天气对其进行调遣。
在战术AI领域, 《幕府将军》采用的是一种逻辑系统。具体而言,在战斗中,AI会根据战场系统提供的数据,做出各种相应决策。而其依据来自中国古代的兵书《孙子兵法》。
这就产生了一个问题,为什么开发者会用中国上古兵书中的原则,来指导《幕府将军》中的AI设计?一方面,这是出于真实性的考虑——在日本战国时代,许多武将在指挥战争时确实会参考这本书;另外,对于游戏本身来说,《孙子兵法》的内容确实有许多具体的指导意义,比如,其中便详细阐释了冷兵器时代、在不同战场条件下、面对各种类型和规模的敌军时,指挥官的应对策略,以及地形、天气和士气对作战的影响等。
下面就是《孙子兵法》中的一些简单例子:
“围师必阙,穷寇勿迫”
“十则围之,五则攻之,倍则分之”
根据《孙子兵法》中的原则,开发者最终设计了三种风格的战术AI,以对应不同性格特点的武将,同时,在这些AI中,他们还嵌入了总共220条规则,它们综合在一起,会导致各种各样的战术决策。在当时的即时战略/战术类游戏中,它可以说是一个创举。
谁能想到,《孙子兵法》充当了《全战》诞生之初的AI行动指导原则呢?
CA社的开发总监麦克·辛普森(Mike Simpson)对此评论说:
“在当时,大多数游戏使用的都是简单的封装行为脚本:举个例子,当你的部队冲向它们时,它们就会自动开火;同时,它们的进攻也缺乏章法,基本上就是一拥而上。这些AI的能力非常有限,更谈不上模拟了真实的战场环境。在这些游戏中,你甚至不用反复战斗,就能掌握击败敌人的办法,这并不是我们想要的,我们理想的游戏必须包含许多真实世界的战术元素,其中敌人会非常狡猾,会随机应变——虽然这让制作变得异常复杂,但无论对我们还是玩家,它都有很大的意义。”
作为《幕府将军》中的最高一层AI,战役AI掌管的是战略和外交系统:具体来说,其负责的主要是军队在战略地图上的调动,与其他势力的外交活动,以及境内各种设施的建设等。
为让每个不同的大名进行各种决策,开发者采用了两种AI模式:其中之一被称为“状态机”,另一种被称为“遗传算法”。所谓“状态机”,简单地来说,一旦某些条件满足后,AI便会做出相应的反应,其中既不存在复杂的决策过程,也不会参照之前的决策及其后果,只是对周围发生的事件作出反应。至于“遗传算法”则会对各个AI的行动进行一些因地制宜的调整。
所谓“遗传算法”,实际是机器学习的一种形式,对于给定的问题,开发者会设置大量的候选答案,随后,在处理问题的过程中,系统会通过尝试,让这些答案“相互繁殖”——或者说取长补短——最终得出最优的解答结果。在“繁殖”的过程中,由于环境不同、每个AI的具体设置不同,对同一个问题,系统可能会产生截然不同的解答。这导致在游戏中,不同的大名对相同的处境,可能会做出不同的反应,这就赋予了它们截然不同的个性:这也是为什么,在游戏中,有的大名更愿意和其它势力进行和平交涉,而另一些则会倾向于动武。
在上述三个系统的相互作用下,AI在《全战》中可以同时处理各种复杂的内容:比如让玩家在控制各个小单位的同时,又能让它们合在一起作为整体行动,并顺利穿越各种复杂的地形。而这些在2000年、初代中便已确立的特点,也在系列的后续作品中得到了延续。不过,随着时间流逝,玩家和开发者也发现了许多缺陷,正是因此,在《全面战争》的每部续作中,都会对其进行优化和改良,以求让AI变得更加智慧。
其中的一个代表就是2002年的《中世纪:全面战争》,该作品将目光投向了从8世纪末一直到14世纪的欧洲,玩家可以操纵不同历史时期的各种政治势力。
总的来说,在《中世纪》较《幕府将军》并没有什么重大的创新,其中只有一些优化和改进:其采用了改进的《幕府将军》引擎,并允许玩家进行更大规模的战斗,而在AI方面,情况也是如此。比如,在微观单位领域,经过本作的优化,它们再也不会在狭窄的区域(如桥梁)出现拥堵。另外,战术AI的行动风格从三种增加到了九种,从而极大增加了战斗体验的多样性。按照一些评论家的说法,经过上述改良之后,《中世纪》已“近乎完美”。Rock Paper Shotgun的评论员罗博·扎科尼(Rob Zacny)就曾在2016年写道:
“虽然我不确定,后来是否还有比它更为平衡的《全战》系列游戏。《战国风云(Risk)》式的地图让AI可以轻松地对领土进行管理,同时,每个国家不同的起始状态可以让一些AI在后期建立真正意义上的霸权,并给玩家带来巨大的挑战……总的来说,《中世纪》是一部简洁但无比出色的作品,直到差不多10年后,才有能与之匹敌的《全战》系列游戏出现。”
前文提到的《战国风云(Risk)》是当年一款颇为风靡的老式桌游,它把世界划成了若干地区,每个势力控制并代表一个,其充当了后来许多策略游戏宏观战略地图的雏形
但另一方面,《幕府将军》和《中世纪》只是一个开始,随后《全战》系列的发展之路并不太顺利:后续几部作品中,随着游戏体量扩大,开发者遭遇的挑战也愈发严峻。在随后几年里,CA社对《全面战争》的AI进行了一次重大的重组,至于其灵感来自玩家——确切地说,是各种民间的Mod制作组。
为其充当契机的,则是2004年上市的《罗马:全面战争》,作为系列的第三部,这部作品中采用了3D化的战略地图,上面的兵模也实现了完全3D,至于历史舞台则放在了公元前270年的意大利,当时,罗马正从一个城邦成长为帝国。另外,在《全战》系列的历史上,《罗马》也是一部分水岭式的作品:它让本作从一个相对小众的策略模拟系列,正式变成了一部有惊人影响力的大IP。然而,在游戏中也出现了不少瑕疵——其中最显著的是战役层面,随着外交机制的内容变得更为丰富,挑战也应运而生。具体来说,为了构建帝国,AI更多需要采取深思熟虑的长远行动。但正如面前提到的那样,在《全战》系列中,战役AI实际采用了一种名为“状态机”的决策模式,其着眼点却是当前的环境,而不是长远的利益。这导致了许多或匪夷所思和背离历史的决定。
尽管问题众多,但瑕不掩瑜,《罗马》仍然拥有大量粉丝群体。同时,这个系列对Mod的设计也非常友好:在早期版本中,游戏的架构和数据都是开源的,因此,玩家很容易借助工具进行修改,以满足自己的需要。在众多Mod中,许多不仅改善了图像和操纵,还增加了许多新内容,甚至是构建了一个全新的世界:“罗马崛起(Roman Surrectum)”和“罗马:全面真实(Rome:Total Realism)”等就是其中的代表。
另外,还有一些mod引入了其他题材,比如说战锤系列和托尔金神话。不过,其中令人印象最深刻的当属尼克·托马迪斯(Nick Thomadis)开发的DarthMod,这一模组中不仅丰富了游戏的内容和玩法,还调整了影响战术和战役AI的各种参数——对资深玩家来说,这可谓是一种福音:这些导致了许多新的战斗阵型和编组,同时AI的表现也更为积极和灵活。
作为《罗马:全战》做好的mod,DarthMod对原作的机制和内容进行了极大丰富
在《罗马:全战》发布后,CA社又趁热打铁推出了《中世纪2:全面战争》,从本质上说,它是利用《罗马》的引擎对《中世纪:全战》进行了一次复刻和改造。毫不奇怪,AI在其中问题依旧,虽然各种mod弥补了其中的一些缺陷,但它仍然提醒了CA社:《全战》系列的AI需要重建。