第 3 章
模拟的萌芽
电子游戏不是生来就关于快速反应的。这个判断在今天听起来可能有点奇怪。我们习惯了这样的画面:玩家紧握手柄,拇指飞速敲击按钮,屏幕上子弹横飞、赛车疾驰,每一秒都要求精确的时机和肌肉记忆。从街机厅到电竞场,速度似乎一直是游戏的核心。但如果我们把时间拨回1960年代末,回到电子游戏还不到十岁的婴儿期,我们会发现一件被后来的商业主流掩盖了的事实:有一批最早的游戏设计者,他们在探索的恰恰是速度的反面。他们想要创造的,不是考验反射神经的竞技场,而是一个可以让人停下来思考的微型世界。这个分歧的起点,可以从一次失败说起。1968年,在一台连接着分时系统主机的电传打字机前,一个程序员刚刚结束了他统治十年的古巴比伦王国。打字机咔咔地印出最后一行结果:由于粮食分配失误,大量人口在这一年饿死,他的统治被判定为失败。屏幕上没有爆炸特效,没有敌人嘲讽,没有得分排行榜。只有一串冷冰冰的数字,记录着人口曲线如何从稳定增长突然垂直坠落。这个程序员做了什么?
他没有更快地按按钮。事实上,他的手指在键盘上停留了很久,盯着那些数字,在脑子里重新推算了一遍今年的收成、储备和分配比例之间的连锁关系。他犯的错误不是操作层面的——不是按错了键,不是反应慢了。他犯的是认知层面的错误:他没能理解这个系统内部的反馈回路。他把太多谷物存入了粮仓,留给百姓过冬的口粮少了那么几百蒲式耳。然后,人口下降导致劳动力减少,劳动力减少导致次年耕种面积萎缩,面积萎缩导致粮食总产量进一步下降——一个看似微小的决策偏差,被系统的反馈结构放大成了灾难。他重新输入了一组数字,开始新一轮统治。这一次,他会更谨慎地对待那些看似枯燥的变量之间的关系。这个游戏叫《汉谟拉比》(Hamurabi)。它的确切起源已经模糊在早期计算机文化的集体创作传统中。目前能找到的最早完整代码收录在1973年出版的《BASIC Computer Games》一书里,但它的流传时间显然更早——可能在1968年前后就已经在PDP-8小型机的用户社群中传播。
设计者的姓名没有留下来,这本身就是一个信息:在DECUS共享伦理主导的那个时代,程序被看作公共资源,修改和传播不需要署名,原作者的身份在持续的集体变异中变得不再重要。但《汉谟拉比》留下的不是名字,而是一个问题。这个问题与1962年《太空战争》提出的问题截然不同。《太空战争》问的是:你能不能比对手更快、更准地操作?《汉谟拉比》问的是:你能不能理解这个系统是怎么运转的?两种问题,对应两种完全不同的心智活动。在《太空战争》中,你的身体与机器紧密耦合——眼睛追踪屏幕上的光点,手指在控制盒上做微调,对引力井的直觉判断必须在零点几秒内转化为操作。这是一种高度身体化的认知,接近于运动竞技。但在《汉谟拉比》中,你的身体几乎是静止的。你坐在终端前,看着一行行数字,在脑子里推演因果链条——如果今年少种粮食多囤积,明年粮价会不会涨?如果现在卖掉土地换取粮食喂饱百姓,人口增长后明年的粮食需求会不会超出土地产出能力?
你的手指只是在键盘上敲入几个数字,真正的运算发生在你的前额叶皮层里。这个区别不是技术性的。它是哲学性的。它意味着,早在电子游戏还处在婴儿期的时候,设计者们就已经在探索两种截然不同的“玩”的定义:一种把玩定义为竞技,另一种把玩定义为理解。让我们把《汉谟拉比》的内部机制拆开来看。这个游戏的核心是五个变量:人口数量、土地面积、粮食储备、粮食产量、土地价格。每个变量都与其他变量形成反馈回路。人口消耗粮食,但也提供耕种土地的劳动力;土地产出粮食,但需要足够的人口来耕种;粮食可以用来喂养百姓,也可以留作下一年的种子;土地价格随机波动,受收成好坏、鼠患灾害和玩家买卖行为的影响。这不是一个线性系统。它是一个动态系统,有延迟反馈、有非线性关系、有随机扰动。当那个程序员因为粮食分配失误导致人口锐减时,他遭遇的不是操作失误。他遭遇的是系统逻辑。他输入了他认为合理的数字,但系统返回了一个他没想到的结果。
这就是模拟游戏的核心体验:你的失败不是因为你不够快,而是因为你不够理解。你必须像一个面对未知自然现象的科学家一样,去观察、假设、检验、修正你对这个微型世界的认知模型。这个过程可以描述得更具体一些。假设你第一年有100人、1000蒲式耳粮食、1000英亩土地。你决定用500蒲式耳喂养百姓,300蒲式耳用作种子,200蒲式耳储存。这一年风调雨顺,每英亩产出5蒲式耳,你收获了1500蒲式耳。加上储存的200,总储备1700。人口增长到110人。你觉得自己的决策不错。第二年,你维持同样的分配比例。但这一年发生了鼠患,每英亩只产出2蒲式耳。你只收获了600蒲式耳。总储备降到800。110人需要至少550蒲式耳过冬。你勉强撑过去了,但人口停止增长,土地价格开始波动。第三年,你想补回粮食缺口,决定卖掉200英亩土地换取粮食。但这一年土地价格恰好暴跌——因为鼠患让所有地方的收成都不好,没人愿意高价买地。你只换回了400蒲式耳。
你的土地面积减少了,未来的产出潜力被永久削弱。人口开始因为粮食不足而下降。第四年,你试图把剩下的土地全部种上作物,但你忘了留出足够的粮食喂养百姓。这一年收成不错,但人口已经因为前三年的饥饿下降到70人。你收获了大量粮食,却发现没有足够的人来吃,也没有足够的人来耕种下一年。你的王国在螺旋式衰退。在这个过程中,你学到的是什么?不是下次手指要动得更快。你学到的是:粮食储备、土地面积和人口之间的平衡关系有一个临界点,一旦跌破就很难恢复;短期决策的后果会通过系统的反馈结构被延迟放大;随机事件(鼠患、粮价波动)不是独立的外部干扰,而是与你的决策相互作用的内生变量。你学到的是系统思维。这种思维不是凭空产生的。1960年代末期,系统论和控制论正在美国学术界广泛传播。诺伯特·维纳的《控制论》1948年出版后,影响了一整代科学家和工程师。杰伊·福雷斯特在MIT开发的系统动力学方法,被用来模拟城市发展、工业生产和全球生态系统的行为。
1968年,就在《汉谟拉比》流传的同一年,罗马俱乐部开始委托福雷斯特的团队用计算机模拟全球人口、资源和污染的长期趋势——这个项目后来产生了著名的《增长的极限》报告。程序员们浸泡在这种知识氛围中。当他们在大型机上写游戏时,他们不是在设计后来被称为“娱乐产品”的那种东西——那个概念当时根本不存在。他们在探索计算机作为一种建模工具的可能性。计算机可以模拟物理过程,这是《太空战争》已经证明了的。但它能不能模拟社会过程?能不能模拟经济系统的动态?能不能让用户通过与模型的交互,获得对复杂系统逻辑的直观理解?《汉谟拉比》的乐趣,本质上是一种科学发现的乐趣:你面对一个由代码构建的黑箱,通过反复实验来推断它的内部规则,然后用这种理解来优化你的决策。现在,让我们把时间移到1969年,地点切换到新泽西州的贝尔实验室。肯·汤普森坐在一台PDP-7小型机前。
这台机器在贝尔实验室的计算资源中处于边缘位置——大型项目占用着更强大的PDP-10和IBM主机,这台PDP-7大部分时间闲置着。汤普森之前在MIT参与过Multics分时操作系统项目,那是1960年代最雄心勃勃的软件工程之一,由MIT、贝尔实验室和通用电气联合开发。Multics的设计目标宏大得惊人:一个可以同时服务数百用户、提供分层安全机制、支持动态链接和热插拔的操作系统。但项目陷入了不断膨胀的复杂性和进度延误。贝尔实验室在1969年退出了合作。汤普森回到贝尔实验室,手头没有Multics可用了。但他想继续做一些操作系统层面的实验——特别是文件系统的设计。他还有一个私人动机:他想玩一个太空游戏。不是《太空战争》那种双人对战。他想要的是可以在太阳系中航行、访问行星、探索卫星的游戏。他在Multics项目期间就开始构思这个游戏,在一台GE 645大型机上写了一个初步版本。
但Multics的机时太昂贵了——每次运行游戏都要花费50到75美元的计算资源。贝尔实验室的管理层对用大型机玩游戏显然不会有耐心。所以汤普森找到了那台闲置的PDP-7。这台机器有一个矢量显示器——可以显示点和线。汤普森和他的同事丹尼斯·里奇一起,首先为PDP-7开发了一个基本的操作系统,以便高效地使用它的资源。在这个过程中,汤普森开始重写他的太空游戏。这个游戏后来被命名为《太空旅行》(Space Travel)。《太空旅行》的设计目标与《太空战争》截然不同。这里没有两艘对射的飞船,没有鱼雷,没有得分。你驾驶一艘飞船,从地球表面起飞,穿越太阳系,访问行星和卫星。太阳、行星和卫星都有引力场。你的飞船受牛顿力学支配——引力、速度、位置,这些物理量在每一帧都被重新计算。你必须管理燃料:加速消耗燃料,但如果不加速,引力会把你拉向行星表面。你必须规划轨道:直接飞向目标通常不是最优解,你需要利用引力弹弓效应,让行星的引力帮你改变方向和速度。
这个游戏的物理模拟比《太空战争》复杂得多。《太空战争》只需要计算两艘飞船和一个恒星的引力——恒星的质量中心是固定的,飞船之间的引力因为质量太小而被忽略。但《太空旅行》要模拟整个太阳系的引力场:太阳、九大行星(当时冥王星还被算作行星)、多个卫星。每个天体都有不同的质量和位置。飞船在任何一点受到的引力,是所有天体引力矢量的叠加。这是经典的多体问题——在物理学中,三体以上的引力系统没有解析解,只能通过数值方法逐步逼近。汤普森必须解决一个计算效率的问题。PDP-7的处理能力远不如今天的手机——它的时钟频率大约是0.33兆赫,内存只有几千字。要在这种硬件上实时模拟多体引力,必须找到简化的算法。汤普森采用的方案是分段近似:每个天体有一个引力影响范围,飞船在这个范围内时只计算该天体的引力,忽略其他天体的影响。当飞船靠近地球时,太阳和其他行星的引力扰动被忽略。当飞船进入行星际空间时,太阳的引力占主导,行星的引力被当作微小扰动处理。
这种简化在物理上不够精确,但在游戏体验上是可接受的——它创造了可信的轨道运动,同时把计算量控制在PDP-7可以承受的范围内。另一个关键设计是时间尺度。在真实的太空飞行中,从地球到火星需要几个月。玩家显然不可能在屏幕前坐几个月。汤普森引入了时间加速机制:游戏中的时间可以比现实时间快几千倍甚至几百万倍。当飞船在行星际空间滑行时,玩家可以加速时间,让几周的航程在几秒内完成。但当飞船靠近行星、需要精确操控着陆时,时间必须降回正常速度。这种时间尺度的切换,后来成为几乎所有太空模拟游戏的标准设计——从1980年代的《精英》到2010年代的《坎巴拉太空计划》,都继承了这一机制。但《太空旅行》最核心的设计选择,不是物理算法或时间机制,而是它的目标结构。这个游戏没有胜利条件。你不会赢。你只是探索。你可以尝试降落在月球上,可以尝试飞到木星,可以尝试利用引力弹弓效应把自己抛射到太阳系边缘。每一次飞行都是一次实验。
每一次失败——燃料耗尽飘荡在太空中、计算失误撞毁在行星表面、被引力捕获坠入太阳——都是一次学习。你开始理解轨道力学,不是通过教科书上的公式,而是通过反复的试错和观察。你发展出一种直觉:什么时候该加速、什么时候该滑行、什么时候该利用行星的引力来改变航向。这种学习过程和《汉谟拉比》的经济学实验在本质上是相同的。两者都是把玩家置于一个动态系统中,让玩家通过与系统的交互来理解系统的逻辑。区别只在于:一个系统是人口-粮食-土地的反馈回路,另一个系统是引力-速度-燃料的物理约束。但它们共享同一个设计哲学:游戏是一个模型,玩的过程就是理解模型的过程。这个哲学与《太空战争》的对抗哲学形成了清晰的对照。《太空战争》的核心是人与人之间的竞争——你的对手是另一个人类,系统只提供了物理规则作为竞技的舞台。但《汉谟拉比》和《太空旅行》的核心是人与系统之间的对话——没有对手,只有规则;没有输赢,只有理解程度的深浅。这是两种截然不同的对“玩”的定义。
让我们把这种对照放回1960年代末的历史语境中。1962年《太空战争》诞生时,计算机还是批处理时代的庞然大物——程序通过打孔卡片提交,几小时后取回打印结果。交互性是奢侈品。PDP-1的显示屏和实时输入是MIT黑客文化的特权。《太空战争》的对抗模式天然适合这种交互环境:两个玩家同时在场,身体与机器紧密耦合,反应速度决定胜负。这是一种高度社交化的游戏体验,尽管“社交”在这里只意味着两个人在同一台机器前。但到了1968至1969年,计算机的形态正在发生变化。分时系统的普及意味着多个用户可以同时通过终端访问同一台主机。电传打字机成为标准输入输出设备——没有图形屏幕,只有打印在纸上的字母和数字。在这种环境下,实时对抗游戏无法运行——你不可能在打印纸上展示两艘飞船的高速运动。但文字模拟游戏天然适合这种环境:《汉谟拉比》的输出是一行行文字,显示每年的粮食产量、人口变化、土地价格;玩家的输入是一串数字,表示今年的决策。
这种交互节奏与电传打字机的机械速度完全匹配。技术基础设施塑造了游戏类型的可能性空间。这不是技术决定论——程序员们不是被硬件强迫去设计某种游戏。但他们确实在给定的技术条件下寻找最优的设计方案。在PDP-1的矢量显示屏上,实时对抗是最自然的选择。在电传打字机终端上,回合制模拟是最自然的方案。在PDP-7的矢量显示屏上,汤普森选择了单人探索——因为这台机器没有联网,没有第二个玩家可以对抗,但它的图形能力足够展示轨道运动的视觉美感。这里有一个容易被忽略的细节。《太空旅行》的开发过程,意外地催生了Unix操作系统和C语言。这不是比喻,而是实际发生的事件序列。汤普森和里奇在PDP-7上写游戏时,发现需要更好的系统软件支持——文件管理、进程调度、内存分配。他们开始为PDP-7写一个简化的操作系统,借鉴了Multics的很多设计理念但大幅简化。汤普森利用家人外出旅行的三周时间,写完了这个系统的核心组件——内核、shell、编辑器和汇编器。
这个系统后来被命名为Unix,取“简化版Multics”之意。1970年代初,里奇在Unix的基础上开发了C语言,用来重写Unix以便移植到不同硬件平台。一个太空游戏,引出了一套操作系统和一门编程语言。这不是偶然。它揭示了早期计算机文化中“玩”与“造”的深层关联。汤普森写《太空旅行》不是为了商业发行,不是为了娱乐大众,甚至主要不是为了玩游戏本身。他是在探索计算机的可能性——操作系统能做什么?图形显示能展示什么?物理模拟能精确到什么程度?游戏是他的实验载体。这和MIT的黑客们在《太空战争》上试验PDP-1的交互能力是同一逻辑:游戏是技术探索的前沿,是程序员与机器对话的媒介。但这种探索有一个隐含的代价:它极度依赖技术精英的资源和技能。汤普森能够在贝尔实验室写《太空旅行》,是因为他有权限接触一台闲置的PDP-7,有操作系统开发的经验,有Multics项目的知识积累,有丹尼斯·里奇这样同样杰出的同事合作。
这不是一个普通大学生能够复制的条件。游戏开发在这个时期不是行业,甚至不是职业——它是一个技术精英群体内部的智力实践,依赖于机构资源、专业训练和同行网络。这引出了一个我们不得不面对的问题:当我们在1969年谈论“电子游戏”时,我们到底在谈论什么?如果你在1969年问一个计算机科学家什么是电子游戏,他可能会描述《太空战争》的实时对抗,或者《汉谟拉比》的资源分配,或者《太空旅行》的轨道探索。这三种东西看起来完全不同——一个是动作竞技,一个是策略模拟,一个是物理实验。它们唯一的共同点是都运行在计算机上。但“运行在计算机上”是一个太宽泛的定义,就像“印刷在纸上”不能定义文学类型一样。我们需要一个更精确的框架来理解这种多样性。如果我们从“玩家与系统的关系”这个维度来看,这三种游戏分布在一条光谱上。在光谱的一端,《太空战争》的玩家与系统是对抗关系——系统提供物理规则,但真正的挑战来自另一个人类。
在光谱的另一端,《汉谟拉比》和《太空旅行》的玩家与系统是对话关系——系统本身就是挑战的来源,玩家试图理解系统的内部逻辑。前者考验反应速度和战术直觉,后者考验分析能力和系统思维。这条光谱不是1969年才出现的。它在游戏设计的最初时刻就已经隐含在计算机的两种根本能力中:实时交互和复杂计算。实时交互让计算机可以成为竞技的舞台,复杂计算让计算机可以成为模型的载体。《太空战争》利用了第一种能力,《汉谟拉比》和《太空旅行》利用了第二种。大多数早期的计算机游戏同时利用了这两种能力——只是比例不同。这个框架帮助我们理解为什么“游戏类型”不是一个简单的分类标签,而是一种设计哲学的选择。当程序员决定强调实时交互时,他们倾向于设计对抗性、动作性的游戏——后来的射击游戏、格斗游戏、平台跳跃游戏都沿着这个分支演化。当程序员决定强调复杂计算时,他们倾向于设计模拟性、策略性的游戏——后来的经营模拟、城市建造、历史策略游戏都沿着另一个分支演化。
这两个分支在1969年已经清晰可见,尽管当时没有人使用“游戏类型”这个词。让我们回到1969年的另一个关键事件。这一年十月,ARPANET的前两个节点——加州大学洛杉矶分校和斯坦福研究院——成功连接。第一条消息是“LO”——他们试图发送“LOGIN”,但系统在传输前两个字母后崩溃了。这个看似微不足道的技术事故,标志着一个新时代的开始:计算机开始联网。ARPANET的诞生对电子游戏的影响是深远的,但这种影响不是立即显现的。在1970年代初期,ARPANET只有几十个节点,连接的都是大学和研究机构。但它的存在意味着,分布在不同地点的计算机可以交换数据,不同地点的程序员可以共享代码,不同地点的玩家——理论上——可以在同一个虚拟空间中互动。我们在上一章看到,DECUS网络通过邮寄纸带的方式实现了游戏的跨地域传播。这是一种异步的、延迟的共享。
ARPANET提供了同步通信的可能性——尽管在1969年,这种可能性还极其原始,带宽低到只能传输文本,延迟高到无法支持实时游戏。但它打开了想象的空间:如果计算机可以远程通信,那么游戏是不是也可以远程进行?《太空旅行》中的单人探索,未来能不能变成多人共同探索?《汉谟拉比》中的单人统治,未来能不能变成多个玩家各自统治国家然后互相贸易或战争?这些想象在1969年还只是想象。但它们指向了一个方向:游戏的社会维度将因为网络而彻底改变。从《太空战争》的同机双人对战,到DECUS网络的异步共享变异,再到ARPANET的远程连接潜力——游戏的社交性正在沿着技术基础设施的演化路径逐步扩展。现在,让我们把这三个游戏——《太空战争》(1962)、《汉谟拉比》(1968)、《太空旅行》(1969)——放在一起,看它们的共同指向。这三个游戏覆盖了三种不同的“玩”的定义:对抗、决策、探索。
这种多样性告诉我们一件事:在电子游戏的婴儿期,它的可能性空间远比后来实际发展的方向要宽广。1960年代的程序员们不是在设计后来被称作“游戏产品”的那种东西——他们是在探索计算机作为一种表达媒介的各种可能性。对抗可以是一种表达,模型可以是一种表达,物理实验可以是一种表达。没有人规定游戏必须是快的、激烈的、考验反射神经的。那只是众多可能性中的一种。但历史不是所有可能性都能平等发展的。当1970年代商业力量进入游戏领域时,某些可能性会被放大,另一些会被边缘化。
街机游戏将选择《太空战争》的对抗模式——快速、激烈、适合投币——而把《汉谟拉比》的慢速决策和《太空旅行》的孤独探索留给少数人。这不是因为对抗模式更好,而是因为它更适合街机这种商业模式:三分钟一局,输了就投币继续,围观者被视觉刺激吸引。模拟游戏要求的沉浸时间、学习曲线和安静思考,在投币街机面前完全没有竞争力。这个分歧在1969年还没有发生。但它已经潜伏在技术选择、设计哲学和制度环境的差异中。当肯·汤普森在贝尔实验室调试《太空旅行》的引力算法时,当某个不知名的程序员在电传打字机上修改《汉谟拉比》的粮食分配参数时,他们不会想到,他们正在开创的分支将在二十年后成为PC游戏的主流类型之一——《模拟城市》《文明》《铁路大亨》都将在模拟这条线上生长出来。而在另一个分支上,《太空战争》的对抗基因将通过《Pong》《太空侵略者》《吃豆人》进入街机厅,定义电子游戏在大众文化中的最初形象。两个分支在1969年还是并行的小溪,尚未分流。
但它们的水文特征已经不同:一条清澈湍急,适合短程冲刺;一条深沉缓慢,适合长途航行。它们将流向不同的海洋。最后,让我们回到本章开头那个失败的程序员。他在《汉谟拉比》中因为粮食分配失误导致人口锐减。他没有砸键盘,没有骂对手,没有抱怨反应时间不够。他只是重新读了一遍屏幕上的数字,想了想自己的决策链条在哪里出了问题,然后输入了新的数字。这个动作——停下来思考,而不是立即反应——定义了模拟游戏的核心体验。它要求的不是更快的反射,而是更深的理解。它把游戏从身体竞技场转移到认知实验室。在接下来的几十年里,这个转移将催生出整个策略游戏和模拟经营游戏的庞大家族。但在1969年,它还只是一个微小的萌芽,生长在大型机的电传打字机终端上,生长在PDP-7的矢量显示屏上,生长在一小群技术精英的好奇心和探索欲中。这个萌芽的土壤是昂贵的。一台PDP-7的价格大约是72000美元——相当于今天的50万美元以上。
一台能够运行《汉谟拉比》的分时系统主机,价格在数十万美元级别。全美能够接触到这些机器的人,不超过几千人。他们都是大学、研究所和工业实验室的成员,几乎全部是受过高等教育的男性。电子游戏在这个时期是一个极端精英化的文化实践,尽管它的内容——管理粮食、探索太空——具有潜在的普遍吸引力。这个矛盾不会自行消解。模拟的种子已经发芽,代码已经写出来了,游戏已经可以玩了。但它们被锁在昂贵的机器里,锁在实验室的围墙内,锁在技术精英的小圈子中。要突破这些围墙,需要的不是更好的引力算法,不是更精巧的粮食分配模型,不是更逼真的行星轨道。需要的是一种完全不同的力量——一种不在乎物理精确度、不在乎系统复杂度、不在乎认知深度的力量。这种力量只在乎一件事:能不能在三分钟内,让一个完全不懂计算机的人,从口袋里掏出一枚硬币。