llamasofthistorypart1

Llamasoft History Part1

ジェフ・ミンターが語るLlamasoftの歩み

「はじまり…」

1

父親の言葉から、コンピュータについて初めて学ぶことになった。 両親はオープンユニバーシティ(訳注:イギリスの通信制大学)の学生で、そうした環境は子供の自分にとってすばらしいものだった。 両親はどちらも科学の単位を履修していて、実験キットを受け取っていた。父親の実験は物理に関係するものが多く、母親の実験は生物学に関係していた。 だから、父親は届いたいろいろな種類の面白い機構を使ってダイニングテーブルで実験の準備をして、斜面にボールを転がしたり、ばねと重りで面白いことをしたり、測定や時間計測をやっていた。 母親はたくさんの難解な教科書を持っていて、私も読むことができた。そして時には解剖用の羊の脳みそといった特別なものも送られてきた。(そして母親の実験が終わったあとに、私はそれを学校に持って行ってみんなを気味悪がらせていたものだ。)

父親がコンピュータ科学の単位の学習コースをはじめたとき、私は大体9歳だったはずだ。 父親はそのコースのためにレディングの近くにあるテクニカルカレッジに行く必要があって、そこで「Basic」と呼ばれる何かを勉強しているということを私は知った。 アシモフやクラークの作品を読んで育った私にとっては、コンピュータはアシモフのユニバーサルACのようなものだった。全ての人類の知識を持ち、不気味な自意識をもった電子「頭脳」なのだ。 そうしたものがレディングのすぐそばにまで来ていて交信をしているという考えは興味深いものだった。 ある日、9歳児らしくキッチンをうろついていたら、父親がコースから帰ってきた。 父親にこう聞いてみようという気分になった。 「父さん、世の中にはこんなにたくさんの問題があるのに、どうしてコンピュータにどうすべきか聞かないの?」

父親は、コンピュータは私がSF本で読んだような機械とはまったく違うことを説明してくれた。 実際、コンピュータは「考える」ことがまったくできないのだ。 コンピュータが「知ってる」ことは自分達がコンピュータに明確に教えたことだけだ。 父親は私に出力が印刷された紙をみせてくれた。私はそこに父親とその機械との対話の結果を見た。機械が数字入力をもとめ、簡単な計算をやって、神経衰弱のようなゲームを遊んだということが書いてあった。 まあおもしろいけど、世界を救うような話ではまったくないな。 私はすぐにコンピュータについてすべてを忘れた。それから約9年の間、コンピュータについては忘れたままだった。

2

1978年。私は16歳で、中等学校を出て、シックスフォーム・カレッジ(訳注:大学進学を目指す学生が通う2年制の学校。大学入試のAレベル試験のために数科目を選んで集中的に勉強する。日本で言えば高校生に当たる)にいくところだった。 私の成績は妥当な「O」レベルで、特にすごいものではなかった。 一番成績がよかった科目は、英語、物理、数学で、そのためシックスフォームでは力学を含む数学、物理、そして英文学で「A」レベルの勉強をすることにした。ちょっと奇妙な組み合わせだ。 学校を出たら何をするのかまったく思いつかなかった。ただ、おそらく物理関係かな、という漠然とした気持ちはあった。自分の能力が物理にあっていると感じたからだ。 英文学というのは文系と理系を分けている教育システムでは特に場違いに思えた。

シックスフォームの課程の始めに、誤解を呼びそうな名前の「主要学習」といったものを選ぶ必要があった。実はこれは主要な科目というわけではまったくなく、メインの「A」レベルの学習カリキュラムの間を埋める、さぼってもいいミニコースのことだった。 学年長とどれを選ぶべきか相談していたら、「コンピュータ主要学習」を取ることを提案されたのを覚えている。

