下载本文的 PDF 版本 PDF

电脑游戏中的人工智能
亚历山大·纳雷克,卡内基梅隆大学客座研究员

更智能的游戏正在带来更好的用户体验。未来会怎样?

如果您一直在关注游戏开发领域,您可能听过许多这样的评论:“图形在电脑游戏中的主要作用即将结束;人工智能是下一个重要的事情!” 尽管您几乎不应该相信这些说法,但其中确实有一些道理。人工智能(人工智能)的质量是游戏迷在做出购买决定时的一个重要特征,也是一个具有巨大潜力来增加玩家沉浸感和乐趣的领域。

但是,如果您曾经研究过人工智能,您可能会对自己脑海中电脑游戏中使用的 AI 方法描绘出一幅具有误导性的图景。游戏 AI 与学术界所谓的人工智能几乎没有任何关系。在简要讨论了 AI 在游戏开发中的作用之后,我将概述当前的技术水平,讨论这个游戏开发领域的未来,并提供一些进一步信息的链接。

人工智能开发在游戏中的作用

让我们从游戏中人工智能开发的一般设置开始。技术的迅猛进步使得几乎每个游戏都是一个新的开始。即使游戏引擎的一些基础知识可能会在游戏的开发过程中保持不变,但不断的功能和时间表修订将使创建一个子系统(如 AI)变得像射击快速移动的目标一样。人工智能非常依赖于游戏环境的具体细节,这就是为什么它通常作为最后一个子系统添加的主要原因。事实上,早期的技术演示很少以它为特色。

人工智能通常被转移到开发过程的末尾还有其他原因:客户重视出色的人工智能,而糟糕的人工智能行为可能会导致媒体的负面评论。然而,游戏最终必须赚钱,而从营销的角度来看,人工智能并没有最高的优先级。人类是非常视觉化的动物,美丽的日落比对手的任何特别聪明的推理能力都更容易销售。

此外,为发行商、新闻发布会和其他炒作活动举办的早期里程碑演示不会促进包含全局/始终如一的良好人工智能,而是专注于一两个“绝对出乎意料但天才的革命性新颖复杂人工智能程序的结果”(您发现讽刺的语气了吗?),这些结果提供了必要的“哇”。虽然游戏的长期乐趣当然也很重要,但市场机制将使人工智能很难获得与图形和物理等功能相同的排名。如果游戏市场最终变成真正的 mass market,情况可能会变得更加困难。另一方面,持久在线游戏世界等市场可能会越来越多地促进对始终如一的良好人工智能的关注,因为玩家不断评估这些游戏,获得对机制的更多了解,并且他们可以不断决定付费或退出。

调查表明,开发人员允许用于 AI 计算的 CPU(中央处理器)周期百分比正在稳步增长。这可能是因为显卡的速度增长速度远快于 CPU,这释放了大量资源。无论如何,这些额外的资源对于 AI 计算来说是急需的,并为更复杂的人工智能开辟了许多可能性。

深入技术细节

人工智能技术可以应用于现代电脑游戏中的各种任务。一个使用概率网络来预测玩家的下一步行动以便预先计算图形的游戏可能处于高 AI 水平。尽管人工智能不一定总是人格化的,但电脑游戏中人工智能的概念主要与引导非玩家角色 (NPC) 有关。

但是,电脑游戏的玩家如何感知 NPC 的智能?这影响了远远超出诸如与目标相关的行为等明显问题的功能。重要的维度还包括身体特征、语言线索和社交技能。例如,一个外形美观且令人同情的 NPC 很可能被认为更聪明。但是,在接下来的讨论中,我将重点关注“核心 AI”——计算 NPC 的动作。在许多情况下,开发人员还将碰撞检测归入 AI。(在我看来,这是物理引擎的责任,所以我不会在这里讨论这个话题。)

我应该提到,游戏 AI 的目标不是计算出击败玩家的最优行为。相反,结果应该尽可能地可信和有趣。“作弊”之类的措施是完全可以接受的,只要保留了“暂停怀疑”。角色行为背后的真实洞察力并不重要。在许多情况下,过多的自主性和不可预测性实际上是不受欢迎的:谁能保证结果是令人愉快的?而且,您很可能很难将高度不可预测的结果销售给您的质量保证 (QA) 部门。

