/【雷火UX带你聚焦GDC2022】像玩家一样思考:《光环:无限》中的机器人如何决策(343:Brie Chin-Deyerle)

【雷火UX带你聚焦GDC2022】像玩家一样思考:《光环:无限》中的机器人如何决策(343:Brie Chin-Deyerle)

 

关于GDC

GDC是全球游戏行业最具规模、最有权威、最有影响力的专业峰会。GDC2022中,雷火UX共获邀17场演讲,分布在9个核心演讲以及8个峰会演讲,再度刷新中国游戏行业纪录,领跑全球。
   

   
每年的GDC大会上,全球顶尖的游戏开发者们将齐聚在这里,交流彼此的想法,构想游戏业的未来方向。接下来雷火UX公众号会选择一部分高质量的演讲,陆续为大家进行介绍。本篇为大家介绍的是来自343工作室的Brie Chin-Deyerle的演讲“Thinking like players:how halo infinite's bots make decision”。
   

Brie Chin-Deyerle

      343 Industries


                             
                             
                             

演讲标题:

Thinking like players:how halo infinite's bots make decision
                             
像玩家一样思考:《光环:无限》中的机器人如何决策
                             
演讲者信息:
                             

Brie Chin-Deyerle,在游戏行业具有10年的从业经验,目前就职于343 Industries,担任《光环:无限》多人游戏团队(Academy & Bots)的游戏工程开发主管。

演讲概述

本篇演讲介绍了《光环:无限》中广受好评的机器人机制,从定义游戏模式、解释游戏规则、设定决策框架、具体实现细节等方面,详细说明了该机制实现的技术路径。演讲者结合实际案例来阐述了开发中遇到的问题、解决思路、方案迭代调优过程。
                             
                       
01. 关于游戏《光环:无限》
                       
                       
                       
游戏简介
                     
《光环》系列最初由Bungie开发制作,2007年后转由343 Industries接手,共有约20年的历史。发行于2021年的《光环:无限》是该系列的最新作品,这是一款FPS游戏,分为战役模式和多人模式。《光环:无限》是该系列中第一部在多人模式中引入AI机器人的作品。在游戏的世界观中,由玩家或AI操控的战士角色被称为斯巴达战士(Spartan)。与光环系列一向令人惊喜的智能外星怪物角色不同,一个像真人玩家一样在FPS多人模式中运行的AI斯巴达战士面临更复杂的决策,因而这是一个更具挑战性的工作。
                     

游戏模式及其细分

演讲的主题是《光环:无限》多人模式中的AI机器人如何决策。《光环:无限》的多人模式有着丰富的竞技场模式,不同模式中有不同的获胜目标,因而使得机器人的策略选项更为复杂多样。最早发布的版本中有以下细分的竞技场模式:

• Slayer 杀敌之王:玩家像经典FPS游戏一样尽可能多地歼灭对手以获取胜利。

• Capture the Flag 抢旗之王:玩家互相争夺对方基地的旗帜,并将其运回己方基地得分。

• Strongholds 抢攻据点:玩家在特定据点区域内坚持一定时间来改变据点的归属,尽可能长时间地占据更多的据点。

• Oddball 保卫之王:玩家在地图中找到骷髅球并尽可能长时间地持有它。
                     
总结以上竞技场模式,可以将多人模式中斯巴达战士的基础行为归纳如下:
                     

• 获取武器和战斗

• 与物体交互

• 夺取和运送物体

• 隐匿和搜寻

• 保卫
                     

                     

开发者将这些基础行为视作谓语动词,与之对应的宾语则应该是具体的操作对象。此外,还需要一个机制将表示基础行为的谓语和表示行为对象的宾语链接起来形成完整的行为。



                     
                       
02.  机器人决策架构
                       
                       
                       

向机器人解释规则: Ambitions and Utility System

《光环:无限》中与游戏模式相关的逻辑都是使用lua语言来编写的。其中创建了一个BotManager模块作为中介以逻辑驱动机器人,以及作为机器人之间信息交互的媒介。BotManager中重点储存了Ambitions和机器人状态。
                     
Ambition是关卡中的一个具体物体或区域,与游戏模式中的得分方式有关,例如抢攻据点模式中的一个据点区域或者保卫之王中的骷髅球。基础行为和Ambition相链接就构成了一个完整的行为,例如保卫据点区域,运送旗帜,与敌人战斗等。
                     

                     
由于游戏的开放性和复杂性,在每一个时间点,机器人面临的可选行为是非常多的。举例来说,当一个机器人正持有旗帜时,遭遇到了敌人,那么可选的行为至少包括两种:继续运输旗帜或者放下旗帜与敌人战斗。此时由于错综复杂的游戏环境,如何选择“正确”的行为不是一个简单的问题。
                     

                     
开发团队将诸多待选的行为组织成一颗行为树,借助效用系统(utility system)的概念来从中选择行为。所谓“效用系统”,其基本思想是非常朴素的,即为每个行为赋予一个数值评分表示行为的重要性,并选用分数最高的行为。
                     

                     
至此,开发团队有了机器人决策的基本框架,但其中仍有需要调优的地方,与不同Ambitions链接的相同基础行为会有很不同的效用评分。例如夺取旗帜后需要将其运送回己方基地,而夺取骷髅球后只需要持有就行了。
                     