「なんだって、端末とか使えるってことかな?」 私は何年も前の父親のテレタイプ出力の束を漠然と思いだしながらそう尋ねた。 そうだ、と彼は答えた。私は特にその主題に特に興味があったわけではなかったが(そのころにはコンピュータがいろいろできるに違いないという未来的な考えは、コンピュータは領収書やリーダーダイジェストの送信にしか役立たないという一般的な認識に置き換えられていた)、まあそれでもやってみようと思った。 裁縫や料理やそういったものよりはましだろうし、気に入らなかったとしても、さぼってもいい「主要学習」なのだ。 だからコンピュータの主要学習に登録した。

もちろん、これがすべての始まりで、学年長の賢明な提案が数十年にもわたって衰えず燃え続ける私の情熱に火をつけた、と言いたかったところだ。 ああ、だがそうではなかったのだ。 確かコンピュータ主要学習の講義には2回しか出席しなかったと思う。 コースの内容が問題だった。 これは世界で一番わくわくする主題を、最もつまらなくやるきをなくさせるように教える方法を誰かさん(それか、委員会での会議が好きで街の顧問になるような人間たち)が考案したようなものだった。

端末だって? たとえ、1秒に数文字しか打ち出せないガタがきた古いテレタイプ端末でもこのコンピュータ主要学習の内容に比べたら機敏でワクワクするものだっただろう。少なくともテレタイプ端末はインタラクティブだ。 このコースを考えた天才はコンピュータの体験からインタラクティブ性を完全に取り除いてしまった。 もしかしたらこのコースはテレタイプ端末すら貴重だった時代への先祖がえりだったのかもしれない…

最初のレッスンでは、CESILという言語を学習するという話をされた。 これは実際に何かを実行するための言語ではなく、私の記憶によれば、学習目的のための人工言語の一つだった。(本当のコンピュータ科学のコースは既に定員を超えていたので、CESILは学生を丘に追い立て、もう二度とコードの近くに行かないと誓わせるために配備されたのかもしれない。) 最初のレッスンで、「Print」のためのキーワードを教わって(何だったか思い出せないが、「Print」以外のものである理由は思いつかない)、それを使うための文法を習った。 そして最初のCESILプログラムを書くときが来た。

マスがかいてある紙を渡され、そこにプログラムの文字を書き込んだ。 この紙の、小さいマスに、大文字で、2、3行の単純なプログラムを忍耐深く書き込んだ。 書きこみ終わったら、紙は集められて、教師によって封筒にいれられた。 そして、教師に言うことには、その封筒はどこかに送られて、プログラムはオペレータによって打ち込まれ(文法間違いも含めて書かれたそのままを奴隷的に入力するのだ)、何かのシステムでバッチ処理され、出力された結果がでて、それがカレッジに郵送で返送され、来週見ることができるということだ。

2回目の講義に行ったことも覚えている。自分が入力したものがちゃんと実行されたのか見たいという好奇心からだったが(ちゃんと実行されていた。文法エラーでエラーメッセージを受けとった学生もいた)、ここでもう十分だと思った。 もし数行の出力や文法エラーを受け取るのに一週間待つようなものがコンピュータなのだったら、自分には向かないと思った。 慎重に授業をさぼる準備をして、自分の「A」レベルのコースに集中することにした。

3

これでコンピュータについてはすべて終わりになっていたかもしれない。ただ一つのことを除けば。 ビデオゲームだ。 それまでにもう様々なビデオゲームを見てきた。兄弟の一人がポンのマシンを買ってきて(最新式で40ポンドもしたことを覚えている。当時ではけっこうな値段だ)、それをテレビにつないで一緒に遊べることが魔法のように思えた。 その前のクリスマスにはベージングストークの煙くさいワインバーでその兄弟が未成年飲酒をしながらブロック崩しをしているのを見たものだった。 スペースインベーダーとの出会いも果たしていた。自分の町に毎年やってくる移動式カーニバルのアーケードテントにあったのだ。 それでも、ビデオゲームとコンピュータを頭の中で結びつけるものはまだなかった。 ゲームは誰かが理解不能な魔法的な方法で作ったブラックボックスであり、一方コンピュータはガスの伝票を送ったりするもので、間違ったことをしてもエラーメッセージを出すのに一週間かかるようなものであることが明らかだった。

