首页 » 创新者:一群技术狂人和鬼才程序员如何改变世界 » 创新者:一群技术狂人和鬼才程序员如何改变世界全文在线阅读

《创新者:一群技术狂人和鬼才程序员如何改变世界》史蒂夫·拉塞尔和《太空大战》

关灯直达底部

黑客亚文化以及影响深远的电子游戏《太空大战》都源自麻省理工学院的“铁路模型技术俱乐部”(Tech Model Railroad Club)。这是一个创建于1946年的学生极客组织,“据点”设在一幢曾作为雷达开发设施的建筑物深处。俱乐部的“掩体”几乎被一个包含几十条铁道、开关、有轨电车、灯和城镇布景的火车模型沙盘占满了,所有模型都做得让人爱不释手,在历史细节上也很精确。俱乐部的多数成员都着迷于制作图片般完美的零部件陈列在沙盘上。但其中也有一群成员对这个齐胸高的大沙盘内部的东西更感兴趣。这些成员属于“信号和电力小组”,他们更关注信号传输、布线、电路,还有沙盘底面那些装在一起,对许多列火车进行复杂分级控制的纵横式开关。他们在这张错综复杂的网中发现了美。史蒂文·利维(Steven Levy)在《黑客》(Hackers )一书开头对这个俱乐部做了生动的描写,他写道:“开关排列整齐有序,古铜色的继电器也一排排整齐地排列着,一长捆红、蓝、黄相间的线缠绕在一起,呈现出彩虹般的颜色,就像爱因斯坦的爆炸头一样。”2

信号和电力小组的成员骄傲地以“黑客”自居。当时这个词既暗指技术精湛,又带有戏谑的意味,但还没有出现非法入侵网络这种新用法。麻省理工学院学生搞的那些复杂的恶作剧(把一头活奶牛放到宿舍屋顶上,在主楼的穹顶上放一头塑料奶牛,或者在哈佛和耶鲁比赛时让一个巨大的气球出现在球场正中央)就叫“黑客行动”。该俱乐部宣称:“我们铁路模型技术俱乐部只使用‘黑客’一词的本义,即运用创意产生巧妙结果的人。这种巧妙的结果叫‘黑客行动’,其本质特点是出手迅速,而且通常不登大雅之堂。”3

一些早期的黑客梦想创造出能够思考的机器,这其中有很多是麻省理工学院人工智能实验室的学生。这个实验室建于1959年,创始人是两位后来成为传奇人物的教授:一位是长得很像圣诞老人的约翰·麦卡锡(John McCarthy),“人工智能”这个词就是他创造的,还有一位是聪明绝顶的马文·明斯基(Marvin Minsky),他的存在似乎就是要反驳他自己所谓计算机终将超越人类智能的信念。这个实验室的信条是,只要获得足够的处理能力,机器就能复制人脑等神经网络,并能与使用者进行智能互动。眼睛明亮、爱搞恶作剧的明斯基做过一个旨在模仿人脑的学习机,将其命名为“随机神经模拟强化计算器”(Stochastic Neural Analog Reinforcement Calculator),暗示他虽然抱有认真的态度,但也带些玩笑的成分。他有个理论是,智能可以是非智能元素互动的产物,比如被巨型网络相互连接的小型计算机。

铁路模型技术俱乐部的黑客们1961年9月迎来了一个影响深远的时刻,当时,迪吉多捐给麻省理工学院一台PDP–1型计算机的原型机。尺寸与三台冰箱相当的PDP–1是世界上第一台能与使用者直接互动的计算机。它能连接一个键盘和一台图形显示屏,一个人就可以轻松操作。几个铁杆黑客开始一窝蜂地围在这台新计算机周围,他们还组成了一个小集团,策划能让这台计算机做些什么好玩的东西。许多讨论是在剑桥欣厄姆大街一个破旧的公寓里展开的,所以其成员以“欣厄姆学院”自居。这个名字很气派,又带些讽刺意味。他们的目标不是要让PDP–1实现什么高大上的用途,而是要做点巧妙的事情。

