/【雷火UX带你聚焦GDC2021】通过强化学习构建角色间的合作行为(Vincent-Pierre & Markus Weiss)

【雷火UX带你聚焦GDC2021】通过强化学习构建角色间的合作行为(Vincent-Pierre & Markus Weiss)


网易雷火UX用户体验中心编译,转载需注明本公众号

什么是GDC?

GDC是全球最高影响力的游戏开发者会议,每年在旧金山召开一次,已有35届。虽然一周会议的门票售价高达2千美元,仍有多达27000名业界人士现场出席,可见其价值与权威性。GDC重头环节是非赞助类主题演讲,每届主办方平均邀请不足300场,分核心与峰会两大类别。这些演讲人经过主办方及其全球顾问委员会的精心挑选邀请,以高质量和创新性而备受行业认可,一定程度代表游戏行业的当前最高水准与发展趋势。

2020年起,受COVID-19影响,改由线上形式。2021年的GDC大会于7月19日至23日举办。雷火UX共在GDC2021获邀11场演讲,领跑全球。


每年的GDC大会上,全球顶尖的游戏开发者们将齐聚在这里,交流彼此的想法,构想游戏业的未来方向。接下来雷火UX公众号会选择一部分高质量的演讲,陆续为大家进行介绍。旨在通过对这些演讲内容进行学习,了解游戏领域的最新研究热点趋势,并期待与全世界的游戏爱好者一起产生更多创新和灵感的碰撞。

GDC 2021


Vincent-Pierre Berges

Machine Learning Summit

Vincent-Pierre Berges是Unity Technologies的高级机器学习工程师,拥有斯坦福大学和法国理工学院的硕士学位。他是Unity Machine Learning Agents的创始团队成员之一,这是一个开源工具包,允许游戏开发人员使用深度强化学习在游戏中创建行为。该工具包已成为深度学习和人工智能领域的顶级Github项目之一。

Markus Weiss

Machine Learning Summit

Markus Weiss从事机器学习相关工作、是一名技术总监,同时是Couch in the Woods Interactive的联合创始人,这是一个来自德国Black Forest的独立工作室,成立于2020年。Markus在Furtwangen大学获得了媒体计算机科学学士和硕士学位。他的硕士论文涵盖了如何将ML-Agents集成到游戏中的内容。该论文为NEON SHIFTER AI奠定了基础。

演讲标题:

Creating Cooperative Character Behaviors Using Deep Reinforcement Learning

演讲内容:

游戏中的AI角色协作一直都是游戏开发的重要关注点,良好的角色间协作将会给游戏带来更多的乐趣与更好的口碑,而这些也正是Berges以及他的团队所关注的,他们旨在让组队游戏拥有更好的角色协作体验。

本演讲主要包括以下几个部分

1. 为什么需要构建游戏中的角色协作行为

2. 为什么选择深度强化学习来构建

3. 如何应用强化学习来支撑游戏中的协作行为

01

为什么需要构建游戏中的角色协作行为

Berges从两点来说明构建角色协作行为的重要性:

1. 可以提升游戏的真实感。比如进行组队游戏的时候,本组内有AI的存在,而游戏的目标是战胜对手,此时角色间的通力协作会比单打独斗显得更加真实。同时这样的机制也会提升游戏的趣味性;

2. 可以用来替换掉线玩家。若一方有玩家掉线了,这个时候就可以使用AI来代替掉线玩家继续进行游戏,大多数情况下,其余的玩家肯定不希望AI过于拉跨,只知道独自行动而不顾全局,这样会降低游戏体验。

这两点对于玩家在游戏内的体验都无疑起到了正向的作用,也因此在游戏内,AI可以和玩家进行良好的互动、协作,都无疑会让玩家更加青睐。

02

为什么使用深度强化学习来构建角色协作行为

部分传统的实现方式,通过手写逻辑代码来应对不同情况下角色间的行为交互。随着游戏的角色的增加与协作程度的加深,复杂度也会跟着加深。Berges表示其实随着复杂度的加深,已经很难再去用手写逻辑代码的方式来完成相关协作的交互。

