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

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

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

玩法
--

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

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

开发
--

肯·汤普逊和丹尼斯·里奇
DEC PDP-7
1969年，肯·汤普逊作为程序员在贝尔实验室的Multics操作系统项目中工作。在工作期间，他在一台GE 635大型机上编写了《星际旅行》。当贝尔实验室放弃Multics项目之后，他把游戏代码转换成了Fortran语言，使得自己能够在GECOS（英语：）系统上面继续玩游戏。汤普逊和一些员工，例如拉维·塞西（英语：）和丹尼斯·里奇都是《星际旅行》的玩家。但是实验室内多个终端都被连接到同一个中央电脑，每个终端需要处理任务时都需要提交到队列中，一旦运行游戏，其他正在运行的工作就不得不暂停很长时间。公司采用一个计费系统来统计电脑的使用情况，这意味着玩游戏的成本大约是一次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历史的时候仍然会提到《星际旅行》。

参考文献
----

1. 1 2 3 4 5 6  Ritchie, Dennis M.. 贝尔实验室. 2001  [2016-02-04]. （原始内容存档于2015-12-26）.
2. 1 2 3  Fiedler, David.. Byte **8** (8) (McGraw-Hill). August 1983: 188  [2016-02-04]. ISSN 0360-5280.
3. 1 2 3 4 5  Ritchie, Dennis M.. 哈佛大学.  [2016-02-04]. （原始内容存档于2015-12-10）.
4. 1 2 3  Abzug, Charles. Bidgoli, Hossein , 编.. 約翰威立. 2003-12-26: 495–496. ISBN 978-0-471-22203-3.
5. ↑  Raymond, Eric S.. 艾迪生韦斯利. 2003-09-23: 30–31. ISBN 978-0-13-246588-5.
6. ↑  Milian, Mark; Chan, Marcus.. Bloomberg. 2012-11-15  [2016-02-04]. （原始内容存档于2015-02-16）.

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| * 
* 论
* 编
早期電子遊戲史 |
| --- |
|  |
| 模拟和灯泡游戏 | 
* 阴极射线管娱乐装置（1947年）
* Turochamp（1948年）
* 大脑伯蒂（1950年）
* Nimrod（1951年）

 |
|  |
| 互动视觉游戏 | 
* OXO（1952年）
* 雙人網球（1958年）

 |
|  |
| 数码电脑游戏 | 
* 早期大型電腦遊戲（1950年代）
* （1962年）
* 馬倫巴（1962年）
* 蘇美爾遊戲（1964年）
* （1968年）
* 星际旅行（1969年）
* 登陸月球（1969年）

 |
|  |
| 首批街机游戏 | 
* 電腦太空戰（1971年）
* 銀河遊戲（1971年）

 |

 |

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| * 
* 论
* 编
肯·汤普逊 |
| --- |
|  |
| 操作系统 | 
* Unix
* 貝爾實驗室九號計畫

 |
|  |
| 编程语言 | 
* B語言
* Bon（英语：）
* C语言
* Go

 |
|  |
| 软件 | 
* Belle（英语：）
* QED（英语：）
* ed
* Sam（英语：）
* 星际旅行 (1969年游戏)
* Thompson shell

 |
|  |
| 字符编码 | 
* UTF-8

 |

 |