太空战争！

《太空战争》（英文版名：Spacewar!）是史帝芬·罗素与马丁·格雷茨、韦恩·维塔宁、鲍勃·桑德斯、彼得·参孙等人于1962年合作开发的太空战争电子游戏。初时，他们以麻省理工学院新安设的数码装置公司PDP-1迷你电脑作游戏平台，并以PDP-1的汇编语言编写代码。后来，游戏被学院其他学生和员工进一步扩展改良，当中包括丹·爱德华兹和彼得·参孙。程序员还把游戏散布至其他PDP-1电脑上，使它成为首款在单一机构以外可以接触得到的游戏。

游戏以星空为背景，两名玩家须各自操作太空船“楔形船”或“针形船”，在恒星重力穴中移动并射击对方船只。每艘太空船都有有限的武器和燃料，即使玩家不加速，太空船仍会保持移动。玩家也可以在恒星附近航行以获取重力助推。太空船只会在被鱼雷击中、两船相撞或坠入恒星的情况下被摧毁。游戏设有超空间跳跃功能，玩家可在任何时候使用，借此随机移动至荧幕上任一位置。但在某些版本中，每次使用这项功能都会增加太空船爆炸的风险。初时玩家须使用PDP-1迷你电脑前面板测试开关来游玩，后来桑德斯制作了分离式控制装置（即早期的游戏手柄）来降低游玩时的控制难度和尴尬情况。

在早期电子游戏史中，《太空战争！》是款重要且具影响力的作品。20世纪60年代，它在小型编程社团中十分流行，人们把处于公有领域的游戏代码广泛移植至其他电脑系统上，又或者以自己的代码重新建立。1967年以后，连接至显示器或终端且能够运行游戏的电脑如雨后春笋般涌现，令它接触到更广泛的受众。到了现代，新式游戏版本陆续出现，甚至可以在PDP-1模拟器上运行。游戏亦直接启发了诸多电子游戏，例如首批街机游戏《电脑太空战》和《银河游戏》，以及《爆破彗星》等。2007年，游戏获列入有史以来最重要的十款电子游戏，成为美国国会图书馆保存游戏经典的开端。2018年，游戏入选世界电子游戏名人堂。

## 背景

<image>

20世纪50年代，在学术电脑和编程研究的背景下，同时也为了展示运算能力，各种电脑游戏应运而生，而此情况在同一年代后期更小更快的电脑面世后变得更为活跃，因为程序可以在电脑上实时创建和运行，而不再是按批次处理。然而，一些程序既是为了展示电脑的强大功能，也是作为娱乐产品而出现。这些程序通常由本科生、研究生、大学员工创建，例如麻省理工学院的学生和员工有时会被允许实验电脑TX-0编制程式。这些交互式图形游戏由程序员社团创建，当中大部分是隶属铁路模型技术俱乐部的学生和员工，该俱乐部由艾伦·科托克、彼得·参孙、鲍勃·桑德斯（Bob Saunders）领导。游戏包括井字棋和老鼠迷宫，前者使用光笔与电脑进行简单的井字游戏，后者则以光笔为虚拟老鼠设置墙壁迷宫。

1961年9月，麻省理工学院电机工程学系所在的26号大楼2楼的“拙集室”内，安装了一台数位设备公司出产的PDP-1迷你电脑。该电脑是旧式TX-0的补充品，附设TX-0也有的打孔带读写器，另外还接受开关面板的输入，并可以输出至阴极射线管显示器。在PDP-1抵埗前的夏季，电机工程学系学生和大学员工一直思考什么程序才能够以令人信服的方式展示新电脑的能力。当中，哈佛大学雇员、同时是麻省理工学院前研究助理的史帝芬·罗素，麻省理工学院研究助理兼毕业生的马丁·格雷茨（Martin Graetz），以及哈佛大学研究助理、也是麻省理工学院前员工和学生的韦恩·维塔宁（Wayne Wiitanen），提出了太空战争的想法。他们将这项合作称为“兴罕研究所”，得名于格雷茨和维塔宁当时的居住地——麻省剑桥兴罕街。1972年，罗素在接受《滚石杂志》访问时曾提及：“我们拥有这款全新的PDP-1……有人（马文·闵斯基）建立了一些小的模式生成程序，可以制作如同万花筒般的有趣图案。但是，这并非很好的示范。这是一台可以做各种好事的显示器！所以我们开始讨论，探讨什么才算是有趣的展示。然后，我们决定做个二维操纵的东西，而要做的自然是太空船。”

