如果您以人工智能为例,听起来像什么? 它会如何运作? 如果您认为这听起来像机器人,冷漠和不人道,我不会怪您。 如果您要查看流行媒体上对AI的大多数描述,《星际迷航》的数据,《终结者》的任何内容,《 2001年的哈尔》等等,似乎总是有一种方法可以区分一系列零和一来自实际的人。 他们听起来不同,想法不同,行为不同。 还是他们? 几十年来,程序员,计算机科学家,艺术家和设计师一直致力于游戏。 这些游戏中有许多使玩家与计算机化的敌人对抗。 这些关于幻想和现实敌人的表述开始简单而令人难以置信。 但是随着时间的推移以及技术和AI研究的进步,这些虚拟模拟已经发展到在计算机屏幕上看起来几乎像您或我一样真实的地步。 这是怎么发生的,我们如何到达这里? 自然语言处理,寻路和许多其他领域的进步。 我将重点关注的是行为。 即,在引入NPC的地标性游戏中NPC行为的历史进步。 从第一个计算机游戏Nimatron到第一个FEAR游戏,我将介绍那些在游戏中提高NPC行为的游戏,涵盖需要新进步的愿望,进步本身以及它们如何改变游戏格局。
早期历史:Nimatron
到了1940年,第一个以尼玛特龙(Nimatron)为名的电脑游戏向人们挑战了Nim游戏。 自第二次世界大战仍在发生,计算机和其他军事技术仍被视为强悍而危险的战争机器以来,尼玛创的目标是更好地描绘军事发展的新技术。 由于当时电视机不普及,因此使用灯阵列来模拟火柴,它不适合视频游戏的典型定义,但不适合计算机游戏,而是现代视频游戏的祖父。 如果与不熟悉用于赢得Nim的算法的玩家对抗,Nimatron将使用机电继电器执行允许其赢得比赛的算法。 这是计算机对手对人类玩家做出决定的第一个例子。 因此这将是我们的起点。 不幸的是,再过30年将不会再有进步。

AI以简单模式进入视频游戏

1971年,诺兰·布什内尔(Nolan Bushnell)和泰德·达布尼(Ted Dabney)发行了《计算机空间》,这是第一个商业视频游戏和第一个街机游戏。 基于第一个视频游戏《 太空大战》! 是一款2D两人太空主题射击游戏,Bushnell和Dabney想要提供Spacewar的商业版本! 但买不起这样做所需的设备。 相反,他们决定制作一个更便宜的版本。 这导致在视频游戏中包含了第一个计算机敌人。 两个微小的太空船,它们会绕着玩家的船向四周射击。 尽管敌舰依赖于硬编码的移动方式和时机,但能够定位玩家的大致方向并向玩家的方向射击是一种聪明的行为。 因此,Computer Space不仅向公众介绍了视频游戏,还向公众表明了计算机可以成为游戏中的参与者。 在计算机空间之后,NPC在1980年之前将表现出类似水平的敌人情报。
吃豆人:有态度的鬼魂
Namco的Pac-man于1980年发布,其中包括当时业界最复杂的AI之一。 想要创建一个每个人都可以享受的《吃豆人》设计师的视频游戏,必须对敌人的设计公式进行某些更改。 他们包括四个不同颜色的幽灵敌人,并赋予他们不同的导航行为以改变他们的攻击方法(因为四个幽灵只是跟随吃豆人而游玩,看着他们。) 此外,该游戏使用了改变鬼的通用状态来进一步改变它们的行为。 除非吃了超级颗粒,否则散布,攻击和逃跑的状态将大约每七秒更改一次,并且随着时间的推移最终将默认为攻击状态。 吃豆人是视频游戏中首次使用的有限状态机模型。 得益于基本NPC行为的介绍以及不断变化的有限状态,吃豆人取得了巨大的成功,直到今天仍然受到人们的喜爱。

GPU:真正的英雄
不幸的是,直到90年代末,有关NPC行为的AI才被重新审视。 这主要是由于技术限制,因为直到1996年图形才由CPU处理,而NPC行为AI或一般大多数AI的处理能力却很少。 随着3D GPU的出现,大大减轻了渲染3D图形的繁重工作,这些繁琐的工作使许多CPU崩溃,从而为计算更复杂的游戏机制以及更重要的是,更复杂的AI留下了更多的处理能力。
有意义并共同行动

一旦CPU终于将3D图形的信标从脖子上移开,世界就开始看到新的AI行为,因为Valve在1998年发布了Half-Life,其革命性的NPC行为震惊了所有人。 在开始《半条命》时,Valve想要制作一个故事,讲述玩家可以完全控制主角的故事。 这意味着摆脱过场动画,并用与NPC的实际交互来代替过场动画。 这是以前从未做过的事情,需要一种新的方法来编写游戏和编写NPC行为编程。 在玩家仍在控制Freeman的情况下,Valve使用了玩家触发的脚本化AI场景,从而产生了更强的沉浸感。 为了更好地适应脚本化的过场动画并产生更大的沉浸感,Valve在NPC行为中添加了感应技术,以使NPC看起来更加真实。 这是NPC第一次对玩家做出反应,因为他们可以“看到”他,而不仅仅是因为他存在。 对玩家的这种感知使互动更加可信,因为您(玩家)可以控制它们。 如果玩家厌倦了持续不断的NPC,玩家可以离开或按下按钮,这会烦扰NPC。 敌人的NPC也会做出反应。 如果他们的健康状况不佳,他们将逃跑。 《半条命》也将小队战术引入了NPC行为。 一旦玩家开始遇到士兵,玩家就会发现士兵很愚蠢。 他们有能力进行侧翼,掩护和奔跑,以使球员始终处于防守状态。 与现代游戏中的敌人NPC相比,《半条命》的士兵是战术天才。 所有这一切,同时对戈登·弗里曼大喊威胁和侮辱。 似乎“半条命”是引发NPC行为设计之火的火花,因为在“半条命”之后,进步会背靠背发生。
窃取感官

