星际旅行 (1969年游戏)

1969年電子遊戲

星际旅行[註 1](英语:Space Travel,又译作「太空旅行[1],是UNIX开发者肯·汤普逊于1969年编写的电子游戏。玩家可以模拟操作太空船在代表太阳系的二维画面内进行飞行,或者在不同的行星卫星表面着陆。太空船会受到万有引力影响。

星际旅行
  • Space Travel
《星际旅行》游戏画面
类型模拟
平台MulticsGECOS英语General Comprehensive Operating SystemPDP-7
开发商肯·汤普逊 编辑维基数据
设计师肯·汤普逊
模式单人
发行日1969年

游戏在贝尔实验室开发。肯·汤普逊把游戏从Multics操作系统移植到了GE 635大型机的GECOS英语General Comprehensive Operating System操作系统上面,后来又移植到了PDP-7小型机上面。在移植过程中,肯·汤普逊逐步开发出了自己的操作系统,这个系统后来被称为UNIX。《星际旅行》从未离开贝尔实验室,因此未对未来的电子游戏产业造成影响,只成为UNIX历史上的一段传奇。

《星际旅行》常被视为第一个UNIX应用程序。

玩法

《星际旅行》是一款太空飞行模拟游戏。游戏画面为二维画面,由黑色背景和白色线条组成。玩家需要控制太空船在代表太阳系的画面中飞行。游戏除了尝试在不同行星和卫星之间着陆,没有特定的目标。游戏使用不同的大小和距离来代表太阳系内的各个行星与卫星,而各星球的轨道被简化为圆形。当玩家打算着陆的时候,玩家的太空船必须以足够低的速度穿过代表星球表面的线条。玩家可以控制太空船前进、后退或转向。太空船在屏幕上面移动的距离保持不变,而实际速度与整个画面的缩放比例有关:把缩放比例调得足够小,便可以在几秒之内横穿整个太阳系,虽然这样做会导致容易失去方位,再也无法回到太阳系;把比例放到足够大,玩家便可以低速着陆。太空船始终位于屏幕中间,朝向屏幕顶部。旋转时,太空船保持不动,而整个太阳系会被旋转。[3]

每个行星或卫星都有质量,这导致在移动过程中会产生万有引力,虽然这些星球之间不会互相影响,而且只有一个引力最强的星球会影响到玩家的太空船。有时这会导致一些奇怪的行为,例如火星的引力效应要远远强于火卫一,这意味者如果玩家试图在火卫一着陆的话,需要先让太空船移动到火卫一的内部,直到太空船足够接近火卫一的中心点,火卫一的引力才会起作用,然后太空船才能成功停在地面上。在飞行过程中,引力最强的星球名称会显示在屏幕上面。此外,玩家可以通过修改程序来改变一些条件,例如加大重力加速度,或者调整显示系统使得太空船不再位于屏幕中央,而是把待着陆的星球置于屏幕底部并保持不动,然后令太空船相对它来进行移动。[3]

开发

 
肯·汤普逊丹尼斯·里奇
 
DEC PDP-7

1969年,肯·汤普逊作为程序员在贝尔实验室Multics操作系统项目中工作。在工作期间,他在一台GE 635大型机上编写了《星际旅行》。当贝尔实验室放弃Multics项目之后,他把游戏代码转换成了Fortran语言,使得自己能够在GECOS英语General Comprehensive Operating System系统上面继续玩游戏。[3][4]汤普逊和一些员工,例如拉维·塞西英语Ravi Sethi丹尼斯·里奇都是《星际旅行》的玩家。但是实验室内多个终端都被连接到同一个中央电脑,每个终端需要处理任务时都需要提交到队列中,一旦运行游戏,其他正在运行的工作就不得不暂停很长时间。[3]公司采用一个计费系统来统计电脑的使用情况,这意味着玩游戏的成本大约是一次50至75美元。[3][5]游戏在GECOS系统上的表现还不如Multics系统。[6]此外,系统要求玩家输入命令而不是按按钮,导致玩家难以控制太空船。[5]汤普逊想要找到一个更好的解决方案,于是向贝尔实验室请求购买一台DEC-10大型机,以从事新操作系统的开发,这大约需要120,000美元。汤普逊的请求被驳回,因为贝尔实验室刚刚放弃一个操作系统项目,不会再对花钱研制操作系统感兴趣。[6]但是汤普逊发现周围的部门有一台老旧且很少被使用的PDP-7小型机,同样可以达到目的。[3]

当汤普逊开始将游戏移植到新系统上面的时候,他决定不利用任何现成的代码,而是重新写一个新程序。于是他实现了自己的基础代码库,包括代数计算和图形子系统等。一开始,那些代码被保存在GECOS系统里面,采用汇编语言编写,然后汤普逊需要自己把输出结果反映到纸带上面,再将纸带插入到PDP-7机器里面。为了减轻繁重的体力劳动,汤普逊为PDP-7编写了一个汇编器[5]汤普逊发现游戏在新机器上运行得非常慢,于是又吸取了丹尼斯·里奇和Rudd Cassaway在开发Multics文件系统时的经验,在他们工作的基础上设计了自己的文件系统[5][6][7]

轶事

在《星际旅行》被完全移植到PDP-7之后,因为汤普逊无法再参与Multics和GE 635的项目,所以他把自己的开发工具扩展成了一个完备的操作系统。他所设计的操作系统在公司内部广泛传播,在1970年被命名为UNIX[4][5]《星际旅行》是电子游戏产业发展之前的一款早期电子游戏,但之后并未进行商业化,导致它对未来电子游戏的发展没有产生任何影响。不过人们在讲述UNIX历史的时候仍然会提到《星际旅行》。[4][8]

備註

  1. ^ 译名取自《计算机导论》(2020年)[2]

参考文献

  1. ^ 黄石作. 数字游戏设计史. 北京: 北京理工大学出版社. 2021: 20. ISBN 978-7-5682-9404-1 (中文(中国大陆)). 1969年由肯·汤普森(Ken Thompson)编写的《太空旅行》(Space Travel)。 
  2. ^ 潘银松; 颜烨; 高瑜. 计算机导论. 重庆: 重庆大学出版社. 2020: 19. ISBN 978-7-5689-2468-9 (中文(中国大陆)). 曾参与Multics开发的贝尔实验室的程序员肖·汤普森(Ken Thompson)因为需要新的操作系统来运行他的《星际旅行》游戏,在申请机器经费无果的情况下,他找到一台废弃的PDP-7小型机器,开发了简化版的Multics,就是第一版的UNIX操作系统。 
  3. ^ 3.0 3.1 3.2 3.3 3.4 3.5 Ritchie, Dennis M. Space Travel: Exploring the solar system and the PDP-7. 贝尔实验室. 2001 [2016-02-04]. (原始内容存档于2015-12-26). 
  4. ^ 4.0 4.1 4.2 Fiedler, David. The History of Unix. Byte 8 (8) (McGraw-Hill). August 1983: 188 [2016-02-04]. ISSN 0360-5280. 
  5. ^ 5.0 5.1 5.2 5.3 5.4 Ritchie, Dennis M. Yes, A video game contributed to Unix Development. 哈佛大学. [2016-02-04]. (原始内容存档于2015-12-10). 
  6. ^ 6.0 6.1 6.2 Abzug, Charles. Bidgoli, Hossein , 编. The Internet Encyclopedia, Volume 3. 約翰威立. 2003-12-26: 495–496. ISBN 978-0-471-22203-3. 
  7. ^ Raymond, Eric S. Unix编程艺术. 艾迪生韦斯利. 2003-09-23: 30–31. ISBN 978-0-13-246588-5. 
  8. ^ Milian, Mark; Chan, Marcus. 'Pong' Turns 40, But It's Not the Oldest Video Game. Bloomberg. 2012-11-15 [2016-02-04]. (原始内容存档于2015-02-16).