移动:寻路和转向。 NPC 必须以智能的方式在环境中移动——也就是说,不会被路上的树木卡住,采取可能到达目的地的最短路线等等。这是游戏 AI 的基本要素之一,您会期望在今天的游戏中得到妥善解决。然而,事实并非如此。尽管 AI 开发资源的大部分都投入到这个领域,但其质量的缺乏是最受诟病的问题之一。您可能会将此归咎于分配到此任务的游戏开发人员缺乏足够的 AI 知识,但主要原因是:鉴于计算资源非常有限,复杂的移动确实是一件很难做的事情!再加上诸如具有复杂地形的复杂环境、数十或数百个单位需要并行计算、动态可变形地形等等功能。

所谓的 A* 算法是计算 NPC 长距离路线最常见的基本成分。这种方法最合适的变体很大程度上取决于游戏环境的具体情况。游戏文献中充斥着关于这个主题的文章,有时很难保持观点。除了总体方法外,关注实现细节也很重要,例如巧妙的内存管理。我将在这里描述 A* 算法的基础知识,以便您了解一般方法。

该算法需要定义特定地图/环境的航点及其连接。例如,两个房间可以在各自的中间位置设置航点,并且这些航点是连接的,因为很容易通过通道从一个房间到达另一个房间。带有连接的航点在地图上展开一个网络,定义哪些区域/点可以直接从其他区域/点到达。给定起点和目的地,A* 算法尝试沿着航点连接找到最短路径。它逐步探索沿可能连接从起点开始距离越来越远的航点,直到到达目的地航点。该算法使用估计组件,该组件必须提供点与目的地之间的距离估计。因此,该算法可以将其可能路径的扩展集中在最有希望的连接上。

在许多情况下,游戏会在多个粒度级别应用寻路技术。例如,对于长距离,首先计算高粒度的路径,然后以更精细的粒度计算所选航点之间的路径。您可能可以想象,随着动态可变地形等等,事情会变得多么复杂。

为了在连接的航点之间机动,游戏应用了所谓的转向方法。避障、与团队/小组单位的协调编队移动等都在此级别处理(见图 1)。

转向方法不追求全局最优行为,而是从非常有限的角度计算 NPC 的移动。在大多数情况下,为每个与移动相关的方面计算具有方向和速度/力的向量,然后将这些向量组合成单个最终向量。例如,一个向量指向 NPC 的下一个航点,并且沿途每个附近障碍物的附加向量都垂直于该障碍物指向远离该障碍物。这些向量可以通过简单地将所有向量相加来组合,这将产生一个结果向量,然后将其解释为加速度和转向偏好。这是一个简单的示例,但可能会让您了解该过程的工作原理。

团队和编队移动可以以类似的方式合并。例如,引入每个团队的通用移动向量,该向量被组合到每个团队成员的向量集中,以及指向团队内首选位置的每个成员的向量。在许多游戏和电影中,背景中成群的鸟类或鱼类也是通过诸如此类的技术实现的。

有限状态机和决策树。 FSM(有限状态机)描述了在哪些事件/条件下当前状态将被另一个状态取代——例如,如果 NPC 受到攻击,则从攻击模式切换到逃跑模式。它主要只是一种设计概念——也就是说,游戏没有通用的 FSM 解释器,但 FSM 是通过脚本和简单的 if-then 语句实现的。

图 2 显示了一个 FSM 的示例。方框代表状态,其中涉及特定的脚本、动画方案等。起始状态是“搜索玩家”。箭头显示了在哪些条件下 NPC 的状态会发生变化,例如当玩家被发现时发生的传入事件。

FSM 是一个简单而强大的工具,用于建模 NPC 的行为。有一些扩展可以处理更复杂的行为,例如分层 FSM,以及引入随机元素的非确定性变体。

