第 2 章

黑客与太空战争

把时钟拨回一年。在麻省理工学院电气工程系大楼的二楼,26号楼的走廊尽头,有一扇从不锁上的门。门后是一间不算大的房间,荧光灯管发出持续而均匀的嗡鸣,空气中飘着焊锡和咖啡渣混合的气味。1961年秋天,一台浅灰色的金属机柜被推进这间屋子,它大约有一台大型冰箱的体型,正面嵌着一块圆形的阴极射线管屏幕,旁边是键盘和一堆开关。这是数字设备公司,也就是DEC,生产的PDP-1小型计算机。它的价格标签上写着十二万美元,大约是当时大型计算机的十分之一。

但真正让这台机器区别于那些深锁在恒温机房里的庞然大物的,不是价格,而是它的位置。这台PDP-1被放置在公共区域,紧邻着铁路模型技术俱乐部的活动室。没有管理员站在门口核查身份,没有使用申请表需要提前三天填写,没有规定的上机时间限制。键盘朝外,屏幕亮着,任何在深夜路过26号楼的学生都可以推门进来,坐下,然后开始敲代码。

这个决定不是MIT的行政层做出的,而是一些理解这群学生的人——可能是某位教授,可能是某个实验室主管——在安装设备时默许了这样一种安排。记录只到这一步。但这个物理空间的开放性,会在此后两年里催生出一个全新的作品类型、一种全新的作者身份,以及电子游戏史上第一个真正的玩家社群。

铁路模型技术俱乐部是一个什么样的组织?它的正式名称是“技术模型铁路俱乐部”,但“模型铁路”这个词远远不能概括这群人的兴趣范围。他们当然喜欢火车——喜欢那些错综复杂的轨道、信号系统、继电器逻辑电路——但他们真正着迷的东西比铁路更抽象:他们喜欢复杂系统本身。他们喜欢设计和构建那些包含反馈、控制和自动化的机电装置。在PDP-1到来之前,俱乐部的主要项目是一部占据了整间屋子的模型铁路,其道岔系统由一个电话交换台的继电器阵列控制。

这个装置本身就带着某种执迷的气质:数百条电线从天花板垂下,彩色的指示灯在控制面板上闪烁,火车在微型城市之间穿行——与其说这是一个铁路模型,不如说这是一个关于控制的戏剧。

史蒂夫·拉塞尔是这群人中的一员。他当时是MIT的本科生,后来又进入研究生阶段,戴着一副厚框眼镜,说话时带着一种从技术层面切入一切问题的执拗。韦恩·维塔宁也在俱乐部里,他是电气工程系的研究生,对航空和航天工程同样感兴趣。J·马丁·格雷茨则更早就在俱乐部中活跃,他是三个孩子的父亲——这个身份在俱乐部里属于少数——但这一点并不妨碍他在深夜出现在实验室,和那些比他年轻近十岁的本科生一起折腾电子元件。

这些人的共同特征不是他们的履历,而是他们对机器的态度:他们不把计算机视为神圣不可触碰的精密仪器,而是将其视为可以拆解、修改、改装的玩具。这种态度后来有了一个名字——黑客伦理——但在1961年,它还只是一群年轻人的本能反应。PDP-1到货后,问题立刻出现了。

这台机器是DEC的第一款小型计算机产品,DEC需要MIT这样的顶尖工科院校来验证它的价值。MIT需要向访客、资助方以及学术界同行展示这台设备的能力。

但“展示能力”本身是一个开放性命题。你可以写一个程序让屏幕显示一行字,可以计算一组复杂的数学公式然后打印结果,可以控制外接设备按顺序点亮一排灯泡。但这些都证明不了什么值得记住的东西。

拉塞尔、维塔宁和格雷茨开始讨论一个更具体的问题:如何用一个可交互的程序,让任何走进这间屋子的人,在三十秒内理解这台机器能做什么——不是通过阅读技术参数,而是通过亲眼看见和亲手操作。他们的思考方向指向了一个特定的领域:实时视觉反馈。

PDP-1有一个圆形CRT显示器,可以绘制点阵图形,分辨率达到1024×1024。这意味着屏幕上的每一个光点都可以被程序精确控制。你可以在屏幕上画出一艘飞船,然后让它动起来。你可以画另一艘飞船,让它也跟着动。你可以让它们追逐、躲避、开火。