在《半条命》发行后仅几个月,一款名为《小偷:黑暗计划》的游戏将NPC的感觉推到了更远。 为了制作第一个3D隐形游戏,Looking Glass Studios必须采用《半条命》中引入的基本概念,将其提高到11。为了拥有强大的隐形机制,NPC的感觉必须尽可能接近人类。 。 与《半条命》中的NPC知道玩家在哪里或不知道玩家在哪里相比,《小偷》中的NPC拥有一种怀疑机制,可以不受环境因素影响,并且具有频谱范围。 此外,由于玩家本应在一组守卫周围溜达,所以当守卫中有人发现可疑物或看见玩家时,他们需要一种相互交流的方式。 这意味着要改进基于小队的系统,而不是像《半条命》中那样用于战斗,而是要用于信息共享。 这意味着不仅单个NPC必须采取令人信服的行动,而且现在整个NPC组也必须看起来很自然。
行为演变

在Halo 2取得巨大成功之后,正是在2004年,现代AI实践开始变得更加标准化。Bungie希望使《公约》中极为多样的敌人感到像是一个真实的,有思想的,不同物种的团队,而不是同一个敌人在不同的皮肤上。 按照当时的实践,要使各种生物分类令人难以置信,Bungie必须结合上下文,优先级和刺激行为进行行为树的AI设计。 行为树是树的一种类型,或者是有向无环图,其中基于世界的状态(NPC,玩家角色等),树的某些分支或路径由某个NPC优先于其他分支或路径来选择。 NPC执行的一个动作或一组动作是路径的终点。 上下文是某个NPC所处的世界状态(其健康状况,类型,玩家的行为等)。 这些上下文会禁用或启用行为树中的某些分支,因此NPC只能选择对其实际可用的选项。 如果玩家不在NPC旁边,则NPC甚至不会考虑进行近战攻击。 上下文告诉NPC它可以做什么,而优先级告诉NPC它应该做什么。 根据NPC周围发生的情况,NPC可以在行为树上为其打开多个分支,为特定分支赋予某些优先级或权重,从而使NPC可以针对其动态环境快速采取不同的行动。 例如,如果al狼看到玩家处于空旷状态,它将试图阻击玩家。 最后,刺激行为是改变NPC优先级的方式,以便它们可以更好地应对其环境中的某些变化。 一个例子是,当玩家角色杀死他们的指挥官时,所有的咕unt声都从玩家角色跑出来。 与有限状态机规定的较早的NPC行为系统相比,所有这些部分组合在一起构成一个复杂的系统。 通过这些交织系统的复杂性,玩家可以看到the弱的咕unt声,狡猾的狐狼和勇敢的精英之间的差异。 尽管这种AI行为编程方法具有很高的可变性和普遍性,但Monolith创建了更强大的AI行为原型,尽管不那么常见。
计划未来
在不到一年的时间里,NPC行为又发生了一次革命,让NPC进行了计划。 Monolith希望创建一个小队射击游戏,使小队可以在每次遭遇中动态,快速且独特地行动。 为了使小队战术可信,控制敌人的AI有两个部分:一个小队部分,NPC可以共享每个人拥有的某些知识,并用来为NPC小组制定行动计划,以及个人部分,个人在这里收集知识并制定自己的计划。 这将使单个NPC可以作为一个整体来行动和协调攻击,但也可以让单个人在没有其他人的情况下有效地行动。 此外,AI使用规划模型和简单的有限状态机来使NPC实现其目标(最终杀死玩家角色)。 NPC实际上会提前考虑要完成的任务,如何完成任务,制定计划并根据情况的变化制定新计划。 如上所述,与大多数现代游戏和Halo 2中使用的更常见和更复杂的行为树相反,使用计划系统可以很好地实现几个目标和行动。 最后,由于缺少大量的编码序列,因此游戏体验几乎无法重复。

当我们回顾电子游戏中NPC行为的发展历史时,我们可以看到我们已经走了多远:从Nimatron的卑鄙算法,计算机空间的简单模式,吃豆人的有限状态机,感官和《半条命》和《 Theif:The Dark Project》中的策略,《光晕2》中的行为树以及FEAR中的计划尽管FEAR是迄今为止NPC行为技术的最后一项重大进步,但仍有一些进步主要依靠行为树并在其上分层控制AI。 因此,当我回顾行为人工智能的发展速度时,并知道学习,视觉和自然语言处理等其他人工智能方面的发展也同样快时,我不敢相信人们仍然认为人工智能的行为会有所不同比人类
本文是与AM Darke一起在UC Santa Cruz举行的《数字游戏历史》课程的要求而发布的。 请客气。