カレッジがはじまってからそう遠くないある日に、ある部屋に迷いこんで、そこで面白いものを目にした。 黒髪の青年がテレビと電卓のあいのこのような機械の前に座っていて、その画面には荒削りだけれどビデオゲームとして認識できる何かが映っていた。 彼はキーボードのキーをたたいていて、丸いものが画面を移動していた。 しばらく肩越しに観察したあと、彼にこう聞いてみた。「そこにどうやってゲームを入れたの?」 彼の返事は私の人生を一瞬で変えてしまった…

彼は振り向いてこういった。 「自分で打ち込んだんだ」

彼はゲームを止めて、この機械の電卓みたいな変わったキーボードでLISTと打ち込んだ。画面にコードが流れるように現れた。 これがBASICで、この機械は「Commodore PET」と呼ばれるものであり、BASICを少し学べば、画面に表示するようなゲームを作れる、と彼は説明してくれた。 私の関心は強くかきたてられた。 ゲームを打ち込むことができる…自分のゲームを作り上げることだってできるんだ…ここから自分の真の学習がはじまったのだと思う。

カレッジの図書館に直行し、BASICについての本を見つけた。 カレッジから家にバスで帰る間に、本を熟読して、その仕組みをうっすらと理解し始めた。代数計算にも少し似ているところもあるが、違いも大きかった。 「a=a+1」という式は代数では意味を持たないが、BASICでは命令だ。 「string」という単語も浮浪者がズボンを止めるのに使うものとは違う意味を持つようになった。 プログラム電卓は使ったことがあったから、すべてが見慣れないものというわけでなかった。しかし一行のLED出力で30ステップの純粋計算を行うぎこちないプログラムと比べると、これはまったく新しい世界だった。

バスを降りるころには、頭が回転していた。 BASICの基本のいくつかは理解できたように思った。たとえば変数の使い方や、FOR-NEXTループやIF-THENが何をするかといったようなことだ。ゲームを作れるようになるにはまだ遠かったが、それでも何かをやってみたいとおもった。 その当時、兄弟がAAで働いていて、サンプルプログラムが載った冊子付きのTI-59プログラム電卓を借りていた。 家に帰ると彼の部屋に行き、冊子を強奪して、その例の一つを最初のBASICプログラムとして流用できるかどうか目を通してみた。

私が本を手に部屋へと急ぐのを見て、両親は驚いたに違いない。宿題をまじめにやる人間だとは思われてなかったからだ。 電卓プログラムの冊子をめくって、単純なものを見つけて、自分の最初のきちんとしたプログラムをボールペンで紙に書いてみた。バイオリズムプログラムの移植。使ったことのない電卓プログラム言語から、使ったことがないコンピュータプログラム言語への移植だ。

翌日、両親はまた驚いたに違いない。私が早起きしてカレッジに向かったのだ。 これは以前には起こらなかった…絶対に起こらなかったことだったので、早起きがそれからすぐに習慣になるとまた両親にショックを引き起こした。 この一日目に、誰より早くカレッジについて、Commodore PETに直行した。 電源スイッチを探して慣れない機械を弄り回し、電源を入れて、それ以降見慣れることになる画面をはじめて目にすることになった。

…この点滅する入力プロンプトの四角も現れた。 フォームに書き込んで郵送して一週間待たなければならないなんてことはなく、このビーストでコードを書くことができるんだ。 BASICの数行のコードを書いた紙を取り出して、このマシンに入力をはじめた。行のはじめには、本で読んだ通りに数字を入れた。

この最初の数週間では入力するだけ、紙ではなく、蛍光画面に文字が現れるのを見ることだけでも目新しかった。 私のそれまでの人生において、テレビは完全に一方通行の機械で、テレビゲームが現れて、一方通行から双方向に変え始めたこともごく最近のことだったのだ。 こんな風に画面に書きこむことが実際にできるということは、奇妙で、すごいことにように思えた。