换句话说,你可以在这块屏幕上创造一个微小的、可操控的世界。灵感的具体来源后来被多次确认:爱德华·E·史密斯博士的太空歌剧小说《透镜人》系列。这套书描绘了星际飞船之间在深空重力场中的缠斗,充满了加速、追逐、火力对抗和战术机动。拉塞尔读过这套小说。俱乐部里的其他人也读过。当他们开始想象PDP-1屏幕上应该出现什么时,两艘在星辰之间互相发射鱼雷的太空船——这个画面几乎是自动浮现的。它既足够视觉化,又足够动态,而且天然包含了对抗性。

更重要的是,它需要实时计算:飞船的位置要随时更新,鱼雷的轨迹要模拟惯性,中央的恒星要持续施加引力。这些计算任务正好可以展示PDP-1的处理能力。

1961年冬天到1962年初,拉塞尔花了大约六周时间写出了第一个可玩版本。这段时间不是连续的六周——中间有期末考试,有假期,有其他项目和杂务——但代码从无到有的过程大致是这个长度。

他完成了核心循环:程序在每个时间单位里计算两艘飞船的位置,接收来自操作者的输入,更新屏幕上所有物体的坐标,然后重新绘制整个画面。两艘飞船被设计成楔形轮廓,在单色屏幕上靠角度和运动方向来区分。屏幕中央是一颗恒星,持续施加重力。每艘飞船拥有有限数量的鱼雷弹药。发射后,鱼雷沿着发射时的速度矢量加上恒星引力的影响向前推进,直到撞上某艘飞船或飞出屏幕边界。

但真正让Spacewar区别于此前所有计算机演示程序的,是那个星图背景。PDP-1的圆形屏幕被彼得·萨姆森——俱乐部的另一位成员——装进了一幅真实的星空图。萨姆森找到了一份星图,根据天体坐标将主要恒星的位置换算成屏幕上的光点坐标,然后写了一个子程序在每次游戏启动时绘制这个背景。屏幕中心区域最亮的那颗星,按照星图的位置对应的是天津四,天鹅座的主星。当两艘飞船在这个背景上缠斗时,它们不仅仅是在荧光屏上的两个光点——它们是在宇宙中战斗。

这不是一个比喻,而是一个精确的视觉事实:你看到的每一颗背景星都在真实的天球上占据着一个位置。Spacewar因此成了一个“会动的天文馆”,这个说法来自后来那些研究科学史的人,但它也准确地捕捉到了这个程序带给早期玩家的感受——你在操纵一艘太空船的同时,也在观看一幅微缩的星空。

拉塞尔的第一个版本是一个人的程序。但Spacewar的最终形态——那些让它在大学计算机中心之间流传、让它在十五年后的街机游戏里留下基因印记的特征——是一群人的作品。这个从个人到社群的转化过程,发生在1962年春天到夏天的那几个月里,地点仍然是26号楼那间公共实验室。

韦恩·维塔宁是第一个做出重大补充的人。他提出的问题是:两艘飞船的对抗存在一个根本性的不对称——操作水平更高的一方几乎必定获胜,而一旦处于劣势,没有任何机制可以让局面翻盘。这在真实空战中是可以接受的,在一对一格斗比赛里也是可以接受的,但维塔宁认为,一个要让人们重复玩的游戏需要某种打破确定性的机制。

他的解决方案是“超空间跳跃”:按下一个按钮,飞船会从当前位置消失,随机出现在屏幕上的另一处,然后重新回到战斗。这不是逃跑——因为超空间跳跃附带了一个致命的代价。维塔宁在代码里设置了一个概率:每次使用超空间跳跃,飞船有大约八分之一的概率在重新出现时直接自爆。这个数值是他试出来的,不是理论推导的结果。他反复调整参数,太高会让玩家不敢使用,太低则让跳跃变成无代价的逃生。八分之一——据后来一些参与测试的MIT学生的回忆——是一个恰好能让人在手心出汗时按下按钮的概率。

这可能是电子游戏史上第一个“风险-回报”机制的案例。在Spacewar诞生前,计算机程序里当然有随机数和概率函数,但从来没有人把概率和玩家的选择绑在一起,用它来制造紧张感。

