Goldeneye 007是历史上最重要的游戏之一。 她决定了下一代游戏机游戏的进一步发展,并为第一人称射击游戏进入游戏机市场铺平了道路。 快速发展到20多年前,以了解任天堂上最受欢迎的64种游戏之一如何实现AI敌人和朋友,甚至在今天您仍可以从中学习到一些东西。
关于游戏
自1997年发布以来,
GoldenEye 007不仅决定了这一代人的命运,而且超出了所有人的预期。 稀有,任天堂本人,甚至是Bond特许经营权MGM的所有者,对这款游戏都不抱太大希望。 在电影发行两年后和主机上市一年后发行,它注定要失败,但在平台的整个生命周期中成为销量的第三名(八百万张),仅输给了
Super Mario 64和
Mario Kart 64 。 更不用说她在1998年获得了罕见的BAFTA奖和年度开发商称号。
这款游戏为我们留下了巨大的遗产:它为下一代第一人称射击游戏设定了标准,尤其是在AI行为方面:具有巡逻模式的角色,敌人要求增援的人,恐惧中逃离的平民,通畅的导航和寻找方法,丰富的动画集,游戏过程中发生的动态属性等等。 她不仅为世代树立了标准,而且还影响了超越她的游戏
-Half Life ,
Crysis ,
Far Cry等。
我不仅对人工智能的工作方式感兴趣,而且对地狱的开发人员如何使其工作感兴趣。 我谈到了许多AI创建技术,包括状态机,导航网格,行为树,计划技术和机器学习,但是在
GoldenEye发行之时,它们还不是游戏行业的既定实践。 此外,Nintendo 64已有25年的历史了,与现代机器相比,它具有最少的处理器和内存资源。 您如何创建可以在如此严重的限制下在硬件上有效运行的AI和游戏系统?
为了找出真相,我联系了最好的秘密线人:
David Dawke博士 。 大卫在开发团队和
GoldenEye 007及其精神追随者
完美黑暗中发挥了重要作用。 在采访中,我们讨论了NPC智能,警报行为,传感器系统,导航工具,性能平衡等。 因此,让我们开始了解所有这些安排。
建筑结构
基本上,由于两个人的
缘故 ,
GoldenEye成为了现在的样子:制片人和游戏总监Martin Hollis以及游戏和引擎程序员Mark Edmonds。 最初,Hollis受到了像
Virtua Cop这样的游戏的启发,其中敌人冲入了相机框架,向玩家射击,然后对玩家的命中点进行逃跑,隐藏或动态反应。 但是,霍利斯(Hollis)试图创建一种更具吸引力和反应性的AI,超越了1993年的
DOOM标准。
“对我们来说,向玩家展示AI很重要。 如果玩家没有注意到,那么复杂的人工智能毫无意义。 您的NPC可以通过灵感来激发生命的意义,但是如果玩家足以靠在拐角处并在游戏中领先敌人,玩家将不会注意到这一点。 也就是说,智力应该是显而易见的。 人工智能必须展示游戏机制。 AI应该显示级别结构。 而这一切真的应该给游戏本身带来一些新的东西”
[Martin Hollis,欧洲开发人员论坛,2004年。]
这种方法导致了后卫和巡逻队的出现,迫使玩家在传球上采取更多战术。 使用视觉和听觉传感器,使AI对玩家的行为做出反应,或者在玩家偷偷摸摸时不注意到他。 此外,友好而平民的角色对玩家的存在做出了反应,帮助了他或逃跑了。
当David Dooke进入该项目时,埃德蒙兹已经创建了用于3D移动,渲染和简单AI行为的引擎的大多数基本组件。 但是,在该项目的过去两年中,出现了AI和其他基本游戏系统行为的主要部分。 游戏变得不再专注于玩家,AI出现了巡逻模式,过渡到警报状态,能够使用控制终端,洗手间等等。
为了实现这一目标,马克·埃德蒙兹(Mark Edmonds)在C代码库中创建了一个完整的脚本系统,该系统在杜克(Dook)和其他团队成员尝试想法时不断进行更新和更新。 通常,向Edmonds提出了一个新想法,Edmonds评估了实现该想法的可能性并将其添加到引擎中。 该脚本系统允许开发人员根据非常特定的上下文以智能行为的顺序链接许多预定义的动作。 一旦开始执行下一个“原子”行为,这些行为将导致它们自己的线程尽快执行并释放资源,然后检查是否可以再次执行升级。 这种脚本化的行为不仅用于友善和敌对的角色,而且还用于打开时间的门和大门之类的系统,以及在控制玩家和世界上其他角色的每个级别的开头和结尾处的电影屏幕保护程序。
最初由modder Mitchell“ SubDrag” Kleiman开发的
GoldenEye编辑器对这些AI行为进行了反向工程。 它们变成了可编辑的“动作块”,您可以从中创建自己的行为。 敌人的守卫可以对多种感觉信号做出反应:当击中他们时,他们会注意到一个敌人,另一名守卫在视野范围内丧生,以及附近听到的枪声。 另外,NPC可以决定投降,这取决于概率,而更多取决于玩家是否瞄准他们。 此外,如果AI知道玩家不再瞄准他,他的行为就会改变。 如下所述,这种行为所需的视力和听力测试是在非常有限且截断的过程中执行的,但是,在较弱的N64硬件上却产生了令人印象深刻的结果。
视情况而定,警卫可以执行许多不同的行为,包括侧身迈步,向侧面滚动,蹲下射击,边走边跑步,甚至投掷手榴弹。 这些动作高度依赖于玩家的相对位置及其当前行为。
实际上,这是一个相当简单的状态机(有限状态机),其中AI处于某种行为执行状态,而游戏中的事件并没有迫使他继续前进。 后来,在《
半条命》中使用了相同的原理,《
半条命》是在
GoldenEye (1998年)发行一年后推出的,Rare的开发人员意识到他们的游戏对广受欢迎的射击游戏Valve的影响:
“最重要的是,我记得1998年在英国工业展览会ECTS上与Valve的同事会面。 他们开玩笑说,GoldenEye使他们重制了《半条命》中的一堆东西。 他们决定做对了。”
David Doke,GamesRadar,2018年。
AI表现
用于控制AI的Goldeneye引擎的两个最重要的元素是相机和称为“ STAN系统”的东西。 为了简化渲染,将甚至与Severnaya曲面一样大和开放的关卡都划分为“房间”-较小的块。 这有助于保持理想的性能水平,因为只能渲染相机金字塔中的房间。 但是正因为如此,AI通常在相机渲染角色之前才执行其基本行为。 这有助于降低计算成本,同时提供有趣的功能,我将在下面进行讨论。
但是与房间和渲染行为相关的最重要的系统是STAN(这是Stand的简单缩写)。 Martin Hollis开发的STAN对象是用于单个房间的多边形网格,标记为用作STAN。 所有这些对象“知道”它们位于哪个房间或走廊中。 如果AI角色站在某个STAN的顶部,则只有当他所在的STAN位于当前或相邻房间时,他才能看到玩家。 系统执行了简单的检查,以查看两个STAN是否可以“看到”对方。 这样就可以进行成本更低的可见性测试,而无需进行3D射线追踪,因为这将需要更多的设备资源。 该系统运行异常良好,但在某些特定情况下会“崩溃”。 一个例子是大坝上的守卫直到走近他们才看到玩家:楼梯顶部的STAN只能看到其底部的STAN,也就是说,玩家可以在附近执行任何动作而不会被注意到。 第二个例子是山洞中的螺旋形路径,NPC看到了它们前面的路径,但没有看到深渊的另一侧。
通过在所有地图上放置STAN,可以基于其多边形构建导航系统。 正如我之前在AI 101中所述,现代游戏通常使用导航网格物体来创建一个完整的多边形表面,该表面定义了角色可以在地图上移动的位置。 以其现代形式,导航网格仅在1997年出现,因此对于
GoldenEye来说,开发人员采用了STAN系统并在其顶部添加了称为PAD的对象。 PAD位于STAN上,但同时它们彼此连接,本质上创建了用于导航网格的图形。 角色知道他们所在的房间,并且如果他们对附近的骚动做出反应,或者在当前房间内沿着STAN移动到感兴趣的地点,则可以搜索目标房间的PAD。
所有这些都通过听力传感器得到了补充。 他们对距声源一定半径内的字符的邻近程度进行了简单检查。 他们还考虑了武器的类型和射速。 带消音器的PP7没引起注意,标准PP7很大,KF7苏维埃甚至更大,连发射击将半径提高到最大水平,只有火箭发射器和坦克炮才被认为更大。
适应性变化
所有这些AI工具和系统都给人留下了深刻的印象;它们展示了开发人员如何有意地寻找聪明有效的方法来创建他们想要在游戏中看到的特定元素。 但是,
GoldenEye还创建了许多其他元素,这些元素几乎针对每个级别都是单独创建的。 NPC不会躲藏在障碍中,因此需要在“筒仓”和“火车”等级别上使用独特的脚本,以便角色站在某些PAD旁边并根据他们是蹲下还是站在高处做出反应。
NPC不知道其他角色在地图上的位置,因此在玩家需要保护Natalya Simonov的级别上,不仅需要确保她的动作,而且还必须创造特殊的行为,以便敌人不仅可以向她射击,还可以瞄准玩家。 为了实现这样的角色,例如科学家在交出武器时将其冻结在适当的位置,或者扮演玩家命令他的鲍里斯·格里申科,直到他让他看不见,还需要其他在特定情况下起作用的行为。 许多主要情节角色必须为每个级别编写自己的AI行为。 例如,Alec Trevelyan在他参与的六个级别上都有不同的行为:设施,雕像,火车,控制,洞穴和摇篮。
此外,有必要解决关卡设计和游戏节奏方面的问题。 在平衡AI角色的位置方面,Severnaya的外部关卡非常困难,因此开发人员编写了关卡脚本,该脚本创建了雾半径以外的敌人并直接向玩家运行。 但是,如果敌人离得太远,他们只会关闭并在将来重新激活。
我最喜欢的
GoldenEye功能是,如果玩家没有足够快地通过关卡,他将因大声而激进地使用武器而受到惩罚。 记住,我说过,如果尚未渲染NPC,它们是否会激活其AI行为? 如果NPC听到了声音,但尚未渲染,他将创建自己的克隆,以便他检查声源,并继续创建克隆,或者直到兴奋消失,或者相机没有渲染角色。 这在存档(Archives)等关卡中尤为明显,在该关卡中,由于不断创建克隆,玩家很容易在关卡开始时掉入审讯室的陷阱中。
为了提高整个游戏流程的速度,并使控件适应Nintendo 64控制器不够准确的问题,通过测试对动画的过渡和持续时间进行了精心调整,为玩家提供了更好的机会来确定敌人的优先级或使用机制进行自动或精确瞄准。
总结
随着
GoldenEye的发布
,其渲染和AI工具链非常适合随后的游戏。 瑞尔(Rare)的Perfect Dark精神继任者使用相同的系统,并部分进行了创新补充。 如上所述,
GoldenEye NPC仅可以使用特殊规定的行为隐藏在掩体后面,但是在“
完美黑暗”中,敌人已经能够计算掩体位置,包括由反重力物体创建的动态掩体位置。 另外,由于通过对顶点进行着色计算出的照明实验,视觉传感器可能会降低视力。 Free Radical Design后来将相同的过程用于其
Timesplitters特许经营权,因为该工作室是由
GoldenEye开发团队的几名成员创立的。 在该系列游戏中,对STAN / PAD系统进行了补充,以更好地支持垂直级别的体系结构。
尽管成立20周年,
GoldenEye还是设定了《半条命》所采用的标准,如今,许多其他射击游戏专营权的创造者都在尝试复制它们。 我希望阅读完本文后,您将理解游戏中使用的系统的全部深度以及创建最终产生如此巨大影响的项目所需的投入和技能水平。