从概念上讲,决策树甚至比 FSM 稍微简单一些,并且表示分支结构,这些分支结构通常用于做出高层次的战略决策——例如,战略游戏中计算机引导的对手应该准备攻击还是专注于资源收集。树中的节点是测试条件,这些条件导致不同的子树。最终的叶节点包含最终的决策。与 FSM 类似,决策树是概念工具,可以通过简单的 if-then 语句来实现。

其他方法和人工智能研究。 许多其他技术被应用于实现游戏人工智能。其中包括影响图,这是一种用于地形分析的技术,用于识别控制边界或地图上其他有趣的点/区域/特征;以及用于人工智能的细节级别方法,这些方法处理的是没有足够的时间来计算每个 NPC 的人工智能细节的事实,并且可能例如,仅为远离玩家的 NPC 分配时间进行粗略推理。

游戏人工智能涵盖了大量的任务,并且很难概括各种方法。它们通常高度针对特定的游戏和情况——例如,确定在《神话时代》(微软)游戏中应该从哪个方向攻击敌方定居点的算法,或者《反恐精英》(微软)机器人如何在投掷手榴弹时逼真地瞄准。大多数游戏都具有强大的脚本语言,也可以在更高层次上生成个人 AI 行为,有些游戏甚至将其提供给玩家,玩家可以通过它重写部分 AI。(有关此主题的更多信息,请参阅 Phelps 和 Parks 在本期第 46 页的“使用多语言开发获得乐趣和游戏”。)

我将不再详细描述前面提到的方法,而是推荐 AI 游戏编程智慧系列 1、2 和游戏编程宝石 3、4,以获得更全面的报道。

来自学术界的人工智能方法,如遗传算法或神经网络,在游戏开发中几乎从未使用过。人们普遍认为,这些方法需要过多的资源用于开发、调整和测试。通用方法必须针对特定游戏进行大量修改和专门化才能获得任何可接受的结果;分析和理解结果行为的原因是复杂的;它们很难彻底测试;并且将它们修改为更令人愉悦的行为也绝非易事。到目前为止,很少有游戏使用学术界启发的技术,例如 Creatures (CyberLife Technologies, 2001) 或 Black and White (Electronic Arts, 2001)。

不幸的是,人工智能研究的重点通常放在对游戏不太有用的方向上。 A* 是人工智能研究提出的最成功的技术——并且几乎是唯一应用于电脑游戏的技术。研究界几乎完全关注调整其方法的计算效率,而不关心诸如动态性、实时性和与软件工程相关的属性等特征。

弥合学术 AI 研究与其在游戏世界中的远亲之间的差距提出了许多挑战。研究领域继续对电脑游戏作为应用领域持保留态度,但希望电脑游戏领域日益增长的经济重要性将继续削弱这些保留态度。游戏正在慢慢获得学术界的尊重,并且现在正在建立研究小组(包括我自己的研究小组),这些小组具有更可行的方法,专注于在实践中更相关的特征。

人工智能集成。 人工智能计算的核心不仅是行动如何确定,而且是关于环境的哪些信息是可用的以及如何访问这些信息。访问寻路航点的坐标可能问题不大,但在许多情况下,存在与游戏世界/引擎的复杂交互。例如,如果 NPC 的 FSM 需要通过转换为玩家进入视线范围的事件来做出反应,那么 FSM 代码是否会在每个 AI 周期查询此视线条件,还是游戏世界会触发特定的事件回调?游戏世界是否可以延迟回答此类 AI 查询的倍数并一起执行以优化处理时间? AI 部分是否有自己的内存,因此是否只需要提供感测数据中的更改?在设计游戏 AI 时必须回答这些问题,并且对于其不同的子部分,适当的答案甚至可能有所不同。

关于 AI 集成的一个有问题的方面是,到目前为止,用于 AI 组件的接口类型因游戏而异。人工智能接口标准工作组最近成立,旨在为基本游戏人工智能功能(如寻路、转向、有限状态机、基于规则的系统、面向目标的行动计划和世界接口)制定接口标准。希望标准化的接口将促进 AI 组件的重用,减轻游戏 AI 开发人员对低级程序的担忧,并使他们能够专注于更高级别的创意 AI 任务。