维塔宁的超空间跳跃让Spacewar从一种技术演示变成了一种决策训练。你在按下跳跃键的那一刻,不是在执行一个指令,而是在下注。丹·爱德华兹的关注点则是星重力场的物理模型。

拉塞尔的初始版本用一个简化的引力公式计算中央恒星对飞船的加速度:引力与距离的平方成反比,方向指向恒星中心。但这个公式在飞船靠近恒星时会产生数值不稳定的问题——因为距离趋近于零时,引力趋向于无穷大,而PDP-1的运算速度无法处理那么大的数值跳跃。爱德华兹重写了这一部分算法,引入了一个平滑函数,在近距离时让引力曲线变得缓和,同时确保中远距离的轨道运动保持真实感。这不是为了“好玩”——在爱德华兹看来,一个不真实的引力场是对物理学本身的冒犯。

但这种对物理真实性的执迷,意外地创造了Spacewar最迷人的战术要素:熟练的玩家可以学会利用引力弹弓效应,让飞船掠过恒星表面,借重力加速甩向对手。这个操作没有写在任何游戏说明书里,它是玩家在自己的身体经验中发现的——当他们的手指和屏幕上的光点建立起一种直觉性的反馈回路时,牛顿力学就变成了肌肉记忆。

彼得·萨姆森的星空背景同样在持续进化。在拉塞尔的初始代码里,背景是纯黑的。

萨姆森先是加入了一个随机生成的星星阵列,但很快他就不满意这种虚假的星空。他找到一本星图,仔细地将每一颗亮于五等的恒星的位置换算成屏幕坐标,然后把这些坐标写进一个数据表里。程序启动时,一个专门的子程序遍历这张表,在每个坐标位置点亮一个光点。恒星的颜色无法在单色屏幕上表现,但亮度可以用光点的大小来模拟——PDP-1的显示器可以控制每个点的显示时长,从而产生视觉上的明暗差异。萨姆森调整了参数,让一等星比五等星更亮。

结果就是:当你坐在PDP-1屏幕前低头操作时,你抬头看到的那片星空,和你如果在1962年一个晴朗的冬夜走出26号楼抬头看到的天鹅座,在结构上是完全一致的。

所有这些修改——维塔宁的超空间跳跃、爱德华兹的重力引擎、萨姆森的星图——都不是有人提出需求、分配任务然后执行的结果。这里没有项目经理,没有版本控制,没有里程碑。一个人的代码修改被另一个人看到,这个人觉得可以在这个基础上再加点什么,于是就加了。

拉塞尔作为原始程序的作者,对那些他认为合理且优雅的修改持开放态度——他接受它们进入程序主体的条件是它们必须“能用”,也就是不破坏现有功能并且对玩法有明显提升。至于版权、署名、回报,没有人提起过这些词汇。在当时MIT那个具体环境下——计算机时间免费,机器是共用的,代码是公开的——这些东西甚至不是被压抑的念头,它们根本不在思维的范畴内。

这并不意味着Spacewar的作者们没有作者意识。他们当然知道自己写了什么。当他们把某个算法写得特别精巧时,他们会指给朋友看:“你看这段,我昨晚弄的。”他们在意的是同行的认可——是另一个懂代码的人看懂了你的巧思之后,眼睛里闪过的那个表情。这种认可是即时的、具体的、来自于一个真实的社群,而不是来自于一纸专利证书或一张版税支票。

黑客的作者身份由此确立:作者是那个在代码里留下可识别的个人印记的人,但作品本身属于每一个愿意在上面投入智慧和时间的协作者,也属于每一个坐在屏幕前握着手柄的玩家。

说到手柄,这是Spacewar故事中另一个重要的物质环节。PDP-1的初始输入设备是键盘和一排控制台开关。但用键盘玩Spacewar是笨拙的:你需要同时控制飞船的转向、推进和开火,这意味着至少四个手指要同时在不同的按键上操作,而且键盘的位置并不适合两个人并排坐着使用。

