深度解析塑造未来的技术文章。

Deus Ex涌现式玩法:五个误区实测

Deus Ex如何在2000年的硬件上实现涌现式玩法?我们逐一验证关于模拟优先设计的五个常见误区。

低多边形游戏关卡,箱子堆叠到达窗口,同一空间中呈现多条路径。
一个门口,六七条路线:关卡提供的是可能性,而不是答案。

发布二十五年后,涌现式玩法依然是人们解释《Deus Ex》为何重要时最常提到的东西。你把箱子堆起来够到窗户。你把一个守卫引过十分钟前刚被你黑掉的炮塔。你用一枚原本留给Boss战的火箭弹把门炸飞,而那场Boss战因为这段绕路再也不会发生。这些都不是剧本写好的,而是从一小组系统中自然冒出来的:物理、AI感知、开锁、爆炸。它们被允许在没有人全程监督的情况下相互作用。

围绕这款游戏的神话已经厚到遮住了真正的工程细节。看哪篇回顾,《Deus Ex》要么是一件有先见之明的艺术品,要么是某种2000年后再没人复制得出来的灵光一现。这两种说法都不对,而且如果你想构建能产生有趣行为、却没有被明确编程的系统,无论是游戏还是别的东西,它们都毫无用处。所以,我们来做一件不太时髦的事:把关于《Deus Ex》设计最常见的五种信念拿出来,逐一对照这款游戏在2000年那代硬件上的真实表现。

误区一:涌现式玩法需要尖端技术

标准的说法是:涌现很贵,所以只能等现代硬件。物理引擎、导航网格、行为树、几GB内存,正是这些让系统之间能够丰富地相互作用。《Deus Ex》把这套说法驳得体无完肤。它于2000年6月发布,基于原版Unreal Engine开发,目标硬件是64MB内存的机器,以及那种放到今天只配给恒温器做脑子的CPU。敌人AI原始到当时的评测者都在抱怨。游戏的渲染预算紧张到纽约的天际线都被削减了,才能塞进去。

但涌现依然发生了。因为涌现不取决于系统有多复杂,而取决于系统之间的交互。守卫不需要行为树也能产生有趣的结果,它只需要几条清晰的规则(听到声音就去调查,根据自己的血量决定战斗还是逃跑),让其他系统可以去扰动它。爆炸系统与守卫系统对话,开锁系统与门的系统对话,箱子的物理与关卡几何体对话。每个系统都很简单,组合起来却很丰富。

这个道理远远超出了游戏领域。几十年来,我们在分布式系统中一直看到同样的现象:具有明确接口的简单组件,会产生令人惊讶的全局行为,有好有坏。《Deus Ex》团队没有多余的算力可以挥霍,所以他们把预算花在了一致性上,确保两个系统相遇时,发生的是合理且可预测的事情。如果你的门可以被LAM手雷炸毁,那它也应该能被火箭弹、等离子弹以及足够力气的近战武器摧毁。一条规则处处适用,胜过五十个特例。

现代的反转值得直说:如今团队的算力常常是当年的上千倍,却产生了更少的涌现,因为他们把预算花在了保真度上,比如更高分辨率的脚本化场景,而不是花在交互上。涌现从来不是在等硬件,它在等的是一个设计决定。

误区二:这是沃伦·斯佩克特一个人设计的

游戏圈的作者论根深蒂固。斯佩克特是与《Deus Ex》绑定的名字,他是一位真正有见地的设计师,设计理念很有名。他交给团队的三个词的指令,"problems, not puzzles"(「问题,而非谜题」),是这个媒介历史上最精炼的使命宣言之一。但斯佩克特本人也反对单一创作者的叙事,指出媒体倾向于把一款游戏归功于某一个人。而这款游戏的谱系,也让孤胆天才的故事站不住脚。

用一句很贴切的话说,《Deus Ex》是Looking Glass Studios从未做出的那款最好的游戏。沉浸式模拟(immersive sim)的脉络从《Ultima Underworld》(1992)一路延伸到《System Shock》(1994),后者给当时还在Origin担任制作人的斯佩克特留下了深刻印象,让他辞职加入了Looking Glass,再到《Thief》(1998)。《Deus Ex》的设计语汇(融入世界观的界面、由模拟驱动的问题空间、行为始终一致的第一人称3D世界)是Looking Glass在十年间集体发展出来的,参与者包括道格·丘奇(Doug Church),他关于系统化设计的想法流传甚广。后来约翰·罗梅罗(John Romero)给了斯佩克特预算,让他做想做的游戏,斯佩克特便把这套语汇带到了Ion Storm。