未来方向

随着可用于 AI 计算的 CPU 功率的增加,NPC 的行为将变得越来越复杂。可以减少作弊行为(如果被发现,这对于玩家来说非常烦人),并且 NPC 行为会变得更加可信。先进技术将逐步引入到游戏中,例如面向目标的行动计划,即使形式非常简单,但它已经开始在即将推出的游戏中出现。

人工智能技术的日益复杂性将有必要纳入第三方中间件。一些公司已经提供软件包,但到目前为止,成功有限。造成这种情况的原因之一是缺乏基本 AI 例程的标准接口,例如图形领域的 DirectX 或 OpenGL。随着 AI 接口标准工作组开始制定此类接口标准,这种情况应该很快就会改变。

然而,除了技术挑战之外,我们还需要看到更多努力,使 AI 功能可供设计师/艺术家使用。他们通常缺乏编程技能,需要适当的高级工具来塑造和控制 AI 行为。

展望未来,人工智能的重点将不再是优化 NPC 的行为,而是玩家的乐趣和整体体验。这远远超出了单个 NPC 的指导,而是学习什么对玩家来说是有趣的,并相应地塑造/改变游戏体验——例如,以可信的方式模拟整个城市和文明,深入的 NPC 角色,具有动态张力和玩家情感计划的自动化故事讲述等等。

对于游戏中的人工智能来说,这似乎是一个美妙的前景。只是不要太过得意忘形,并认为它将成为未来游戏的唯一决定因素。游戏具有许多伟大的技术方向,而人工智能只是其中之一——当然,它是最令人着迷的!

参考文献

1. Rabin, S., ed. AI 游戏编程智慧,第 1 卷,2002 年。(Hingham, MA:Charles River Media)。

2. Rabin, S., ed. AI 游戏编程智慧,第 2 卷,2003 年。(Hingham, MA:Charles River Media)。

3. Treglia, D., ed. 游戏编程宝石,第 1-3 卷,2000-2002 年(Hingham, MA:Charles River Media)。

4. Treglia, D., ed. 游戏编程宝石,第 4 卷,2004 年(Hingham, MA:Charles River Media)。