この数行のコードを入力してRUNを打ち込んで、コードが動いた。ほとんどは。 期待したようにマシンが誕生日を聞いてきた。しかし、バイオリズムを出力するところで、何かが正しくなかった。自分のバイオリズム曲線がすべて平坦ということはないはずだ。 幸運なことに、その時には、前日の黒髪の青年がやってきていた。すぐにマーク 「ラプチャード」 ローリンソンという彼のことを私は知ることになった。 彼は正式にコンピュータ科学の「A」レベルコースにいて、以前の学校でRM380Zシステムの経験をつんでいていた一番のギークだった。 一緒にコードを見直し、彼はエラー修正を助けてくれた。 そして、お互いに自分たちのその日のバイオリズムを確認したのだ。

4

それから数週間のうちに、私はギーク仲間に迎え入れられた。 自分のプログラムを記録するカセットテープを手に入れて、いつも持ち歩くことになった。 マーク 「クロヴィス」クローバーやアンドリュー「モール」ラウンドといった他の中心的ギークにも出会った。 昼食時や休み時間には、PETの周りに集まって、プログラミングしたり、他の仲間がプログラミングするのを見たりしていた。 カレッジに朝一番に集まり、夜は清掃係に追い出される最後まで居残った。 そのPETにはマニュアルがなかったので、様々な実験と、怪しい雑誌から集めた知識の断片からできる限り学んでいった。 実世界では、他の学生はカレッジでよくあるような事をしていた。ドラママニアに、科学マニア、かっこいい奴らに、オタク達…だが我々は幸せなことにそうしたすべてを気にせず、知らずにいた。 我々が崇拝したのは、この小さな画面の輝きだった。

私は自分の小さなバイオリズムプログラムをいじり続け、その中で全てのBASICが同じというわけではないということに気づきだした。 図書館の本(後で返却しないと心に決めた)にあったのはテレタイプ端末も含めてほとんどどのようなものでも動く一般的なBASICの記述だった。 Commodore BASICは画面でしかできないようなことをするための拡張命令をもっていた。例えば、何かをPRINTする前のカーソル位置についてなどだ。 それをいじってみて、とうとう私のバイオリズムプログラムは実際に3つの時系列の正弦波曲線を出力できるようになった。 PETには「グラフィックスキャラクタ」も存在した。普通のアルファベット文字とは違う特殊な形状で、グラフィック出力で使うことができるものだ。

PET BASICにはさらに別の技も存在した。 前述したように、カーソルを画面の好きな場所に移動できるコマンドが存在した。 特殊文字を出力することでカーソルの移動が可能だった。<HOME>ならカーソルは画面の左上(キャラクタ座標の(0,0))に送られる。 それから<CURSOR DOWN>キャラクタを10回、<CURSOR RIGHT>キャラクタを2回出力すると、カーソルは座標の(2.10)に来ることがわかる。こうして私はバイオリズムグラフを書くことができた。

便利な技は、カーソルを相対位置で移動できることに関係していた。 例えば画面の中央からはじめて、そこに「*」を出力したとしよう。 キャラクタを出力すると、カーソルはいつも一つ右に移動する。 しかし、特殊文字でカーソル位置をコントロールすることができるので、こうしてみよう。 <CURSOR LEFT>キャラクタを出力する。こうするとカーソルが既に出力した「*」の上に来ることになる。 そしてそこでスペースを出力すると、「*」は消えて、カーソルは右にまた戻る。 そして、そこに別の「*」を出力する。 実行速度によっては、こうすることで「*」が一つ右に動いたように見える。

そこからの手順は簡単だ。<CURSOR LEFT>とスペースと、ボールのように見える「グラフィックキャラクタ」といった好きなキャラクタの文字列を作る。 その文字列をR$としよう。 その文字列を繰り返し出力する…すると動きが出せた。 ボールは自分の意思を持って画面を横切っているように見えるだろう…ブレイクアウトやポンのボールのように。