这个问题的解决方案来自俱乐部那些喜欢动手做硬件的成员——其中一些人的名字没有被充分记录,因为他们做的事情在当时看起来太过理所当然。他们用木块和微动开关制作了独立的控制盒,通过线缆连接到PDP-1的输入端口。每个控制盒上有一个用于左右旋转的拨杆、一个用于推进的按钮和一个用于发射鱼雷的按钮。两个控制盒被放置在显示器前方的桌面上,两个人并排或面对面坐着,各自握着自己的手柄,眼睛盯着同一个屏幕。

这个装置在结构上就是后来的街机摇杆的前身,虽然当时没有任何人想到要把它商业化。它的意义在于:它把身体重新带回了计算体验中。

大型计算机时代的交互是纯粹符号性的——你输入一行文本,机器返回一行文本。Spacewar的手柄让交互变成了肌肉的、触觉的、手眼协调的。你的拇指按下推进按钮的力度,你手腕旋转拨杆的速度,都会在屏幕上转化为飞船的动作。

这种身体与屏幕之间的实时回路,后来成为一切电子游戏的基本生理基础。但在1962年,它只是一个让游戏更好玩而顺手解决掉的工程问题。

手柄的出现还带来了另一个后果:观众变成了参与者。在控制盒被做出来之前,Spacewar的演示场景是这样的一幅画面——一个人坐在键盘前操作,几个人站在他身后看。当他们看完了,点点头说“很酷”,然后就走了。

手柄让第二个人坐了下来。当两个人坐下来对战的时候,胜负就成了一个问题。赢的人想再赢一次,输的人想翻盘。站在身后观看的人开始排队等待下一次轮换。排队这件事创造了一种新的社会秩序。

1962年春天的深夜,26号楼的这间实验室里经常出现这样的场景:凌晨两点,走廊里静悄悄的,但公共计算机室里灯火通明,七八个人围在一台PDP-1周围。屏幕上是两艘正在缠斗的楔形飞船,两个紧握手柄的人身体微微前倾,其他人站在后面,压低声音交谈。

一个不成文的轮换规则自发形成了:对战采用淘汰制,胜者留在座位上,挑战者从排队的人中补上,每局限时到一方被击毁为止。没有人制定这些规则,但它们稳定地运行了几个月。就像超空间跳跃的自爆概率一样,它是试出来的——一个各种力量(等待的耐心、观战的兴奋、公平竞争的本能)互相作用后沉淀下来的平衡点。

战术口诀也开始在社群中口口相传。最基础的一条是“不要正对着太阳冲”——也就是不要朝中央恒星的方向直线加速,那样你会在引力加速后难以控制飞行轨迹,很容易撞上恒星表面。更高级的战术涉及利用引力场的弹弓效应:让飞船擦过恒星的边缘,借重力弧线切到对手背后,在最近点发射鱼雷。

这个操作被当时的研究生们称为“绕日蛇行”,它需要精确的手指微调和某种在反复练习中培养出来的空间直觉。还有一条关于超空间跳跃的战术:如果你在被追击时跳跃,不要在按下去的瞬间盯着屏幕找自己——看对手的飞船。如果对手突然开始原地旋转,说明你的跳跃成功逃生了。如果他直接朝一个方向加速,说明他没有丢失你——换言之,你可能在跳跃时自爆了,他已经看到了,而你还没看到。

所有这些元素——手柄、排队、战术口诀——共同构成了电子游戏史上的第一个玩家社群。这不是一个比喻意义上的社群。它拥有具体的物理地点(26号楼那间实验室),具体的仪式(深夜对战、淘汰制换人),具体的知识传承(新来的人向老手学习操控技巧和战术),以及具体的身份认同(“你会玩Spacewar”在MIT的某些圈子里成了一种社交通行证)。

这个社群最大的特点在于它与商业完全绝缘。没有人对着门口的排队人群收费。没有人把控制盒锁起来只借给付费用户。

玩家和作者之间的界限是模糊的——写代码的人也在排队等着玩,常胜的玩家有时候也会改一行代码来调整平衡性。所有这些关系都发生在一个免费、开放、协作的空间里,而这种空间的存在完全依赖于一个更大的制度前提:MIT愿意支付计算机的购置和维护成本,并且愿意让它24小时开放给学生。