## 玩法

<image>

《太空战争！》以星空为背景，两名玩家须各自操作太空船，在恒星重力穴的二维平面上移动，同时射击对方船只。其中，外型较胖的太空船被称为“楔形船”（Wedge），较细长的则是“针形船”（Needle）。太空船的鱼雷和燃料有限，每次矫正船体都会用掉部分燃料。玩家可透过拨动电脑上的拨动开关或按下控制板上的按钮来发射鱼雷，鱼雷不会受到恒星引力所影响，但一次只能发射一枚，且设有冷却时间。即使玩家不加速，太空船仍会保持移动。另外，旋转船只不会改变它们的移动方向，不过它可以在没有惯性的情况下以稳定速率旋转。

游玩期间玩家须尝试击落对方的太空船，同时避免接触画面中央的恒星，或者碰撞对方船只。玩家可以在恒星附近航行以获取重力助推，但也有误判轨迹而坠入恒星的风险。如果太空船移动至屏幕边缘位置，它则会在另一侧以环绕效果重新出现。超空间跳跃，或称“紧急按钮”，是玩家的最后手段，可以令太空船在屏幕上消失数秒，再随机出现在任一位置，借此躲避敌方鱼雷。但在某些版本中，每次使用这项功能都会增加太空船爆炸的风险。

总括而言，玩家须控制的包括太空船的顺时针和逆时针旋转、向前推进、发射鱼雷、启用超空间跳跃。起初，上述功能都是利用PDP-1迷你电脑前面板测试开关来控制，每位玩家有四个开关，但事实证明这些开关使用起来很笨拙，在正常游戏过程中很快就会磨损，而且还会导致玩家意外翻动电脑的控制和电源开关。由于电脑前面的空间有限，开关位置也使一名玩家只能看到阴极射线管显示器的部分画面，使其处于劣势。为了缓解这些问题，桑德斯制作了分离式控制装置，本质上便是早期的游戏手柄。手柄设有一个用于左转或右转的开关，一个用于向前推推或启用超空间跳跃的开关，以及一个鱼雷发射按钮。该按钮是无声的，因此对手不会收到有玩家在冷却期间试图发射鱼雷的警告。

## 开发

<image>

1961年夏天，罗素、格雷茨、维塔宁构想了《太空战争！》的基本概念，并计划以PDP-1作为游戏平台。当时，罗素拜读了科幻作家爱德华·艾默·史密斯的《透镜人》系列小说，并认定这些故事将为该计划奠定良好基础。罗素向《滚石杂志》宣称：“他笔下的英雄们很容易被整个银河系的恶棍追击，过程中又不得不创造解决问题的方法。这些行动便是《太空战争！》的灵感来源。而且他对于太空船遭遇战和太空舰队操纵有着强烈且鲜明的描绘。”格雷茨则认为史密斯的云雀 (小说系列)小说和日本低俗特摄电影均有影响游戏概念创作。