就连游戏最有名的「寓意」,也原来是一场集体协作的意外。多年来,粉丝们一直推测主角J.C. Denton的缩写代表Jesus Christ(耶稣基督),并与结局中Denton与AI融合的情节联系起来。在一次GDC的复盘演讲上,斯佩克特确认了缩写的来源,然后又让现场泄了气:这个名字来自一位真实的朋友Denton,他热心到让斯佩克特忍不住冲他喊一句「Jesus Christ, Denton!」(天哪,Denton!)。深刻的内涵是观众事后补上去的。这不是对游戏的贬低,而是一个提醒:系统化作品中的意义,往往和玩法一样,从零件之间的相互作用中涌现出来,而不是出自某个单一的作者之手。

为什么这个误区对构建者很重要?因为如果你相信涌现需要一位有远见的天才,你就只能干等。真实的历史表明,涌现需要的是一种传统:一支团队已经把一套设计原则内化到足够深,能在数百个细小决策中一致地应用它们。靠的是文化,而不是天赋。

误区三:自由度越高,涌现就越多

这个误区的实际影响最直接,因为它是最容易毁掉项目的那个。直觉很有诱惑力:脚本化游戏受限,涌现式游戏自由,所以要获得更好的涌现,就该拿掉限制。给玩家每一种动词,模拟一切,可能性空间最大化,魔法也就最大化。

《Deus Ex》自身的谱系恰恰证明了相反的结论。《System Shock》是那个时代最不妥协的沉浸式模拟,但玩家发现它的可能性范围与其说令人振奋,不如说令人困惑。Looking Glass的应对是收窄:《Thief》明确告诉你潜行才是正道。斯佩克特也发现,《Thief》的早期版本在另一个方向上让人挫败,只要被发现一次你就死定了,因为角色根本不能战斗。《Deus Ex》的真正成就,是找到了那个旋钮的中间位置。大多数问题你都可以用射击、潜行、黑入、开锁或者说服的方式解决,但技能系统意味着在一周目里你无法把它们全都玩得很好。角色身上的限制,正是让你的解法变成你自己的解法的原因。

同样的收窄也体现在战役结构上。《System Shock》是一个连续的模拟空间。《Deus Ex》则是十二个相互独立的任务,每个都是自成一体的沙盒,带着固定的出口通往固定的下一个任务。这是对传统射击游戏结构的一种妥协,它在宏观层面牺牲了「活生生的世界」的感觉,剧情节点总是准时到达。但正是这种妥协,让每个沙盒变得清晰可读。一个有边界的问题空间,是玩家能够推理的空间。无边界的可能性,只是噪音。

我常常想到一个类比,我们在讨论对抗式模拟与沙盒式模拟设计时也提到过:模拟之所以有趣,是因为它的规则制造了张力,而不是因为规则仅仅存在。没有压力的沙盒只是技术演示。《Deus Ex》给你施加压力,比如有限的资源、敌对的派系、噪音带来的真实后果,正是这些约束,把相互作用的系统转化成了故事。

一个木质迷宫,齿轮、弹簧和拉杆按顺序相互接触排列。
简单的部件,被谨慎地约束,产生出任何单一部件都不具备的行为。

误区四:这款游戏预见了未来,所以设计具有远见卓识

随便在YouTube上花十分钟,你就能找到有人解释说《Deus Ex》预言了监控国家、国内恐怖袭击、AI奇点以及美国体制信任的崩溃。游戏里缺失的双子塔,因为多边形预算的原因从天际线上删掉了,却被当作预言来引用。这个误区对真正的理解伤害最大,因为它把因果关系倒过来了。

《Deus Ex》并没有预见未来。它是仔细地阅读了它的当下。它发布于2000年,那一年互联网泡沫破裂,它浸透在1990年代美国的阴谋论文化之中:民兵组织、黑直升机、《X档案》式的偏执、对FEMA(联邦紧急事务管理局)是「深层政府」的焦虑。游戏里的反派是FEMA和神秘的秘密集团,是因为那正是它所处时代的文化背景噪音。那些噪音后来证明很持久,说明的是噪音本身,而不是预言式的设计。甚至游戏的首席编剧本人也是有条件地表述的:只要焦点稍作转移,未来仍然可能真的变成《Deus Ex》的样子。