但Spacewar并没有停留在26号楼里。这是这台机器自身的特性决定的:PDP-1是一台商用产品,DEC把它卖给任何愿意支付十二万美元的机构,而这些机构中的大多数——大学、研究所、少数科技公司——也拥有和MIT一样的学生和深夜实验室。

Spacewar的代码没有加密,没有许可证,没有销售条款。它以磁带和穿孔纸带的形式从一个计算机中心传到另一个计算机中心,传播速度大约等同于研究生出差开学术会议的频率。

1963年,斯坦福大学人工智能实验室购入了一台PDP-1。Spacewar几乎在机器开箱的同一周就被装了上去。

然后同样的场景开始在斯坦福的实验室里重演:深夜,手柄,排队对战的淘汰制接龙,星辰背景在屏幕上缓慢旋转。

DEC公司注意到了这个现象,并做出了一个在电子游戏商业史上堪称意味深长的决定:他们将Spacewar预装在新出厂的PDP-1上,作为诊断程序随机器一起发货。DEC的逻辑很简单——Spacewar用到了PDP-1几乎所有的硬件子系统:CPU运算、内存读写、显示输出、开关输入。如果一台机器能流畅运行Spacewar,那么它就通过了最严苛的品质检验。这个决定的后果是,每一个购买PDP-1的客户都会在机器到货时发现一个已经安装好的游戏,不管这个客户是大学物理系还是政府军事合同商。

在没有任何市场推广、没有任何商业意图、没有任何人收取版税的情况下,Spacewar成了世界上第一款预装游戏——这个模式在二十年后会被任天堂的《超级马力欧兄弟》和微软的《纸牌》分别以不同的方式重新使用,但它的起点是PDP-1包装箱里的那卷免费磁带。

拉塞尔、维塔宁、萨姆森、爱德华兹和其他所有为Spacewar贡献过代码和创意的人,从这件事里没有得到一分钱。没有任何记录表明他们为此感到不满。这不是因为他们道德高尚或对金钱缺乏兴趣,而是因为在他们的认知框架里,Spacewar和金钱之间不存在关联——就像你在沙滩上堆了一座沙子城堡,你不会想到要路过的人付钱才能看。这种心态与整个MIT的黑客文化互为因果:在一个资源免费、知识共享、以同行认可为最高奖赏的环境里,把代码锁起来卖钱的行为看起来既愚蠢又不可理解。

但同样真实的是,这种心态依赖着一个极其特殊的制度土壤——那个土壤叫“别人买单”。PDP-1是DEC卖给MIT的,电费是MIT交的,计算机时间是MIT分配的。黑客们享受了创造的绝对自由,但从未承担过这种自由的经济成本。

这并不削弱他们的成就,但它提示了一个在后续章节中会反复出现的结构性张力。在Spacewar的世界里,一切都是免费的——免费获取代码,免费使用机器,免费对战。

玩家与创作者之间的契约是纯粹的:我做出这个给你玩,你玩得好就赢得了我的尊重,你玩得不好就失去了座位。但这个世界之所以可能,是因为有人——大学的预算、军方的合同、纳税人的钱——在支付账单。

当电子游戏试图走出校园,进入酒吧、街机厅和客厅时,免费模式将无以为继。硬币契约——投币才能玩,花钱才能买的规则——将取代黑客伦理成为行业的基本法则。

那年深夜在26号楼排队等着玩下一局的研究生们,不可能预见到这个未来。但当他们握着手柄、盯着屏幕上两艘在星空间缠斗的光点时,他们的每一个动作都在为那个未来撰写最初的语法。

1963年,Spacewar的代码从MIT流向了斯坦福,又从斯坦福流向了卡内基梅隆、犹他大学和少数几个拥有PDP-1的计算机公司。在那些地方,不同的人以同样的方式接收了它:修改一两行参数,添加一两个功能,然后传给下一个计算机中心。没有任何人想过要阻止这种扩散。

扩散得越远,知道这个游戏的人就越多,排队等着玩的人就越多,战术口诀在校园间的口口相传就越密集。一个没有中心节点、没有所有权、没有商业模式的创作和传播网络,在六十年代初期美国大学计算机中心的走廊和机房里悄然成形。

到六十年代中,Spacewar已经成为计算机科学界一个半公开的共享秘密——你只要找到一台带CRT显示器的计算机,就有很大概率在它的程序库里翻到一卷标着“SPACEWAR”的磁带。