决策数值调优:固定数值、最高限额和权重输入

效用系统的概念是简明的,但具体实现是需要根据游戏设定反复调优的。其中可以调优的点包括固定数值、最高限额和输入权重。演讲者通过举例进行了说明:
                     
固定数值:当需要夺取的旗帜在非常远的时候,这一行为是可选的,但显然处于极低的优先级,因此可以直接赋予一个相当低的固定效用评分如0.1,如果眼前有稍微更重要的事情,就会把夺旗这一眼下不重要的行为挤到队列后面去。
                     
最高限额:当保卫之王玩法中已经非常接近胜利的时间了,例如持有骷髅球200秒可以取胜,而眼下队伍已经持有199秒了,那么无论当下是什么情况,抢夺骷髅球行为是有至高无上的优先级的。类似这种情况下,应该直接为该行为赋予最高限额的效用评分, 确保它被选中执行。
                     

                     
权重输入:攻击敌人行为的效用评分应当受距离影响,距离越远,攻击能够命中或击杀的可能性越低,因此这一类行为的效用评分依靠权重调节。
                     

以上是一些与效用系统调优相关的通用例子,此外演讲者也分享了在实际开发中会遇到的特性问题和解决技巧。



                     
                       
03. 开发中的实际问题和技巧
                       
                       
                       

评分相近的行为选项

当两个可选行为的评分非常接近时,机器人容易抽风。设想这样一个例子,机器人手持旗帜正在运送,迎面过来一个敌人,此时战斗的评分略高于继续运送旗帜,因此机器人选择停在原地,开始放下旗帜转入战斗状态。然而战场瞬息万变,放下旗帜的动作还没做完,可能由于敌人后退了一步,战斗的评分变得低于运送旗帜了,此时若不加干预,机器人又会转而中断放下旗帜的动作,重新开始运送。反复中断的动作会让机器人看起来像是在原地抽风,而不能执行连贯有效的行为。
                     

                     
对此,一个有效的应对措施是引入滞后性,即将刚转入执行的行为评分在一定时间内适当提高,使其在一段时间内显著高于其它行为,以保证行为能够被连贯地执行,而不至反复横跳。
                     

机器人的沟通和协作

开发团队希望最高难度的机器人能对非常有经验的玩家构成挑战,此时,机器人间的沟通和协作就会变得非常重要。顶尖人类玩家在玩竞技模式时会将自己视野中的信息通过语言共享给队友,从而帮助队友更好地决策。因此在设计机器人策略的时候也可以模仿着实现一套相近的信息共享协作机制。
                     
最简单的实现就是在各个机器人之间共享最近一次发现敌人或物体的位置和时间信息。此时,机器人的感知范围获得极大扩展,大部分时候机器人能够实时地知道对手所在的准确位置。但这带来一个直接的副作用,过去与视野高度相关的战斗权重显得过于高了,因为通过沟通,机器人几乎能获得全图的视野。若不加以调整,机器人会倾向于去攻击远在地图另一边的对手,而忽视眼前的旗帜、骷髅球、据点等得分物体。
                     

                     
有效的解决方法是区分机器人自己获得信息和队友共享的信息,适当降低队友共享信息相关行为的权重。这与人类玩家也是一致的,玩家总是更倾向于信任自己看到的东西,而非来自语音频道的信息。
                     

一些取舍

由于机器人策略的开发团队只有3-4人,需求的取舍是非常重要的。有些策略能提高机器人的表现,但相对不重要。以抢攻据点玩法为例,机器人可以像玩家一样,充分考虑队友位置、地形、掩体等因素,继而在据点区域内选择一处最有利的位置来停留,直到一段时间后改变据点归属。
                     

                     

这一行为细节确实能够影响游戏的走向,但改变据点归属的时间是相对短暂的,与其它行为相比,这里的机器人行为不会显著影响多人游戏的体验。开发团队倾向于对更频繁、占据更对时长的行为进行深入细致的调优,而选择性地暂时放弃这种相对不重要的行为细节。这种取舍使得一个小团队能够在发布的第一个版本中,为玩家及时地呈现相对优秀的机器人决策能力。



                     
                       
04. 开发中遇到的其他问题
                       
                       
                       

Lua的性能问题

演讲者对选择lua语言作为机器人逻辑的载体作了解释。将机器人决策逻辑放在lua上显然不是一个性能最优的选择。虽然《光环:无限》是一款高性能需求的游戏,但在多人竞技的语境下,机器人是作为人类玩家的队友或陪练对手而存在的。人类对简单信息的平均反应速度大约是200-250毫米,这是非常慢的。对于人类来说,lua已经足够快了,游戏中甚至需要故意延长响应时间来使机器人更好地模拟人类玩家的反应速度。



                     
                       
05.  总  结
                       
                       
                       

                     
演讲者介绍了机器人决策方案选型,具体调优方法,以及在实际策略开发中遇到的问题和应对技巧。用一套明确的语法结构来解构机器人海量的行为并重新组织行为树,其后用朴素的效用系统来评价和检索行为树。这套思路以及其中的技巧对于类似的复杂游戏环境下的智能系统构建有相当高的借鉴价值。
                     

本文来自微信公众号“网易雷火UX用户体验中心”(ID:LeihuoUX)。大作社经授权转载,该文观点仅代表作者本人,大作社平台仅提供信息存储空间服务。