返回行业情报

90年代复古FPS敌人AI的设计哲学

Solo Developer on Recreating the Late-'90s Console Shooter Enemy AI for an FPS

独立开发者Replicant D6分享其复古FPS游戏Agent 64中敌人AI的设计思路。他刻意复刻90年代末主机射击游戏的手感与任务结构,强调敌人AI的可读性优于智能性,保留缓慢反应和夸张动画,让玩家有充分反应时间。高难度通过增加目标而非提升血量来实现,敌人会改变目标甚至阵营。他认为现代FPS应始终给玩家预警和反应机会。

深度解读

在2026年还在用Unity手搓一套“1997年水平”的敌人AI,恰恰是对当下3A射击游戏AI军备竞赛最尖锐的反驳——独立开发者Replicant D6在他的复古FPS《Agent 64: Spies Never Die》中证明,让战斗“好玩”的关键从来不是让敌人更聪明,而是让敌人更可读

被遗忘的“手感”与“结构”:90年代末主机射击游戏的两大遗产

Replicant D6在采访中明确表示,他想从90年代末主机射击游戏(以GoldenEye 007Perfect Dark为代表)中保留的东西是两样:射击手感和任务结构。他用的词是“very distinct”和“hasn't been done in decades”——这不是怀旧滤镜,而是一个技术判断:那个时代的射击反馈、武器重量感、命中判定节奏,在后来追求拟真和物理模拟的浪潮中被系统性抛弃了。

任务结构方面,他强调的是“strong replay value”。90年代末的主机FPS(尤其是Rareware的作品)普遍采用目标导向+难度分层的设计:高难度不是简单加血加伤,而是增加目标、扩展地图区域、改变任务流程。这种设计让同一关卡在不同难度下几乎是不同的体验,而不是同一体验的数值拉伸。

这两点合在一起,构成了《Agent 64》的设计地基:一个手感上刻意“过时”、结构上刻意“复杂”的射击游戏。

“1997年的尖端AI”:慢反应、夸张动画、可预测的混乱

Replicant D6对敌人AI的描述中最关键的一句话是:

The slow reactions and animations of the enemies gave you plenty of time to move around and react.

这句话直接点出了90年代末FPS敌人设计的核心逻辑——敌人的“慢”不是技术限制的副产品,而是战斗节奏的设计工具。敌人反应慢,玩家就有时间移动、换位、规划下一步;敌人动画夸张,玩家就能在第一时间读懂敌人处于什么状态(发现你了、正在攻击、正在逃跑、正在呼叫增援)。

他还抛出了一个更具挑衅性的判断:“the AI of the time is barely less than what we still encounter today.” 换句话说,今天大多数FPS里的敌人AI,在行为复杂度上并没有比1997年的GoldenEye高出多少。真正的差距不在AI的“智能水平”,而在设计师如何编排这些行为。

Quality NPC behaviors are more dependent on designers' creativity than on any real hard technical limits.

这是一个对当下3A AI叙事的直接否定:你不需要更复杂的行为树机器学习来做出好敌人,你需要的是更好的设计判断。

“我没有试图让它们聪明”:可读性优先于智能的设计哲学

采访中最核心的一句话是:

Simple: I didn't try to make them intelligent. The real trick to fundamentally fun combat is not to make enemies actually intelligent, but to instead make them easily readable while still having a degree of unpredictability.

这是整个访谈的设计纲领。Replicant D6明确拒绝了“敌人应该像真人一样聪明”这个流行假设,转而追求可读性(readability)和有限不可预测性(a degree of unpredictability)的组合。

可读性意味着:玩家能看到敌人、理解敌人当前状态、预测敌人下一步大概会做什么。不可预测性意味着:敌人不会像机器人一样每次都做完全相同的事,偶尔会有意外行为(比如被逼到角落时恐慌、逃跑、去找队友)。

这个组合的效果是:玩家感到自己在与“有意图的对手”交战,而不是在与一个状态机交战——尽管底层确实就是一个状态机。

状态机、感知限制与“秘密酱料”:一个独立开发者的技术选择

在技术层面,Replicant D6透露了几个关键信息:

- 引擎是Unity,但“most of the logic code is entirely custom; no third-party plugin was involved.” 这意味着他没有用任何现成的AI中间件(如Behavior DesignerNodeCanvas),而是自己手写了状态机系统。 - 敌人拥有视觉听觉两种感知通道,这与Doom以来的FPS敌人设计一脉相承。 - 敌人的行为状态包括:嘲讽(taunt)、攻击(attack)、寻找队友(seek teammates)。 - 他刻意限制了敌人的感知范围和集结(rally)能力,否则“they would all alert each other across the entire map”——这是对90年代末FPS中常见的“全地图警报连锁”问题的直接回应。

