As recounted in 'The Evolution of the Unix Time-sharing System,'
[links are on my home page] the game
of Space Travel was written by Ken Thompson, first for GECOS in
interactive batch mode. I've written a couple of accounts of
it on Usenet or in mail, but haven't fixed it up for the WWW. Here's an
edited version of one version I saved from 1998. (Since this rendition
isn't particularly historical, I just fixed poor wording instead of
marking changes).
'The Evolution of the Unix Time-sharing System,'
で詳述されたように、ゲーム Space Travel は Ken Thompson によって
最初は GECOS の対話型バッチ・モードで書かれました。
私は Usenet 上で、あるいはメイルで、その 2、3の説明を書きましたが、
WWW のためにそれを整えることはしませんでした。
ここに、私が 1998 年から保存した1つのバージョンを編集したものがあります。
(この翻訳は特に歴史的なものではないので、
私は変更をマークする代わりに貧弱な言葉遣いをちょっと修正しました)
Ken first did Space Travel on the GE 635, before it had a time-sharing
facility, but it did have an "interactive batch" mechanism.
A job would be submitted, you could type to it, and
there were several locally-built displays attached as peripherals.
It was expensive
to run; a game would cost about $50. Of course it
was internal "funny money."
Ken は最初、タイムシェアリング機能を持つ前の GE-635 で Space Travel を行ないました。しかし、それは "interactive batch" メカニズムを持っていました。
ジョブがサブミットされると、キー入力することができ、そしていくつかの
ローカルで組み立てられたディスプレイが周辺装置として接続されていました。
その実行は大変高価なもので、1ゲームが約50ドルもかかりました。
もちろん、それは内輪の「いかがわしいお金」でした。
More or less at the same time, Ken discovered the PDP-7,
which had been fitted out with a nice vector display.
The display was a joint Bell Labs and Digital Equipment design,
built by a nearby department as an output
facility for the (then) main IBM 7094 computer.
This PDP-7 Graphics-II system
was much neater than the 635's display, even if older.
The PDP-7 was a real computer, not a peripheral, albeit small even
by 1968 standards. By then, it was not used much and it was free even
by funny-money standards.
So Ken moved ST to it, and ran the game standalone. The program
was written from scratch, all in assembly language,
and even including a complete floating-point arithmetic
simulator.
おおよそ同じ頃に、Ken はよいベクトル・ディスプレイを装備された PDP-7
を発見しました。ディスプレイは (その時点で) メインだった IBM 7094
コンピューター用の出力設備として、ベル研究所とデジタル・イクイップメントが
共同で設計し、近くの部によって組み立てられたものでした。
この PDP-7 Graphics-II システムは、
より古くても 635 のディスプレイよりはるかにきれいでした。
実際、PDP-7 は 1968 年の標準としても小さいにも関わらず、
周辺装置ではなくコンピュータでした。
その時、それはあまり使用されませんでした。
また、それは「いかがわしいお金」標準からさえ解放されてました。
そこで Ken は Space Travel をそれに移動させて、
スタンドアロンのゲームを実行しました。
プログラムはスクラッチから全てアセンブリ言語で書かれており、
完全な浮動小数点演算シミュレータも含まれていました。
Also, about this time, Ken again got the urge to write his
own operating system. He had started on such a project before, but
on a much bigger machine -- the GE 645 Multics machine.
It didn't take long to realize that he couldn't keep the machine.
またこの時期に、
Ken は再び自分のオペレーティングシステムを書く強い衝動に駆られました。
彼は以前にはるかに大きなマシン (GE 645 Multics machine) で、
そのようなプロジェクトに取りかかったことがあります。
しかしそのマシンを維持できないことを悟るまでに長くかかりませんでした。
Because Ken was now familiar with the '7
and knew he could use it as much as he wanted, the
first version of Unix was written on this PDP-7.
So ST came before Unix, but doing ST led him to a place in which
he could write the first version of Unix.
Ken は PDP-7 に精通しており、
望んだことはなんでもできることがわかっていたので、
Unix の最初のバージョンはこの PDP-7 で書かれました。
したがって Space Travel は Unix 以前からあったことになります。
しかし Space Travel への取り組みは、
彼を Unix の最初のバージョンを書くことができる場所ヘと導きました。
The game itself: it was a simulation of the solar system,
to scale, with the true (scaled) orbit sizes and masses
of the planets and most of the moons. However, it
wasn't a general numerical simulation; instead the bodies
ran on circular tracks at scaled speed in a plane.
ゲーム自体は多くの惑星と月の大半の実際の (縮小された)
軌道サイズを使った縮小版の太陽系のシミュレーションでした。
しかしながら、それは一般的な算術シミュレーションではなく、
船体は宇宙船の縮小されたスピードで循環軌道上を航行しました。
All the bodies had gravity, but it acted only on the rocket ship,
and only the locally strongest-attracting body acted on the ship.
In the simulation, the internal origin for the coordinate system
of the computation
was at the center of this strongest attractor.
This was important for keeping some vague numerical stability
in the calculations (with at best single-precision, software
floating-point), but did lead to some anomalies.
身体はすべて重力を持っていたがそれがロケット推進機にの?ン作用しました。また、ローカルに強い引きつける身体だけが、船に作用しました。シミュレーション(計算の座標系用の内部起源)の中でこの最も強い誘引者の中心にありました。これは計算(を備えた、せいぜい単精度およびソフトウェア、浮動小数点式)中である曖昧な数の安定を維持することにとって重要だったが、いくつかの例外に結びつきました。
For example, it turned out that the gravity of Mars (with
the usual inverse-square formula) is dominates that of Phobos until
you get below the surface of Phobos. So landing on Phobos
was strange-- you sort of floated through its surface, then,
when it became strongest, you snapped back to the surface.
例えば、火星(通常の逆の正方形定式を備えた)の重力がそうであると判明しました、フォボスの表面以下に得るまで、フォボスのを支配します。したがって、フォボス上の上陸は奇妙でした――あなた?A種類、それが最も強くなった時、その表面を通ってそれでは浮かんだ、表面へ折りました。
For controls, there were several buttons: jet forward, jet back, turn left,
turn right; go up scale on the display, go down scale.
The acceleration of the ship was fixed, but it scaled
with the display scale--it was thus fixed in terms
of pixels/sec/sec.
Normally the ship was in the center
of the screen and always pointed up; the display showed the
plan view of the solar system, so that the "rotate"
controls rotated the solar system around you on the display.
コントロールについては、いくつかのボタンがありました:ジェット、前に、ジェット、後ろに、左に曲がる、ちょうど回転する;ディスプレイの目盛りを上ってください、目盛りを下って行ってください。船の加速は固定しました。しかし、それはディスプレイ規?ヘで計りました--それは、ピクセル/秒/秒ではこのように固定しました。通常は、船は強調されて、スクリーンの中心に、および常にありました;そのディスプレイは、太陽系の計画視界を示しました、その結果その「回転します」コントロールは、ディスプレイ上のあなたのまわりの太陽系を回転させました。
No relativity; scale up enough and you travel to Pluto in
a few seconds. But don't scale up too much, or you might
not find the Solar System again without restarting.
相対性はありません。十分に率に応じて拡大してください。そうすれば、数秒で冥王星へ旅行します。しかし、あまり率に応じて拡大しないでください。さもないと、再開せずに、太陽系を再び見つけてはなりません。
The object of the game was simply to fly around, get into
orbits, land. "Land" meant to cross the surface with a small
enough speed.
ゲームのオブジェクトは単にまわりに飛ぶことでした、軌道、土地に入ります。「ランド」は、十分に小さな速度を備えた表面を横断するつもりでした。
Playing with orbits was fun; how you accelerate to change
the size of the orbit and circularize it isn't very intuitive.
One of the variations was to change the display coordinate system so that
it rotated with the nearest body. I.e., if you were
orbiting Mercury, the ship and Mercury would always
lie on a horizontal line. It was also amusing to
crank up the gravity (really, change the timescale)
so that landing was just barely possible.
軌道で遊ぶことは楽しかった;軌道のサイズを変更し、かつそれに回状を送付するためにどのようにして加速するかはあまり直覚ではありません。変化のうちの1つはそれが最も近い身体で回転したように、ディスプレイ座標系を変更することでした。つまり、もしあなたが水星の周囲を回っていれば、船および水星は常に水平線の上に横たわるでしょう。さらに、それは上陸がかろうじてちょうど可能だったように、重力(実際に、時間の尺度を変更してください)を始動させるために楽しませていました。
Among the features of the program was a built-in debugger
that would continuously display the contents of a selected
location. This was especially helpful in getting the
software floating-point arithmetic to work.
プログラムの特徴の中には、
選択された位置の内容を連続的に表示する、
組み込み型のデバッガがありました。
これは、
ソフトウェア浮動小数点演算を働かせることにおいて特に有用でした。
The program also displayed the name of the body that
was the current dominating attractor. As it happens,
Ravi Sethi (of Aho, Sethi, Ullman and other fame, for example
as my former boss and currently as head of Avaya research)
was a summer student: for fun the name of the Sun was Surya,
and Earth's moon Chandra, after their Hindi/Sanskrit names.
プログラムは、さらに誘引者を支配する流れだった身体の名前を表示しました。たまたま、Ravi Sethi(私の元上司として、および現在Avaya研究の頭としてAho、Sethi、ウルマンおよび他の評判に例えば)は、夏学生でした:太陽の名は冗談でSuryaでした。また、地球はそれらのヒンディー語/サンスクリット名の後に、月チャンドラです。
Later we fixed Space Travel so it would run under (PDP-7) Unix
instead of standalone, and did also a very faithful copy of
the Spacewar game originally done (I think) at MIT on
the PDP-1, but that was a different game.
その後、
それがUnixの下で(PDP-7)走るように、
私たちは宇宙旅行を固定しました、
の代わりに、スタンド・アロン、
またさらにPDP-1の上のMITでもとは行われた
(私は考えます)
Spacewarゲームの非常に正確なコピーを行った、
しかし、それは異なるゲームでした。
The first PDP-11 didn't have a good display,
so the only games were text-based, and were
not very interesting, e.g blackjack. They were
described in the early Unix manuals. Of course,
Ken later did a series of chess programs and
hardware that three times won the world
computer chess championship, and was
the first program to attain USCF master level.
第1のPDP-11はよいディスプレイを行っていませんでした、したがって、ただ一つのゲームはテキストベースで、あまり面白くありませんでした、e.gブラックジャック。それらは初期のUnixマニュアルに記述されました。もちろん、知識は、3回が世界コンピューター・チェス選手権を得させた一連のチェス・プログラムおよびハードウェアをその後行い、USCFマスター・レベルに到達する最初のプログラムでした。
Copyright © 2001 Lucent Technologies Inc. All rights reserved.