之前的黑客们也曾为早期的计算机创造过一些简单的游戏。麻省理工学院开发的一款游戏用屏幕上的点代表一只试图在迷宫里找路,以寻找一片奶酪(后来的版本是一杯马丁尼)的老鼠;还有一个游戏是长岛布鲁克海文国家实验室(Brookhaven National Lab)开发的,该游戏在一台模拟计算机上使用示波器来模仿网球比赛。但欣厄姆学院的成员们知道,有了PDP–1,他们就有机会创造出第一个真正的计算机电子游戏。

这群人中编程最出色的当属史蒂夫·拉塞尔,当时他在帮麦卡锡教授创建用来辅助人工智能研究的LISP语言。拉塞尔是个完美的极客,对蒸汽火车和思维机器等种种东西抱有浓厚兴趣,会着迷地钻研。他是个小个子,容易激动,卷发,戴着厚厚的眼镜。他说话语速极快,就像有人在猛按快进键一样。不过,虽然他做事认真、精力充沛,但他喜欢拖拉,于是别人给他取了个绰号,叫“鼻涕虫”。

和大多数黑客朋友一样,拉塞尔也是烂片和庸俗科幻小说的忠实粉丝。他最喜欢的作家是E·E·史密斯(E. E. Smith),这是一位无甚建树的食品工程师(是一位面粉漂白专家,甜甜圈粉就是他发明的),专写一种叫“太空歌剧”的低俗科幻小说。这类小说的主要情节是夸张的探险故事,其中充满讨伐恶势力的战争、星际旅行和俗套的罗曼史等情节。曾为铁路模型技术俱乐部和欣厄姆学院成员的马丁·格雷茨(Martin Graetz)在讲述《太空大战》制作过程的回忆文章中写道,史密斯“对风钻的描写优美而精细”。格雷茨回忆了一段带有典型史密斯风格的故事情节:

一开始是一阵忙乱,等每个人都对号入座后,一群肌肉发达的“哈迪男孩”便出发了,他们开始在宇宙中长途跋涉,去惩治最新出现的银河黑帮,炸几个星球,除掉所有讨厌的物种,再找点乐子。我们的主人公在紧要关头(他们通常都会遇到紧急状况)总能拿出一套完整的科学理论,发明相应的技术来应用这一理论,然后制造出武器把坏人消灭,而这一切都是在他们驾着飞船,在人迹罕至的茫茫银河系四处逃生时完成的。[1]

拉塞尔、格雷茨和他们的朋友都热衷这种太空歌剧,所以,他们决定为PDP–1做一个太空大战游戏是很自然的事情。拉塞尔回忆道:“当时我刚刚读完史密斯的《透镜人》(Lensman )系列,他的主人公们往往被反面人物追赶,在银河系里到处逃生,他们必须一边逃生一边想办法解决问题。这种行动就是启发《太空大战》的线索。”4 这帮扬扬得意的宅男重组了一个“欣厄姆学院太空战研究小组”,“鼻涕虫”拉塞尔负责编写代码。5

不过,作为名副其实的“鼻涕虫”,拉塞尔并没有动手,但他知道应该从哪里着手做这个游戏程序。明斯基教授曾偶然找到一种可以在PDP–1上画圆圈的算法,之后他又对这种算法进行了修改,让屏幕上显示出三个点,这三个点能相互作用,形成美丽的小图案。明斯基称之为“位式”显示技术,但他的学生则将其称为“明斯基电子”。“明斯基电子”为制作一种以飞船互动和导弹为主要内容的游戏奠定了良好的基础。有好几个星期,拉塞尔都沉浸在“明斯基电子”中,感悟它形成图案的魔力。但到了编写正余弦函数程序来决定飞船运行路径时,他就磨蹭起来了。

拉塞尔向大家解释了这个障碍之后,俱乐部一位名叫艾伦·科托克(Alan Kotok)的成员想出了一个解决方法。他开车来到迪吉多(PDP–1的制造商)位于波士顿市郊的总部,找到一位好心的工程师,这位工程师手中有运算所需的程序。科托克对拉塞尔说:“好吧,正余弦函数程序有了。现在你还有什么借口?”拉塞尔后来承认:“我想了想,找不到借口了,于是我只好静下心来做些计算。”6