在PDP-1安装后的头几个月，麻省理工学院的PDP-1编程社团专注于更简单的程序，以研究如何为电脑创建软件。期间，罗素经常拜访社团的老友，并向他们阐述《太空战争！》的概念。罗素希望有人会制成这款游戏，而他自己却没有打算参与开发。但是，社团其他成员认为他是制作这款游戏的合理人选，并开始向他施压，要求他参与。作为回应，罗素提出一堆借口来解释自己为什么不能开发，其中之一是缺乏计算太空船轨迹所需的三角函数例行程式。这番话促使铁路模型技术俱乐部的艾伦·科托克致电数位设备公司，该公司则宣称他们已经编写了这项例行程式。随后，科托克开车往数位设备公司拿了一盘包含代码的磁带，把它摔在罗素面前，并问他还有什么借口。罗素后来解释说：“我环顾四周，且找不到任何借口，于是我只能静下心来做一些计算。”大约在1961年12月末，PDP-1显示器安装完毕，罗素亦在此时开始编写代码。《太空战争！》是为了满足罗素、格雷茨、维塔宁曾制定的准则而开发。他们认为，假如想把程序当作玩家的娱乐体验，又想把它向观众演示，就必须符合三个前提：尽可能展现电脑的能力，甚至发挥至极限；在固定架构中，每次执行结果都应该不相同，从而保持有趣；以生动方式使观众感到有趣，简单而言它应该是款游戏。罗素在鲍勃·桑德斯和史蒂夫·皮纳（Steve Piner）等程序员的帮助下（当时维塔宁被美国陆军预备役征召而未能参与），花了大约200个小时编写了首个游戏版本，或者大约6个星期来开发基本游戏。游戏以PDP-1的汇编语言来编写的。

罗素在1962年1月完结前制成了带有可移动圆点的程序，又在2月完成了带有可旋转太空船的早期操作游戏。两艘太空船的设计令人联想起《地球保卫战 (漫画)》的弯曲太空船，以及PGM-11红石导弹。游戏早期版本还包含随机生成的星空，原因在于罗素认为空白背景令玩家难以分辨两艘太空船在低速时的相对运动。该区的编程社团（包括兴罕研究所和铁路模型技术俱乐部）制定了后来被称为“黑客伦理”的原则，即所有程序都可以在协作环境中由其他程序员自由分享和修改，毋须担心所有权或版权，这促使团队合力精心制作罗素最初的《太空战争！》。正因如此，原本为星空精准度不足和缺乏真实感而感到烦恼的铁路模型技术俱乐部成员彼得·参孙，决定根据在夜空中缓慢滚动的真实星图来编写程序，包括北纬22.5度和南纬22.5度之间最低星等为5的星星，并以它们的相对亮度显示。该程序被称作“昂贵天象仪”，指的是PDP-1电脑与模拟天象仪相比，前者售价更高，而如同皮纳的“昂贵打字机”程序一样，它也成为“昂贵程序”一员。3月，身为游戏主要版本整理者的罗素迅速把程序纳入游戏。

<image>

游戏最初版本没有包含中央恒星重力穴和超空间功能。后来，麻省理工学院研究生、铁路模型技术俱乐部成员的丹·爱德华兹（Dan Edwards）和格雷茨分别增加了这两项功能，为最初的纯反射式射击游戏增添战略元素。初期版本的超空间功能只有三次跳跃机会，但除了太空船在重新进入星空后可能会出现于危险位置之外，基本上没有任何风险可言。后来的版本则取消了次数限制，但增加了船只爆炸的风险，而非在它移动方面着手。此外，桑德斯在1962年3月为游戏制作了手柄，以应对玩家因坐在电脑前、手肘以弯曲姿势控制开关面板而出现的“太空战争肘”。《太空战争！》属于多人游戏，主要因为电脑没有剩余资源来控制另一艘船。同样地，因为电脑没有足够资源处理并同时流畅地运行游戏，只好放弃其他程序员提出的建议，例如更精细地显示太空船爆炸时的画面，以及让鱼雷同受重力影响。随着新增功能和修改准备妥当，罗素和其他程序员将重点从游戏开发转移至准备展示，并考虑在1962年4月底麻省理工学院举办的科学开放日作演示。演示时，小组在游戏中添加了时间限制和超空间跳跃功能，又设立了供观众收看的大型屏幕。5月，格雷茨在数位设备电脑用户协会首次会议上，提交了关于游戏的论文，题为《太空战争！PDP-1实时能力》。这次演示一蹴而就，而且游戏也在学院甚受欢迎。不久，放置PDP-1的实验室便明令学生和员工只能在午饭时间以及工作时间之后前来游玩。科幻杂志《银河系科幻小说》编辑弗雷德里克·波尔也曾参观该次演示，他说自己喜欢玩“这款可爱的游戏”，又指学院是“从科幻杂志借来灵感”，玩家可以借此伪装成《云雀》内的角色。

