スペース・トラベル (ビデオゲーム)

スペース・トラベルは1969年にケン・トンプソンが開発し初期のビデオゲームで、太陽系の旅をシミュレーションできる。プレイヤーは2次元の太陽系を目的もなく宇宙船で彷徨い、様々な惑星や衛星への着陸を試みることだけができる。プレイヤーは宇宙船を動かしたり回転させたり、画面の拡大率を調整することで全体の速度を調整したりできる。宇宙船を引き寄せることができる天体は付近で最も強い重力を持つ星1つだけである。 このゲームはビデオゲーム市場が立ち上がる前にベル研究所が開発したもので、1969年にMulticsからGE 635用のGECOSに移植され、続けてPDP-7に移植された。トンプソンはゲームをPDP-7に移植するついでに独自のオペレーティングシステムを開発し、後にこれがUNIXの原点となった。スペース・トラベルはベル研究所の外に広まることなく、以降のゲームに影響を与えることもなく、ただUNIX開発の出発点として歴史に名を残している。 スペーストラベルは宇宙飛行のシミュレーションゲームで、2次元の平面を上から見下ろす視点になっており、黒い背景に白い線でオブジェクトを描くモノクロのゲームである。プレイヤーはこの2次元空間内に作られた太陽系の中で宇宙船を制御する。このゲームは太陽系の惑星や衛星に着陸する以外に目的がない。惑星や衛星はサイズや個々の間隔で特徴づけられており、軌道はシンプルな円のみである。宇宙船の速度を十分に落として、地表を表す線に交差させると、星に着陸できる。プレイヤーは前進、後進、方向転換で宇宙船を制御できる。画面を拡大縮小することで宇宙船の速度を制御でき、拡大率に合わせて一定の加速度を保つ。画面を縮小しすぎると数秒で太陽系を脱出できるが、一度飛び出すと再び太陽系を見つけて戻るのは難しい。画面を拡大すると宇宙船がゆっくり移動して着陸が可能になる。宇宙船は常に画面の中央にあり、上を向いている。宇宙船を右や左に回転させると、宇宙船ではなく太陽系のほうが回転する。 惑星や月には質量があり、重力を持つが、それぞれの星がお互いに影響を及ぼすことはなく、周辺で最も強い引力を持つ星だけが宇宙船に影響を及ぼす。この設計は奇妙な挙動を生む。例えば火星の重力は衛星フォボスの重力よりもはるかに強い。つまりフォボスに着陸しようとする場合、フォボスの重力に支配されるようになるまでは宇宙船がフォボスに向かていくように操作し、支配が火星からフォボスに切り替わったらその瞬間に宇宙船の向きを逆にして着陸する。画面には現在宇宙船が引き寄せられている惑星や衛星の名前が表示される。プレイヤーはプログラムを変更することで設定を変更できる。重力を増やして難易度を上げたり、宇宙船が画面の中央に固定されないようにしたり、星ではなく宇宙船が回転するようにしたり、重力が作用している星を画面の下に固定して宇宙船が相対的に動作するようにするなどの改造が、当時ベル研でスペース・トラベルを遊んでいた人々の間で人気だった。 プログラマーのケン・トンプソンは1969年にベル研究所でOSのMulticsを開発するプロジェクトに参加していた。トンプソンは仕事中にGE 635でスペーストラベルを開発していた。ベル研究所がMulticsの開発から撤退した時には、Multics用に記述されたスペース・トラベルをFORTRANに移植し終えており、既に研究所にあったGE 635で動作するGECOSでこれを走らせることができた。トンプソンの他に、ベル研究所の仲間たちであるラヴィ・セティやデニス・リッチーらもこのマシンでこのゲームを遊んでいた。しかしこのコンピュータは複数の端末が1台の中央コンピュータに接続するインタラクティブ・バッチモードで稼働しており、各端末のジョブをキューに送る必要があったため、GE 635が他の端末のジョブを実行している間はゲームが長時間停止した。コンピュータの使用状況はコストシステムにより社内で把握されており、1回のプレイで$50～$75のコストがかかっていた。またGECOSではMulticsのようにはスムーズに動作しなかった。さらにこのシステムはボタン入力をリアルタイムで検知できず、コマンド入力方式で操作をしなければならなかったことから、宇宙船のコントロールは難しかった。良い解決策を求めていたトンプソンは、当時$12万のPDP-10をOSの開発用として購入することをベル研究所に提案したが、Multicsから撤退したばかりのベル研究所はOSの開発にこれ以上の予算を浪費することに否定的であり、提案は却下された。しかしトンプソンは隣の部署に古くてほとんど使われていなかったミニコンのPDP-7を発見し、別の目的で使ってもよいことを確認した。 トンプソンがこのゲームを新しいシステムに移植する作業を始めたとき、既存のコードを流用せず、一から書き直すことにした。結果的に数学関数やグラフィック処理などのライブラリから開発することになった。これらのサブシステムは当初はGECOSシステム上でアセンブリ言語によって記述されてアセンブルされ、出力されたバイナリを紙テープに書き出してPDP-7に読み込ませた。次にトンプソンはこの面倒な作業をやらなくても済むようにPDP-7で動作するアセンブラを開発した。新しいマシン上ではゲームの動きが非常に遅かったため、少し作業を脱線させて、Multicsの開発経験があったデニス・リッチーやラッド・カナダらアイデアを部分的に拝借して独自のファイルシステムを開発し、この上でスペース・トラベルを動かした。 トンプソンはスペース・トラベルをPDP-7に移植する作業を終えると、MulticsやGE 635ではできなかった進め方で、このソフトウェア一式を基本的ながらも完全なOSに仕上げた。彼が開発したOSは社内に広まり、1970年にUNIXと名付けられたOSのコアになった。スペース・トラベルはビデオゲーム市場が立ち上がる前に初期のメインフレーム上で開発されたゲームの1つで、研究所の外に配布されることはなかった。そのため以降のビデオゲームに影響を与えることはなく、ただUNIX開発の出発点として歴史に名を残している。 ^ a b c d e f Ritchie, Dennis M. (2001年). “Space Travel: Exploring the solar system and the PDP-7”. Bell Labs. 2015年12月26日時点のオリジナルよりアーカイブ。2016年2月4日閲覧。 ^ a b c Fiedler, David (August 1983). “The History of Unix”. Byte (McGraw-Hill) 8 (8): p. 188. ISSN 0360-5280. https://archive.org/stream/byte-magazine-1983-08/1983_08_BYTE_08-08_The_C_Language#page/n189/mode/2up 2016年2月4日閲覧。  ^ a b c d e Ritchie, Dennis M.. “Yes, A video game contributed to Unix Development”. Harvard University. 2015年12月10日時点のオリジナルよりアーカイブ。2016年2月4日閲覧。 ^ a b c Abzug, Charles (2003-12-26). Bidgoli, Hossein. ed. The Internet Encyclopedia, Volume 3. John Wiley & Sons. pp. 495–496. ISBN 978-0-471-22203-3. https://books.google.com/books?id=wshm3f0hyI8C&pg=PA495&dq=%22space+travel%22+game+1969&hl=en&sa=X&ved=0ahUKEwjvotz3jN_KAhVJeSYKHcahDkY4ChC7BQg3MAI#v=onepage&q=%22space%20travel%22%20game%201969&f=false  ^ Raymond, Eric S. (2003-09-23). The Art of Unix Programming. Addison-Wesley. pp. 30–31. ISBN 978-0-13-246588-5  ^ “'Pong' Turns 40, But It's Not the Oldest Video Game”. Bloomberg (2012年11月15日). 2015年2月16日時点のオリジナルよりアーカイブ。2016年2月4日閲覧。