他の文字列を用意すればボールを別の方向に動かせる。左に行くL$は<CURSOR LEFT>、スペース, <CURSOR LEFT>、<CURSOR LEFT>、ボールだ。 そして上に行くU$は<CURSOR LEFT>、スペース, <CURSOR UP>、<CURSOR LEFT>、ボールといったように… IF-THENでボールが画面の端に行ったかどうか判定して、移動方向を変えることができる。 そして、GETという関数もあった。これでキーボードのキーが押されているのかがわかって、動かしているものの方向を変えることができた。

オブジェクトを動かすことができる。オブジェクトは環境を知っていて、このオブジェクトを操作することができる。 どうしたら「ゲーム」にたどり着けるのか、ようやく理解できたのだ。

5

どうやったらカレッジの外でゲームにありつけるのかも理解した。 コンピュータ主要学習を(非公式に)さぼることにしたので、代わりにスペースインベーダー主要学習を行うことにした。 シックスフォームではそれまでの学校生活よりサボりのやり方も洗練されていた。ドレスコードがあるといっても制服はなかったので、街で学生でないふりをするのは簡単だった。

校門から抜け出して、橋の下を通り、街の路地を抜けて、時にはグリッグのパイを持って、PCWやPractical Computingといった雑誌を途中で買って、丘を下り、陸橋を越えてニューマーケットスクエアまで…それが習慣のようになった。 そこには明るいオレンジの看板のHarlequin Recordsというレコード屋があって、奥の暗がりにはスペースインベーダーの筐体が隠れていた。 そこで仲間たちと秘密の素晴らしい時間を過ごした。順番に遊び、お互いのプレイを見た。 他の学校の熱心なサボり学生もここに集まっていた。 時には、かわいそうな店の主人をなだめるためにゲイリー・ニューマンのシングルといったものを買うこともした。自分たちは長い時間をその店で過ごしていたけれど、めったに物を買わなかったからだ。ただ遊ぶためにその店にいたのだ。

その店に通いだしたころは、まだスペースインベーダーを数回しか遊んだことがなく、自分は達人でもなんでもなかった。 平然と遮蔽がない場所でインベーダーの列に立ち向かっているすごい子供を見たのを覚えている。自分がしていたみたいに家の後ろに隠れ、時々顔をだしておそるおそる狙撃するのではなく、弾を避けつつ戦っていた。 実践と観察からゲームを学んでいった。自分が操作していないときもお互いのゲームプレイを見て、吸収していった。 はじめてインベーダーの一群を全て撃ち落せた時の純粋な喜びをまだ私は覚えている。どきどきする緊迫した鼓動。最後のインベーダーが画面の下へ走り降りてくる。注意深く狙ったショット、そしてあの破壊音!至福の沈黙の瞬間。そして次の一群が現れて、ゲームはあのゆったりとした一定の鼓動に戻る。 まるでちょっとした絶頂のようだった。

私はスペースインベーダーがそれなりに上手になった。それでも凄いというほどではなかった。 死の一列処刑方法(訳注:日本でいう名古屋撃ち?)といったすごいテクニックを知るには、なかなかいないようなゲームの真の達人に出会う必要があった。こうした達人はどんなゲームでも最初から得意で、もし練習したら驚くべきスキルをさらに身につけるような困った人たちだ(我々の仲間のSickboyがその一例だ)。 この数年後に大学に行くまでそうした達人には出会わなかったので、ここでは、今の自分の能力に甘んじることにした。戦場の恐怖をコントロールすることを学び…画面下への進軍をコントロールして敵を扱い…ショット数を数えていつでもUFOで300点を取れるようになった。一人前のスペースインベーダープレイヤーの基本スキルだ。

我々シックスフォームの仲間たちは、ゲームを新しい目で見るようになった。 画面のオブジェクトが動く時、機械の中で変数が増えたり減ったりしてオブジェクトを動かしているということを知っていた。 オブジェクトの衝突を判定するために位置比較が行われていることを知っていた。 こうしたゲーム全ての背後では、プログラムコードが刻々と…指揮を取り、調整し…動いているということを知っていた。

そして、そうしたものを自分達でもやってみたいと思ったんだ。

Part2に続く