自1962年中期起，麻省理工学院PDP-1编程社团（包括罗素和兴罕研究所其他成员）把游戏散布至其他拥有PDP-1的学校和机构，例如史丹佛大学和数位设备公司。因此，《太空战争！》可能是首款在单一机构以外可以接触得到的游戏。在接下来的十年里，各机构程序员开始编写独属于自家的游戏变体，包括同时允许多位玩家操纵太空船，以隐形取代超空间跳跃，增设空雷，甚至在两个屏幕上显示第一人称视角版本以模拟太空船驾驶员的舱外视野。部分游戏也复制了桑德斯的游戏手柄。数位设备公司在游戏诞生后不久便彻底研究了它，并以公司的PDP-1作演示，又在1963年出版了关于游戏和电脑的小册子。根据罗素在该公司听到的二手资料，据闻公司技术人员会利用游戏为即将出货的全新PDP-1作冒烟测试，因为它是唯一可以测试硬件各个方面的程式。虽然游戏在当时广为流传，但它的直达范围非常有限，原因在于相比大型计算机便宜的PDP-1其售价仍需12万美元（相当于2021年约107万美元US），售出的53台电脑大多不连显示器，余下的则多数设于守卫森严的军事设施或研究室，每分每秒都在工作，这导致初版游戏没法扩大受众、只能停留在狭窄的学术范围。尽管后来数位设备公司推出的一些机型预载了游戏（如PDP-6），但碍于销量低迷（PDP-6仅售出23台），游戏受众依然有限。

## 发行与影响

<image>

20世纪60年代，《太空战争！》在小型编程社团中十分流行，也在其他迷你电脑和大型电脑上被大规模重建，而在70年代它更开始迁移至早期微型电脑上。游戏处于公有领域，任何能够接触到它的人或有与罗素联系的人都可以获得代码。由于当时的编程社团规模较小，无法提供商业支援，因此没有尝试将它化作商品销售。游戏散布形式初时分为两类，一是人们把代码副本带到其他装置上，一是程序员以自己的代码重新创建。BBN Technologies属首批安装游戏的公司，它还重新制作了游戏手柄。1963年，罗素在斯坦福大学人工智能实验室的PDP-1上安装游戏。麻省理工学院毕业生阿尔伯特·库菲尔德（Albert Kuhfield）则在1967至1968年为明尼苏达大学的CDC 3100电脑重建游戏，并于1971年向科幻杂志《模拟科幻小说与事实》提交叙述。在斯坦福大学，安装了游戏的电脑广受欢迎，以至于1966年研究人员在他们的PDP-6上开发特殊的“太空战争模式”来共用电脑资源，以便在运行研究程序的同时游玩游戏。早期电脑科学家艾伦·凯在1972年曾指“只要电脑有连接至图形显示器，《太空战争！》便会自行绽放”，1981年格雷茨回想起当时的情形亦表示，随着游戏的早期传播，“几乎所有具备程控阴极射线管的研究电脑都能找到它的踪影”。

《太空战争！》在早期开发后几年才得以广泛散布。起初，麻省理工学院和斯坦福大学附近数个地方流传着玩家和游戏变体的轶事；直至1967年以后，连接至显示器或终端且能够运行游戏的电脑如雨后春笋般涌现，令它接触到更广泛的受众，并影响后来的电子游戏设计师。到了1971年，据估计市面上已有逾千台带显示器的电脑，远超当年只有几十台的数字。大概同一时候也出现了多款适用于各类电脑系统的游戏变体，当中包括PDP后续机种。1972年，游戏在编程界广为人知，《滚石杂志》甚至赞助举办“泛银河系太空战争奥运会”。10月19日，活动在斯坦福大学人工智能实验室举行，设有单人赛、团队对抗（二对二）、五人自由混战，玩家使用的是装有游戏变体的PDP-6／PDP-10组合。这场活动是有史以来首场电子游戏锦标赛，相关报道刊登于同年12月7日出版的《滚石杂志》上。

