如何设计RTS游戏的AI?从《全面战争》系列说起(一)
AI始终是游戏设计中一个绕不开的话题,它们的问世往往是为了充当一把钥匙,以便让游戏系统解决短期或者长期的决策问题。说道游戏AI,许多玩家首先想到的莫过于FPS,其中,AI可以凭借精确的枪法和灵活的判断,为游戏增加不少的乐趣。
但在一些领域,FPS的AI又很难和RTS(即时战略类游戏)的AI相提并论。具体而言,RTS中AI需要兼顾的元素更多,而且某些方面产生的影响更是牵一发而动全身,举个例子,在作战中,哪怕是一个微小的、即时的、被动的决策,都完全有可能影响未来几个小时的战场态势,而在这些即时战略游戏中,无论是玩家、开发人员和游戏研究者,只要谈到AI面临的挑战和创新,就不会忽视一个系列,它就是Creative Assembly(后文简称为“CA社”)的《全面战争》。
自2000年问世以来,《全战》阵容在不断壮大,同时,随着每部游戏推出,开发者的野心也在膨胀,这让AI的处理数据量和复杂程度也在不断增加。正是因此,开发团队在游戏AI的研发上持续倾注了巨大的精力,它让游戏史上堪称罕见。 不过另一方面,在最近的一些作品,如《阿提拉:全面战争》和《战锤:全面战争》中,游戏AI的问题也非常明显。在文中,我们不仅将介绍《全面战争》AI的设计思路,还会介绍它们在每代作品中如何得到了强化、调整甚至是完全重组。另外,尤其需要指出的是,热心玩家在其中发挥了重要作用,他们推出了许多精良的mod,帮助调整了许多重要的参数——不仅如此,相关的mod开发者社区也蓬勃发展,并给了厂方不少启示。
首先,我们要简要介绍的是即时战略类游戏发展的历程,也只有通过这些,我们才能了解《全战》在其中的地位。所有即时战略游戏中,都存在一个焦点,这就是对领土和资源的控制。具体来说,在游戏中,会有两个或两个以上的敌对势力出现在同一张地图上,他们会通过争夺特定区域内的资源和位置,来让自己占据支配地位。具体而言, 为实现这一目标,每个势力将按照特定的架构组建一支军队,以前往特定地区收集资源,并保卫现有的地盘,同时,他们还要对敌人势力范围进行侦察,进而占领整个区域。
在这个过程中,这些部队还需要摧毁敌人的部队,期间,玩家需要探索未知的区域,穿过所谓的“战争迷雾”以确定敌人和资源的位置。 此外,随着时间的推移,每个阵营都将在之前组织和单位的基础上,增强现有的军事水平和资源开采能力。
尽管算不上人类历史上第一款RTS,但Westwood于1992年推出的《沙丘2》仍然起到了开创性的作用,它影响的游戏可以列出一长串:比如《命令与征服》《帝国时代》《家园》,还有暴雪的《魔兽》和《星际》系列等。而在1990年代后期,《战争黎明》和《星球大战:战争帝国》等游戏则采用了不同的思路——它们更强调战术的价值,而将资源管理放在了一个次要的位置。
在《沙丘2》的启示下,暴雪用一系列大作做到了青出于蓝,它们至今仍是RTS的标杆
与此同时,1994年出品的《UFO:未知敌人》则致力于在即时和回合制之间取得平衡,其上市后的人气始终很高——2012年,该系列更是随着《幽浮:未知敌人(XCOM: Enemy Unknown)》的发售而被正式重启。
另外,尽管在是否属于RTS上存在争议,MOBA类游戏事实上也在其中占据了一席之地,它们源自《魔兽争霸3》的DOTA模组,后来则诞生了《Dota 2》和《英雄联盟》等独立作品,其中,玩家操控的单位是各种英雄,而他们的行动也将决定或影响宏观层面的战局。
不管该归入RTS这一大类,还是自成一系,无可否认的是,MOBA源于RTS,而且两者间存在许多割不断的联系
之所以提及RTS的演变史,是因为AI在其诞生之初便是重要一环。在这类游戏中,玩家需要管理阵营内各个单位的部署——你可以命令它们去往某个地方,但又不能直接进行操纵。为取得理想的结果,玩家就得与系统进行互动。另外,AI也对单人游戏部分也至关重要,因为其任务不仅是依据玩家的命令做出反应,同时,它们还扮演着敌军指挥官的角色——和玩家一样,AI也需要管理自己的单位、同时针对敌人行动制定各种反制策略。也正是因为任务极为重要,因此,AI设计一直被公认是一项挑战。
有人也许会问,为什么本文会关注《全战》系列呢?答案是它很有特点。作为CA社的代表作,它将不同种类的战略游戏模式都融入了同一部作品里面:其中既有回合制的资源管理和战略规划,同时还有大部队的实时战斗——更令人称奇的是,在战斗中,还同时包含了微观和宏观层面的指挥:这里既有AI对小单位的控制,还允许玩家对大部队进行整体的指挥,同时对战场阵型和部署进行管理——这在战略游戏中可谓相当罕见。
作为系列的第一作,《幕府将军:全面战争》树立了一种风格:它既平衡了拟真性和原创性,还加入了政治和战略因素。至于它为何将背景设定在16世纪的日本战国时期——则受了电影导演黑泽明的影响——尤其是他导演的《影子武士》《七武士》和《乱》,为了致敬这些经典,开发者甚至将一部分画面移植到了游戏的过场动画中。
黑泽明电影《乱》的剧照,这些作品充当了《幕府将军:全面战争》等游戏的灵感之源
在游戏中,玩家和敌方的AI都扮演着当时的“大名”:他们控制着日本境内的不同地区,可以在大地图上采取各种军事和外交行动。而在战斗模式下,玩家又将成为“将军”,并调遣成百上千的部队。另外,就战国时代本身而言,它也非常适合游戏的开发,因为当时的政治和经济都大名们的军事行动关系密切。
另外,《全战》还有许多不同于传统RTS之处,它在微观战斗中取消了诸如“战争迷雾”之类的机制,在资源管理上也被简化到了极点。而在AI方面,由于游戏的性质使然,它们也分成了三个不同的系统:
第一种AI是“战役和外交AI”,它负责处理每个回合的战略决策,比如在地图上调遣军队、从事外交活动(派遣特使或刺客、结盟或缓解对立)、在各地发展农业和建造基础设施等。
另一种AI则是“战术AI”,它决定了战斗单位的编组、行动策略和攻击模式。它们操纵的领域和人类玩家差不多,但它们只会从更宏观层面上对部队的行动进行管理。
最后一种则是每个小型单位自己的AI,它们决定了面对千变万化的战场局势,各个小单位会自己做出怎样的反应。
要全面理解《全战》系列的AI,必须从最底层开始,自下而上对整个系统进行探索——具体而言,就是从单个部队的控制入手,逐渐延伸到能让构成日本地图的战略系统方面。
从某种意义上说,军事单位也是《全战》系列的核心:从近战兵,到弓箭手,再到骑兵,根据兵种的不同,它们可以各自编组在一起。游戏中,这些作战单位不仅要保持阵型,而且要到处移动,并作为一个整体单位投入战斗。而对设计者来说,保证这些部队能顺利调动是一项有挑战的任务,特别是它们穿越山脉和森林等各种复杂地形时。
为此,《全面战争》采用了人工神经网络(Artificial Neural Network)来管理游戏中的单位。在AI设计中,为让操控对象迅速做出期望的反应,人工神经网络是一种相当有效的手段。具体来说,在这种系统中,处理数据的是一个个“神经元”——即简单的处理单元,它一方面从外界的来源接收数据,另一方面,这些来源又有着不同的权重。根据数据和权重的不同,它会自动得出最有利的结果,并以此来指引单位的行动。另外,在游戏设计中,开发者可以通过一些手段,让机器自己“学习”,并对相关数据的权重进行调整。一旦人工神经网络掌握了合适的行动方法,他们可以在瞬间做出反应。另外,“训练有素”的神经网络还能学会类比:这意味着,它能根据之前的经验,识别类似的情况,并做出在类似情况下最优的决策。
但另一方面,假如神经网络需要同时完成多个目标,其决策的效果却常常不甚理想,当这些目标存在对立时更是如此。具体到游戏中,其每支部队都有不同的神经网络,不管控制这些单位的是玩家还是更高层级的AI,它们都会根据不同的命令采取不同的行动:如移动、躲避火力,坚守阵地等,但另一方面,在早期的几部作品中,这些网络中的参数都是预先设定好的,并不会随着游戏过程自动调整或优化,所以,指望它随着游戏的进行变得精明,实际上也是不可能的。