1961年的整个圣诞节假期拉塞尔都在潜心研究,在短短几周之内,他就找到了一种通过使用控制面板上的钮子开关来操纵屏幕上圆点的方法,他能让这些点加速、减速和转向。然后,他把圆点变成两艘卡通化的宇宙飞船,其中一艘像雪茄一样又胖又鼓,另一艘则细细的,像铅笔一样直。还有一个子程序能让每艘飞船从前部发射模仿导弹的圆点。当代表导弹的圆点与飞船位置重合时,后者就会“爆炸”,变成一些随机移动的点。到1962年2月,这个游戏已经基本做好了。

这时,《太空大战》变成了一个开源项目。拉塞尔把他的程序带放在一个装有PDP–1其他程序的装置里,他的朋友开始动手改进程序。其中有个叫丹·爱德华兹(Dan Edwards)的朋友认为引入引力会比较酷,于是他通过编程做了一个能对飞船产生牵引力的大太阳。如果你不注意的话,太阳就会把你吸进去并毁灭你,但出色的玩家知道怎样迅速靠近太阳,借助其引力来增强自身力量,从而以更高的速度转向。

拉塞尔回忆道,还有一个叫彼得·萨姆森(Peter Samson)的朋友“觉得我的星球是随便画的,不符合实际”。7 萨姆森认为游戏应该有“真实性”,也就是要有符合天文学的星图,而不是一堆乱七八糟的圆点。于是他在程序中添加了一个他称之为“豪华天文馆”的东西。萨姆森根据《美国星历表和航海天文历》(American Ephemeris and Nautical Almanac )上的信息编写了一个程序来显示夜空中到第五星等为止的所有星体。通过规定显示器上各点的显示次数,他甚至模拟出了每颗星的相对亮度。随着飞船的前进,星空会缓缓向后移动。

在这种开源合作下,开发者还做出了许多其他的绝妙贡献。马丁·格雷茨发明了一个他称之为“终极应急按钮”的东西,这是一种从乱局中脱身的能力,只要扳动一个开关,就能暂时消失到多维空间的另一个维度里。他解释说:“设置这个按钮的想法是,当其他一切努力都无济于事时,你还可以跳进第四维空间并消失。”他曾在史密斯的一本小说中读到过类似的内容,叫作“超空间通道”。不过,应急按钮也有一些限制:在一次游戏中,你只有三次机会跳入超空间;消失不见会让你的对手获得喘息的机会;而且你根本不知道自己的飞船会在什么地方再次出现。它也许会出现在太阳上,或者暴露在对手的视线之下。拉塞尔解释说:“应急按钮是一个你可以用,但不想动用的东西。”格雷茨还补充了一个向明斯基教授致敬的细节:消失到超空间的飞船会留下一个标志性的“明斯基电子”图案。8

有一项影响深远的贡献来自铁路模型技术俱乐部的活跃分子艾伦·科托克和鲍勃·桑德斯(Bob Sanders)。他们意识到,如果玩家挤在一台PDP–1游戏机前,胳膊肘推来搡去,疯狂抢夺计算机的开关,实在是又别扭又危险。于是他们在俱乐部活动室的火车组下面翻找了一圈,卸下一些钮子开关和继电器。他们把这些东西拼装在两个塑料盒里,做成遥控器,这个遥控器配有所有必需的功能开关和超空间应急按钮。

这个游戏很快就传到了其他计算机中心,并成为黑客文化的必需品。迪吉多开始出预装这款游戏的计算机,程序员们也开发出了适合其他系统的新版本。世界各地的黑客们为其添加了更多功能,比如隐形能力、爆破太空矿,还可以切换为第一人称,以一名飞行员的视角来玩游戏。正如个人电脑先驱者之一艾伦·凯(Alan Kay)所言:“在任何有能接电脑的图形显示器的地方,《太空大战》这个游戏都自然而然地流行开来。”9

《太空大战》突显出黑客文化的三方面特点,这些特点后来成为数字时代的主题。首先,它是协作的产物。拉塞尔说:“我们一起制作这个游戏,进行团队合作,这是我们喜欢的做事方式。”第二,这是一个免费的开源软件。拉塞尔表示:“只要有人要源代码,我们就会给他们一份。”当然了,那是在一个软件渴望摆脱束缚的时代和地方。第三,它是基于一种计算机应属于个人而且要能与人互动的信念。拉塞尔说:“它让我们能够亲手操作电脑,并让电脑对我们做出实时回应。”10