人工智能(AI)在游戏中的应用(上)
AI在视频游戏中的应用副标题:游戏AI技术的发展现状以及在视频游戏领域的应用概览(原作者:)Written by Laura E. Shummon Maass and Andy Luc大多数人可能会认为,在过去几年中发布的大多数游戏都给非玩家控制的角色、生物或动物上边 使用了非常复杂的AI 技术。然而,许多视频游戏开发者对在游戏中应用先进的AI技术是犹豫不决的,因为他们害怕失去对整...
AI在视频游戏中的应用
副标题:游戏AI技术的发展现状以及在视频游戏领域的应用概览
(原作者:)Written by Laura E. Shummon Maass and Andy Luc
大多数人可能会认为,在过去几年中发布的大多数游戏都给非玩家控制的角色、生物或动物上边 使用了非常复杂的AI 技术。然而,许多视频游戏开发者对在游戏中应用先进的AI技术是犹豫不决的,因为他们害怕失去对整体玩家体验的控制。事实上,在视频游戏中使用AI技术的目标,不是要给玩家创造一个无与法击败的对手,而是要在很长一段时间内最大限度地提高玩家的参与度和体验感。
如果你选择了新游戏并开始玩,你会享受一次又一次地被完全击败,还是更愿意与某个略高于你水平的对手战斗,这样你就可以随着时间的推移学习和提高? 绝大多数玩家可能会选择后者。这并不意味着AI技术在现代游戏领域没有用武之地,只是意味着它的目的与我们最初期望的不同。 我们想创造的与玩家互动和对战的AI,不最厉害的,而是最令人愉悦的。
游戏AI的历史
AI是一个含义非常广泛的术语,它只表示能够从玩家的行为中学习的模型。Wolfenstein 3D早在1992年发布,甚至那场比赛中的士兵也包含了A.I.的基本形式。有限状态机(FSM)算法是一个相对简单的AI,设计师创建了一个包含所有可能事件的列表,这些都可以有机器人体验。然后设计师又针对每种场景,设定了机器人的具体反应(Lou,2017)。我们可以想象1992年,Wolfenstein 3D的开发人员考虑了敌方士兵可能遇到的所有可能情况。在他们的视野中可以打开一扇门,Blazkowicz(Wolfenstein系列剧中的英雄)可以走进视野,他们可以从后面被击中,他们可能会看不到Blazkowicz等等。开发人员会汇总这个列表,并且对于每种情况,他们会告诉机器人它应该做什么。下边是Lou的文章中一个视觉效果图:
Figure 1 (Lou, 2017)
这显然是一个简单的例子。 我们可以想象,我们构建的细节会变得越来越复杂。机器人在最终放弃之前会使用多长时间去搜索Blazkowicz?如果他们放弃了,他们应该留在原地还是回到重生点(spawning point)?该列表很快就会变得非常长且非常详细。 在FSM中,游戏的开发人员将为每种情况分配特定操作。
FSM算法并不适合所有的游戏。 想象一下,如果在策略游戏中使用FSM。如果机器人被预先编程为每次都以相同的方式响应,那么玩家将很快学会如何击败机器人。这会产生重复的游戏体验,正如您所料,这对玩家来说是不愉快的。创建蒙特卡罗搜索树(MCST)算法就是为了解决FSM的重复性问题。MCST的工作方式是首先确定机器人针对当前状况,可用的所有操作。然后,对于每个可能的操作,分析玩家可以响应的方式。之后它会考虑针对玩家所有可能的操作,它可以作出的回应等。您可以想象这棵树很增长得非常快。下图展示了MCST的工作方式:
Figure 2 (Lou, 2017)
图2突出显示了使用MCST的计算机在针对人类组件进行移动之前所经历的过程。它首先查看它具有的所有选项,在上面的示例中,这些选项要么是防御,要么是提升技能,要么是攻击。然后,它构建了一棵树,预测了此后每次潜在操作成功的可能性。上面我们可以看到成功可能性最高的选项是“攻击”(因为暗红等于更高的奖励概率),因此计算机选择攻击。当玩家进行下一步动作时,计算机将重复重复树木构建过程。
想象一下像“文明”这样的游戏,计算机可以做出大量的选择。 如果为每个可能的选择和整个游戏可能的每个场景构建详细的树,计算机将花费很长时间。 它绝不会采取行动。 因此,为了避免这种巨大的计算,MCST算法将随机选择一些可能的选项,并仅为所选择的树构建树。 这样,计算速度更快,计算机可以分析哪个选择的选项具有最高的奖励可能性。
AI在《异形:隔离(Alien:Isolation)》
在视频游戏中,一种最近比较流行的高级AI形式,是Creative Assembly公司出品的《异形:隔离》的异形。虽然对于AI如何在幕后工作可能带来一些误解,但是它以一种很有效的方式,创造了一个玩家很容易获得参与感和意外感的游戏环境。
游戏中的异形角色,使用了两个AI驱动力来控制它的移动和行为:管理者AI(Director AI)和异形AI(Alien AI)。管理者AI是一个被动的控制器,负责创造一个愉快的玩家体验。为了实现这一目标,管理者AI需要时刻知道玩家和异形在哪里。但是,它并没有与异形分享这些信息。管理者AI关注所谓的威胁测量仪(Menace Gauge),它基本上只是衡量预期玩家压力水平的一个指标,这个因素由多种因素决定,例如异形与玩家的距离,异形在玩家附近花费的时间,看到玩家所花费的时间,在运动跟踪器设备上可见的时间量等。这个威胁测量仪通知异形的任务系统(Job Systems),这实际上只是异形的任务追踪器。 如果威胁测量仪达到一定水平,任务“搜索新位置区域”的优先级将增加,直到异形远离玩家移动到一个单独的区域。
行为决策树:
在深入了解异形AI如何工作之前,重要的是先弄清楚通知决策过程的结构。 异形AI使用包含100多个节点和30个选择器节点的广泛行为决策树。想象一下下面的简单示例:
Figure 3 (Simpson, 2014)
行为树的工作方式是从左到右提问题,成功的话允许沿树继续行进,而失败将回到序列节点。过程如下:序列(sequence) - >我饿了吗?(成功) - >序列(运行) - >我有食物吗?(成功) - >序列(运行) - >没有敌人(成功) - >序列(运行) ) - >吃食物(成功) - >序列(成功) - >父节点(Simpson,2014)。在任何节点,如果其中一个节点返回(失败),则整个序列将失败。 例如,如果“我有食物吗?”问题得到的回答是失败了,它就不会检查周围是否有任何敌人,它不会吃掉食物。 取而代之的是,序列将失败,该序列会结束。
序列显然可以变得更加复杂,并且变得多层次。 这是一个更深层的例子:
Figure 4 (Simpson, 2014)
请记住,序列无论成功或失败,它都会将结果返回给它的父节点。 在上面的示例中,我们假设我们已经成功接近门,但由于门被锁而且我们没有钥匙,未能打开门。序列节点被标记为失败。 结果,行为树路径恢复到该序列的父节点。以下是此父节点可能的样子:
Figure 5 (Simpson, 2014)
所以,我们没有打开门,但我们还没有放弃。 我们的父节点将会以另一个序列供我们尝试。这次它可能会通过窗口进入。异形AI有30个不同的选择器节点和100个总节点,所以它会比这个例子指数级地更加复杂,但我希望这能让你了解异形AI的工作模式。
(未完待续)
原文地址:链接
翻译人:Sand
UWA学堂,传播游戏行业的进阶内容,欢迎您的关注
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)