70年代初，《太空战争！》成为两个投币式电子游戏机的基础，因而从大型电脑系统迁移至商业环境。1966年至1969年期间，大学生休·塔克（Hugh Tuck）在斯坦福大学玩此游戏时曾表示其投币版本将会非常成功。虽然迷你电脑的高昂价格使这类游戏在当时不可行，但1971年塔克和比尔·皮茨（Bill Pitts）用价值2万美元（相当于2021年约13.4万美元US）的PDP-11创作了投币式电脑游戏原型《银河游戏》；然而，他们在史丹福展出的原型并未多于两个。大约同一时间，诺兰·布什内尔和泰德·达布尼以《太空战争！》为基础，开发了第二款投币式电脑游戏原型《电脑太空战》，后来成为首款商品化的街机游戏，也是首款广泛销售的电子游戏。尽管塔克认为《银河游戏》是优秀改编作品，《电脑太空战》则是前者的拙劣模仿品，但许多玩家认为这两款街机游戏都是《太空战争！》的变种升级版。

1977年，《位元杂志》发布了《太空战争！》的汇编语言版本，可在Altair 8800或其他基于Intel 8080的迷你电脑上运行，以示波器显示图形，还使用查找表来模拟轨道计算。1979年，该杂志又推出了以Tiny BASIC编写的三维版本。后来，多个新式游戏版本陆续出现，而且可以在不同电子装置上运行。2012年，格雷茨在互联网公开原始游戏的模拟版本，可于JavaScriptPDP-1模拟器上运行。2022年，Analogue公司推出的掌上游戏机“Analogue Pocket”也支援在PDP-1模拟器上运行此游戏。目前已知唯一仍能正常运作的PDP-1收藏于加利福尼亚州山景城计算机历史博物馆内，作机器演示之用，访客也可透过它来游玩《太空战争！》。

除了《银河游戏》和《电脑太空战》外，《太空战争！》还长久地影响激发诸多游戏创作，例如《轨道战争》（1974年，柏拉图系统电脑）、《太空大战》（1977年，街机）、《太空战争 (1978年游戏)》（1978年，雅达利2600）。此外，电子游戏设计师艾德·罗格在街机游戏《爆破彗星》（1979年）中，参照并使用了如超空间按钮和玩家飞船形状等《太空战争！》元素。甚至，1990年发行的《星际控制》也从《太空战争！》直接汲取灵感。罗素曾经表示，他对这个游戏最满意的地方是它激发了许多程序员编写属于自己的版本，而不受限于使用他的代码或设计。

2007年3月12日，《纽约时报》称《太空战争！》获列入有史以来最重要的十款电子游戏，即所谓的游戏经典，选出这些游戏的委员会同时建议国会图书馆能考虑它们的文化和历史意义而予以保存。其后，国会图书馆接受提案，并由此展开电子游戏保存工作。2018年，教育机构斯特朗 (机构)旗下的斯特朗国家游戏博物馆宣布把《太空战争！》列入世界电子游戏名人堂。同年，互动艺术与科学学会向仍然在世的游戏开发者（丹·爱德华兹、马丁·格雷茨、史蒂夫·皮纳、史帝芬·罗素、彼得·参孙、罗伯特·桑德斯、韦恩·维塔宁）颁发先锋奖，以表扬他们“职业生涯有助塑造和定义互动娱乐产业”。

## 外部链接

- 计算机历史博物馆的太空战争网页
- 以 Java与 JavaScript于 PDP-1 模拟器执行的太空战争
- Spacewar! for the PDP-1（互联网档案馆）

## 基本资料

- 头衔：太空战争!
- 英文名称：Spacewar!
- 常用译名：cn:太空大战！
- 设计师：史帝芬·罗素
- 程序：史帝芬·罗素
- 发行日期：1962年
- 类型：太空战争模拟游戏
- 模式：多人
- 月台：PDP-1