他把自己的状态机编程方式称为“my own secret sauce”。考虑到这是一个单人开发的复古FPS,这套自定义逻辑代码很可能是整个项目中最核心的技术资产。

动画即AI:为什么夸张的受击反馈比复杂的决策树更重要

Replicant D6在谈到动画时,提到了一个关键的设计约束:他无法像Rareware那样制作“overly flowery and detailed death animations”,所以转而追求“much snappier animations”,并强调“I just focused on how it felt”。

这揭示了一个常被忽视的事实:在90年代末的主机FPS中,动画本身就是AI系统的一部分。敌人的受击反应、死亡动画、发现玩家时的转身动作,都是玩家读取战斗状态的信息通道。动画越夸张、越清晰,玩家就越容易理解发生了什么。

他用了一个类比:“Kinda like how modern action movies don't overdo it compared to older ones.” 这个类比可以反过来理解:现代动作电影(和现代FPS)追求的是流畅、写实、无缝,但代价是失去了老派动作片中那种“每一拳都看得清清楚楚”的可读性。

难度设计:改变目标,而不是改变数值

《Agent 64》的难度设计遵循90年代末主机FPS的传统:高难度增加目标、扩展任务,而不是简单提升敌人血量和伤害。Replicant D6进一步透露,敌人行为也会随难度和目标变化:“Depending on the difficulty and objectives, they will prioritize different targets or sometimes even change allegiances.”

“Change allegiances”这个细节值得注意——这意味着敌人不只是玩家的靶子,他们有自己的阵营逻辑和优先级判断。在某些任务条件下,敌人可能会改变攻击目标或立场。这种设计在今天的FPS中极为罕见,因为它要求敌人具备更复杂的目标选择逻辑,而不是简单的“看到玩家就开枪”。

“永远给玩家一个反应机会”:一条被现代FPS遗忘的设计铁律

采访最后,Replicant D6给出了他对现代FPS开发者最直接的建议:

Always give the player some heads-up. Always give an opportunity to react before being dealt damage. Even if the opportunity is very short. It should always be possible, and feel possible, to finish a level without taking any damage.

这是一条极其清晰的设计原则:玩家在受到伤害之前,必须有一个可感知的预警窗口。这个窗口可以很短(比如敌人抬枪的0.3秒),但它必须存在,而且必须让玩家觉得“我本可以躲开”。

这条原则直接挑战了现代FPS中常见的“屏幕边缘变红=你正在被射击”的反馈模式。在那种模式下,玩家往往在意识到自己被攻击之前就已经掉血了。Replicant D6的立场是:那不是难度,那是设计失败。

他还补充了一个更高标准的要求:“It should always be possible, and feel possible, to finish a level without taking any damage.” 这意味着游戏必须允许无伤通关,而且玩家必须能感知到这种可能性。这不是为了速通玩家,而是为了让所有玩家都感到自己对战斗结果有控制权。

所以呢:这对行业意味着什么

Replicant D6的这套设计哲学,对当下FPS行业提出了几个不舒服的问题:

第一,AI的“智能”是否被过度追求了? 当3A工作室投入大量资源开发更复杂的敌人行为树、更逼真的战术决策、更自然的团队协作时,玩家体验到的战斗是否真的比1997年更好?Replicant D6的答案是:不一定,因为“智能”不等于“可读”,而不可读的智能只会让玩家感到挫败。

第二,独立开发者能否在AI设计上做出3A做不到的事? Replicant D6用Unity手写状态机、刻意限制敌人感知、优先打磨动画可读性——这些选择在3A项目中往往因为“不够先进”而被否决。但正是这些选择,让《Agent 64》的战斗有可能比大多数现代FPS更清晰、更公平、更有掌控感。

第三,“复古”是否只是一种美学选择? 在《Agent 64》的案例中,复古是一种系统性设计决策:慢反应、夸张动画、有限感知、目标导向的难度分层——这些不是像素滤镜或CRT着色器能替代的。它们是一整套关于“玩家应该如何在战斗中感受自己”的哲学。

Replicant D6没有说现代FPS是错的。但他用一款单人开发的复古射击游戏证明了一件事:让敌人变笨,让反馈变清晰,让玩家觉得自己有机会——这些“过时”的设计原则,可能比任何AI技术突破都更能让射击游戏变得好玩。

行业动态游戏开发敌人AI复古FPS独立开发Unity