亚历山大·纳雷克在柏林工业大学获得博士学位。自 2002 年以来,他获得了德国研究基金会 (DFG) 的 Emmy Noether 奖学金,并且是卡内基梅隆大学的客座研究员。他的主要研究兴趣包括为目标驱动的智能代理生成和执行行为计划。他活跃于电脑游戏的应用领域,并担任国际游戏开发者协会 (IGDA) 人工智能接口标准委员会 (AIISC; http://www.ai-center.com/home/alex/) 的主席。

A*:经过尝试和测试的寻路解决方案

A* 是 Dijkstra 最短路径算法的改进版本。1,2 虽然它可以用于一系列搜索问题,但其主要应用领域是寻路。对于那些不熟悉 A* 算法的人,这里有一个更详细的解释。

如随附文章中所述,地图由一组位置节点/航点表示,其中一些节点/航点具有一定距离的连接。给定起始节点和目标节点,该算法必须找到这两个点之间的最短路径。

该算法从起始节点逐步搜索到目的地。该算法维护两个列表:开放列表和关闭列表。 开放列表包含所有新的节点,这些节点可以在下一步从已访问的节点访问。 关闭列表包含所有已访问的节点。 开放列表使用起始节点初始化。一旦目的地节点添加到开放列表,算法就找到了最短路径。 关闭列表开始时为空。

开放列表的节点根据公式 f(n) = g(n) + h(n) 进行排名,其中 g(n) 是从起始节点到节点 n 的沿已访问连接的最短距离; h(n) 是从节点 n 到目的地节点的剩余距离的估计值。重要的是,估计值必须小于或等于沿可能连接的实际最短距离。

在该算法的每个步骤中,从开放列表中选择 f(n) 最小的节点,并将其移动到关闭列表。可以通过从所选节点直接连接到达并且不在关闭列表中的所有节点——即,它们之前没有被访问过——以以下方式处理:如果节点尚未在开放列表中,则将其放入其中。如果它已经在开放列表中,则需要重新计算其 f(n)。图 1 可视化了算法的一个步骤。

到达目的地节点后,可以从目的地向后计算实际路径。为了知道要从关闭列表中选择哪些前任节点来链接回起始节点,在搜索目的地期间,会为每个访问的节点记住父节点。节点的父节点是在将节点添加到开放列表时选择的节点(或者节点已在开放列表中,并且重新计算 f(n) 会产生比以前更小的值)。

在 Policy Issues Almanac 网站上可以找到包含更多详细信息的精彩教程。3

参考文献

1. Hart, P. E., Nilsson, N. J., 和 Raphael, B. 用于启发式确定最小成本路径的形式基础。 IEEE Transactions on Systems Science and Cybernetics 4, 2 (1968), 100–107。

2. Dijkstra, E. W. 1959. 关于图中两个问题的注释。 Numerische Mathematik 1 (1959), 269–271。

3. Lester, P. 初学者 A* 寻路。 Policy Issues Almanac:请参阅 http://www.policyalmanac.org/games/aStarTutorial.htm

游戏中的人工智能

国际游戏开发者协会人工智能接口标准工作组
http://www.igda.org/ai/

Steven Woodcock 的游戏人工智能资源
http://www.gameai.com

游戏人工智能文章和研究
http://www.aiwisdom.com

Amit Patel 的游戏编程和 A* 信息
http://www-cs-students.stanford.edu/~amitp/gameprog.html#paths

Craig Reynolds 关于转向的资源
http://www.red3d.com/cwr/steer/

EXCALIBUR 项目(面向目标的行动计划)
http://www.ai-center.com/projects/excalibur/

“电脑游戏——人工智能研究的福音还是祸害?”
(一篇关于人工智能研究是否做出相关贡献的文章)
http://www.ai-center.com/references/nareyek-04-gameairesearch.html

 

acmqueue

最初发表于 Queue vol. 1, no. 10
数字图书馆中评论本文





更多相关文章

马克·鲁西诺维奇、艾哈迈德·萨利姆、圣地亚哥·扎内拉-贝格林、约纳坦·宗格 - 智能的代价
法学硕士对幻觉、提示注入和越狱的脆弱性对其广泛采用和负责任的使用构成了重大但可以克服的挑战。我们认为这些问题是固有的,当然在当前的模型世代中是这样,并且可能在法学硕士本身中也是如此,因此我们的方法永远不能基于消除它们;相反,我们应该应用“纵深防御”策略来减轻它们,并且在构建和使用这些系统时,假设它们有时会在这些方向上失败。


索尼娅·约翰逊-余、桑克特·沙阿 - 你不了解人工智能
长期以来,很难确定人工智能到底是什么。几年前,此类讨论会演变成数小时的草绘维恩图并试图绘制出人工智能的不同子领域。快进到 2024 年,我们现在都知道人工智能到底是什么。人工智能 = ChatGPT。或者不是。


吉姆·瓦尔多、索林·布萨尔 - GPT 和幻觉
本实验的结果支持以下假设:基于法学硕士的 GPT 在更流行的提示和已达成普遍共识的提示下表现良好,但在有争议的主题或数据有限的主题上表现不佳。应用程序响应的可变性强调,模型依赖于其训练数据的数量和质量,类似于依赖于多样化和可信贡献的众包系统。因此,虽然 GPT 可以作为许多日常任务的有用工具,但它们对晦涩和两极分化主题的参与应谨慎解释。


埃里克·梅杰 - 虚拟阴谋诡计:将大型语言模型用作神经计算机
我们探索了大型语言模型 (LLM) 如何不仅可以充当数据库,还可以充当动态的、最终用户可编程的神经计算机。这种神经计算机的本机编程语言是一种受逻辑编程启发的声明性语言,它形式化和外部化了思维链推理,因为它可能发生在大型语言模型内部。





© 保留所有权利。

© . All rights reserved.