这个网络的规模有限——PDP-1的总产量大约只有五十台。但它的存在本身就是一个论证:屏幕上的可操控世界具有独立的审美价值和社交价值,这种价值不依赖于商业回报来证明,也不依赖于用户规模来衡量。

Spacewar的玩家总数从几十人到几百人不等,但每一个玩过它的人,都经历过那种独特的沉浸感——当你操纵的光点绕过恒星的引力场、咬住对手的轨迹、在最后一刻扣动鱼雷发射的扳机时,你的身体与屏幕之间的那个反馈回路就闭合了。

在那个回路的瞬间里,1962年、MIT、凌晨两点的实验室、锡焊气味和键盘敲击声——这些具体的情境都消失了。剩下的只有你、对手和星空。

这便是黑客作为游戏作者所留下的基因。他们的作品不署名,不售卖,不锁定在一个固定的产品形态里。任何有能力和意愿的人都可以修改它,而修改的结果既属于修改者,也属于原作者——如果“原作者”这个词在一个所有代码都公开的环境里还有意义的话。

这种作者身份将在二十年后被雅达利的流水线吞噬,在那里游戏的创作者不再在代码里留下可识别的个人印记——他们甚至不被允许在包装盒上印上自己的名字。沃兹尼亚克和乔布斯在雅达利设计《打砖块》时,他们是匿名的。沃伦·罗宾内特在《冒险》里藏进“Warren Robinett制作”的字样时,是以违抗公司政策的方式来表达那种被压抑的作者意识。

但在1962年的26号楼里,这种吞噬和违抗都还没有发生。黑客的作者身份还是它最初的形态:自由、协作、骄傲,一贫如洗但自给自足。

到1963年底,Spacewar的故事在第一阶段已经完成了它能够完成的一切。它定义了一种语法——实时操控、视觉反馈、对抗性规则、玩家社群。它创造了一种身份——黑客作为游戏作者,在代码里留下个人印记,却不在意商业回报。它建立了第一个玩家社群——排队、对战、战术口传、模糊的作者与玩家界限。它甚至在不经意间完成了第一次商业化实验——DEC把它作为诊断程序预装在新机器里,证明了游戏可以提升计算机的销售价值,虽然这个价值完全流向了硬件厂商,而不是游戏作者。

然后,剧情进入了一段看似与此无关的平行发展。在纽约长岛的一个地下室里,一个叫拉尔夫·贝尔的工程师正在用军用剩余元件组装一个完全不同的东西。他不是黑客,不读科幻小说,不在大学的免费机房里工作。他是桑德斯公司的部门主管,白天设计军用雷达系统,晚上在自己的作坊里焊电路板。

他从1966年开始做的事情,核心想法如下:把游戏从计算机里抽离出来,装进一个可以接在普通电视机上的小盒子里,然后把这个盒子以99.95美元的价格卖给那些从未踏进过大学实验室的家庭。

这个想法和Spacewar的哲学截然对立。Spacewar依赖一台十二万美元的计算机、一间由机构买单的实验室和一个开放共享的黑客社群。贝尔的褐色盒子要把这一切都压进一个廉价塑料壳里,接在客厅的电视上,然后用价格标签和零售渠道来定义它和用户之间的关系。

从黑客伦理到硬币契约——这场转型在Spacewar的星辰背景上还看不到任何先兆。但它的压力已经逼近。

那些在26号楼排队等着玩下一局的研究生们,以及那些在斯坦福机房里把Spacewar磁带装进PDP-1的学生们,刚刚创建了电子游戏的第一种存在方式。现在,这种方式将不可逆转地遭遇另一种完全不同的逻辑——商业的逻辑,投币的逻辑,把玩变成商品的逻辑。

在这两种逻辑碰撞之前,Spacewar所代表的一切已经成为一颗种子。种子不需要知道土壤的化学成分。它只需要在合适的季节到来时准备好发芽。1963年的那道星辰背景,在代码层面已经完成了它所能完成的一切。剩下的故事,将发生在酒吧、机厅和客厅里——在那里,玩不再是一种共享的技术实践,而是一桩明码标价的生意。