而深度强化学习可以很好地解决这个问题,强化学习是机器学习中的一个分支,最大的特点就是在交互中学习,Agent在与环境交互中,依据获得的奖励与惩罚不断地学习,以此来更加适应环境。强化学习包括但不限于这些优点:
  • 节省开发时间,代码量更少

  • 对大多数游戏设计的改变具有鲁棒性

  • 以捕捉到手写代码无法涉及的复杂行为

  • 可以更好的模仿人类的行为

下面这个桌面足球的小游戏,便可以体现强化学习在游戏协作行为上的优秀表现,角色会实时根据场上的变化来进行盘带、射门、跑位等行为。而用传统的方式来实现这些无疑是非常复杂的。

03

如何应用强化学习来支撑游戏中的协作行为

对于游戏中的协作行为算法支撑,MARL(Muti-Agent Reinforcement Learning) 无疑是非常合适的。Berges列举了该类型算法的一些优势:

1. 角色会学到如何优化自己在团队内的行为

2. 复杂度的负担交给算法而非开发者


不过实际应用中,也需要来规避一些弊端来优化算法,该算法应用到游戏里会有如下不足:

1. 角色会利用同组同一时刻的所有信息进行行为决策,其实这是不必要的,同时这对算力成本的要求也非常高,得不偿失

2. 角色的数量只能是固定的,对于游戏角色数量变化的情况不适用

3. 角色会倾向于在游戏里存活,在团队内需要有角色牺牲自我的情况下,这种倾向显然会不太合适

针对以上几点不足,Berges和他的团队应用了MA-POCA算法来针对性地解决这个问题,目前他们正在积极深入到该算法的研究中,可以通过Unity的相关技术博客或者github来关注该算法的进展。下面是该算法的核心公式:

该公式由Berges提供,简单来说,绿色部分是对组行为的评估,也就是说是用来评估团队的表现的好坏,而蓝色的部分则是所谓的baseline,即对表现的预估,两者的差值用来反馈Agent的某种行为。

该算法的核心概念是Centralized Learning & Decentralized execution。由一个Critic(通常是一个神经网络),Berges称之为中心裁判,负责评估所有Agent的状态,进而对其表现进行打分,来告诉Agent刚刚的action的好坏,Agent也就因此利用到了所有角色的信息,即Centralized Learning,这也正是我们想要的。而角色做下一次行为的时候,就只依靠自己得到的信息来决定,也就是decentralized execution。

下面我们来看看该算法是如何针对MARL的不足进行优化的。

角色会利用同组同一时刻的所有信息进行行为决策

传统的同步决策方式如下图所示:

因为总是需要同一时刻同组角色的所有信息,所以给计算带来了很大的挑战。

而使用异步决策,则可以很好地解决这个问题。这里的异步体现在使用时间点的不同,区别于使用同一时间点观察到的信息来进行决策,这里使用部分过去时间点的信息来进行学习,这样可以减轻计算成本的负担,并且同样可以进行有效的行为学习,逻辑如下图所示:

角色的数量只能是固定的

这里使用注意力机制(Attention Module)来解决角色数量的变化问题,下图是相关公式,使用注意力机制,不管有多少的角色以及观察信息被投入到神经网络中,最后都会得到固定大小的向量。Berges表示这样不管角色如何变化,都可以复用神经网络。这样一来就可以解决诸如一方玩家战斗减员等原因导致的玩家数量上的变化,造成MARL局限的情况。


角色会倾向于不结束游戏

进行奖惩反馈(Reward)的时候,如果是因为角色的奉献而使团队获得了更大的利益,对此应该给出好的反馈,此时需要的是对团队整体的行为做出评估。而因为使用了注意力机制,即使有角色出局、角色数量有变化的情况下,仍然可以进行有效的评估。


04

总       结

本演讲系统地对比了游戏内角色协作行为的传统实现方式与强化学习实现方式,强化学习在实现难度、效果等方面都有着很大的优势。而对于大部分强化学习的算法,应用到游戏里面都有几个主要的局限性,诸如固定角色数量、角色倾向等问题,Berges和他的团队提出了MA-POCA算法来对应解决了相应的问题,并已经在很多游戏场景下取得了良好的效果。目前他们的团队依然在深入研究该算法,我们可以进一步期待该算法在游戏中的应用。


最后欢迎大家投递雷火UX设计面向2022届毕业生的校招岗位

雷火UX商务沟通:grp.leihuoux@corp.netease.com
往期推荐

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