星际旅行 (1969年游戏)

，是UNIX开发者肯·汤普逊于1969年编写的电子游戏。玩家可以模拟操作太空船在代表太阳系的二维画面内进行飞行，或者在不同的行星或卫星表面着陆。太空船会受到万有引力影响。

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

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

 玩法 

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

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

 开发 

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

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

 轶事 

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

 備註 

 参考文献 

Category:1960年代电子游戏
Category:大型電腦遊戲
Category:飞行模拟游戏
Category:Unix历史
Category:贝尔实验室
Category:太空飞行模拟游戏