为什么要纠正这一点?因为「预见」这个误区教给构建者的是错误的经验:伟大的作品来自于猜测未来。真正的经验恰恰相反。《Deus Ex》团队密切关注他们所处时代的系统,比如监控技术、涌现式网络、制度激励,并且把它们建模得足够忠实,以至于当世界追上来时,这个模型依然有效。对当下的深入阅读,永远胜过浅薄的预言。

软件工程里也有对应的版本。最能经受时间考验的系统,往往不是那些押注特定未来需求的系统,而是那些诚实地建模了其领域不变量的系统。《Deus Ex》的世界模拟之所以站得住,与它的玩法模拟站得住是同一个原因:它是由真实的、相互作用的力量构建的,而不是靠布景堆出来的。这也解释了为什么《Computer Gaming World》等当年的评论者,一边喜爱这套设计的理念,一边罗列它的缺陷,比如笨拙的AI、性能问题、刻意安排的环境。产品会老化,架构才能持久。

误区五:涌现与预设剧情是敌人

最后一个误区是一种错误的二元对立,至今仍然主导着大量的设计争论:要么你做一个系统化的沙盒,放弃叙事控制;要么你编写剧情,牺牲涌现。《Deus Ex》经常被归入沙盒那一边的阵营,正如当年一篇情绪高昂的评论所说,「每一个行动都会带来深远的后果」。但看看它的实际结构,这一说法就站不住了。游戏总会走到相同的剧情节点,任务总是以相同的顺序出现。整体弧线是固定的,甚至称得上传统。

《Deus Ex》真正展示的是一种分层架构:顶层是预先编写的结构,底层是模拟,二者之间的接缝是经过刻意安排的。宏观叙事是一条轨道。在每个任务之内,模拟是完全开放的。玩家掌握的是怎么做,设计者掌握的是接下来是什么。那些记得这款游戏是无边际自由的玩家,把局部层面(它的确是涌现式的)和全局层面混为一谈了,而全局层面并不是。活生生世界的错觉,来自每个任务的颗粒度框架,而不是来自某个被模拟出来的宏观世界。

这种分层是整款游戏中最可迁移的思想。想想你从中实际得到了什么。预设的一层保证了节奏、主题和连贯的结局,这些恰恰是模拟不擅长的。模拟的一层保证了玩家的能动性和组合式的丰富性,这些恰恰是脚本不擅长的。两者互不包含。那些试图模拟一切(或者脚本化一切)的现代游戏,不断地重新发现这种划分为什么有效。

你在游戏之外也能看到同样的架构。一个设计良好的API,在边界处是预先规定的,内部则是自由的:我们控制契约,你们掌控组合。需要时间打磨的软件,通常也是那种有人认真思考过接缝应该放在哪里的软件。放得太高,你会得到一个僵硬的、脚本化的产品;放得太低,你会得到一个让人无法理解的产品。《Deus Ex》把接缝放在了恰好是单个任务的高度上,而此后玩家们一直在讲述这一设计带来的种种故事。

「问题,而非谜题」:给玩家提供可供性(affordance),信任模拟本身,而不是设计一个唯一正确的解法,再拿它来给玩家打分。

神话之外,还剩下什么

剥开预言、作者崇拜和最大化的自由论,剩下的东西比传说更有用。《Deus Ex》的涌现来自一小组廉价、一致、彼此交互的系统。它的设计者在两个层面上刻意选择了约束:角色层面(你不可能样样精通),结构层面(固定战役中有边界的任务)。它的持久性来自于诚实地建模当下,而不是去猜测未来。而它最常被称道的优点,也就是一个会对你做出反应的世界的感觉,是通过把模拟放在作者之下分层构建出来的工程化错觉,而不是通过模拟一个完整的世界实现的。

如果你在做游戏,清单几乎是自己写出来的:更少的系统,更多的交互,严格的一致性,能制造压力的约束,以及关于预设层在哪里结束的明确决定。如果你在做别的东西,说实话,我们大多数人都在做某种形式的模拟,无论是智能体框架、规则引擎,还是一个市场,同样的清单依然适用。有趣的行为从来不在零件里,而在零件之间的接缝上。《Deus Ex》在一颗500MHz的CPU上就想明白了这一点。我们没有任何借口。

雨夜中的低多边形城市街道,一个人物面对三条可选路线。
世界没有改变,但你穿越它的方式是属于你自己的。