Llamasoft History Part2

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

Homeに戻る

Llamasoft Historyに戻る

「色、サウンド、Poke…」

6

カレッジに話を戻そう。我々はとうとうシンプルなゲームを作るには十分な知識を得た。 シンプルというのは、普通と比べたら笑ってしまうほど原始的という意味だ。 たとえそれほどシンプルなゲームであっても、これは自分たちで作った自分のゲームだった。自分の頭から出てきたゲームを友達と一緒に遊べることには、非常に満ち足りた気分にさせる何かがあった。

私が作った記憶があるゲームは、当時人気があったスタートレックゲームのリアルタイム版だった。 私のバージョンは、ターンベースではなく、「エンタープライズ」(似た形のトランプシンボルのPETグラフィックキャラクタを使用)をリアルタイムに操作し、一画面ずつ銀河を移動するというものだった。 時には「クリンゴン」や「ロミュラン」(これらにもトランプのシンボルを使用した)に遭遇し、戦いが起こる。そこでは「レーザー」となる直線や斜め線のキャラクタを撃ち合うのだ。

そのゲームは2プレイヤー対戦のドッグファイトゲームへと発展した。各プレイヤーがキーボードの両端を使って(PETキーボードは小さかったので窮屈だった)自分の「船」を操作して撃ち合った。(船の一つはX型のグラフィックキャラクタだったので、もちろんプレイヤーはX-Wingと呼んでいた) ああ、こうした昔の背景情報が少ないゲームでは、本当の想像力が必要とされていたんだ…

空き時間があればいつでもPETの前で過ごし、ゲームをプログラムしたり、仲間のプログラミングをみたり、お互いのゲームを遊びあったりしていた。 それかほどなく、PETに加えてTRS-80 Model 1がやってきた。我々はそれをTrash-80と呼ぶようになった。 これはZ-80を使ったマシンで、最初は興味深いように見えたが、実際は我々ゲーマーにとってあまり魅力がなかった。PETのような「グラフィック」キャラクタはなく、キーボードは一見よさそうだった(PETの小さく変なキーボードよりキーボードらしい見た目だった)が、くっつきやすくEnterが二重に入力されることもよく起こった。 だから我々はPETにとどまって、自分たちの小さなゲーム作り、そしてゲーム遊びを続けた。

それからすぐに、壮大なゲームを作る野望を持った私は困難に直面した。 画面に存在するオブジェクトが少なく、環境も単純な間はすべてがうまくいっていた。 しかし、画面にたくさんの敵を出し、単純な箱に比べて複雑な環境を作りたいと私は望んでいた。 BASICは遅く、処理も重かった。BASICプログラミングはできるようになったとはいえ、私はまだマシンの中で実際何が起こっているのかまったくわかっていなかったのだ。

7

ギーク仲間のリーダー的存在だった「ラプチャード(有頂天の)」ローリンソンが、私に変わったBASICコマンドについて教えてくれた。PEEKとPOKEだ。このコマンドは完全に謎だった。何が実際に起こるのかまったくわからなかったからだ。 やがて、このコマンドがマシンの内部メモリのどこかにアクセスしていることを理解し、コマンドを使って「ゼロページ」と呼ばれる謎めいた場所の値を書きかえることで、変なことを起こしてみるようになった。

雑誌による情報を集めたところによるとBASICは一部の変数をこのゼロページ領域に保存していて、この領域の値を書きかえると、カーソルが擦れるほど点滅速度を上げてしまうとか、キーボードの自動リピートレートを下げてちょっとでもキーに触ると一気に大量の文字が吐き出すようにする、といった奇妙な現象を引き起こせるようだった。 値を変えても何も起こらないこともあれば、マシンをクラッシュさせることもあった。 当時の私はゼロページへのPEEKとPOKEを大いに活用できていたわけではなかった。何をやっているのかもよくわかってなかった。不可解な魔術のようで、POKEして起こった結果を、その本当の理由を理解せずに見ているだけだった。

一方、自分のゲームに起こっていた問題が気にかかっていた。 プレイヤーが動き回れる迷路構造のマップを持ったゲームを作ろうとしていたが、馬鹿げたことになってきていた。画面と同じサイズの巨大な配列を作ろうと考えていた。画面に出すキャラクタに対応し、衝突判定にも使う値を配列に保存するのだ。 PET BASICでは画面の好きな位置にキャラクタを配置することはできたが、ある位置に表示されているキャラクタを見るコマンドはなかった。 だから、この巨大で、ださくて、見苦しい配列を使うことになった。実用においてもエレガントではない。 だからうんざりしていた… と、そこで、こう考えた。 「そうだ…システムにはメモリがある。そのことはPEEKとPOKEを使ってわかった。 だから、どこかに画面に出ている内容を記憶しているメモリがあるはずだ…」

マシンの前に座り、POKEコマンドを使ってそのメモリの場所を探し始めた。 POKEは(POKE X,Y)という二つの引数を取る。いじくりまわした結果、「X」はシステムメモリの「アドレス」で「Y」はそのアドレスに保存したい値だ、ということがわかっていた。 PETの中には8kのメモリがあって、その中には画面表示のコピーを記憶するメモリがあると予想した。

そこかしこをPOKEした。最初はランダムに、それから体系的に行うようにした。1024バイトの境界に値を書き込むことにした。システムメモリが1Kのメモリブロックサイズで配置されているのが道理だと思ったからだ。 やがて、私はこう入力することになった。

POKE 32768,0

…すると「@」が画面の左上に表示された。そして、探していたものを見つけたことを確かめるために、このコードを打ちこんだ。

FOR X=0 TO 255: POKE 32768+X,X: NEXT

…PETのキャラクタセットすべてが順番に画面の上から表示された。一つも「PRINT」コマンドを使っていないのに。

こうして私はスクリーンRAMの存在を発見し、BASICの制限を抜けだし、マシン動作の真の理解への第一歩を踏み出したのだ…

8

ゲーム作りにおいてこの発見は即座に、そして非常に役立つものだった。 もうカーソル位置の奇妙な文字列をいじる必要はない。画面は幅40文字で位置0は32768なので、コード「N」のキャラクタをX,Yの座標に追加するのはPOKE 32768+(Y*40)+X,Nという単純なコマンドになった。 何より素晴らしいのは、POKEの反対のPEEKコマンドを使えば特定の画面位置にあるものがわかるということだった。今までのような不格好な配列など必要ない。 すべては、数字を動かすことと、その場所に元々あった数字を確認することに単純化された。

これで複雑な環境で多くの敵が一度に出現するような新しい種類のゲームを書けるようになった。 自分たちが作ったゲームの一つはRhinoという名前だった。これはロボトロンのような感じで常に迫ってくる敵(迫ってくる「Rhino」はPETのπのキャラクタ)から逃げ続けるものだった。 もう一つのゲームは「バット」と呼ばれる斜め線にボールをぶつけて反射させて、ターゲットに当てようとするものだった。画面に一度に数百ものバットを表示することもでき、ボールはバットを反射していった。 ゲームプレイをもっと複雑にするために、ボール(PETキャラクタ#81)が当たるとバットが反転するという要素を追加してみた。 こうして生成された反射の軌跡は複雑で面白いものになった。

このゲームはDeflexと呼ぶことにした。

自分たちのコードは、もちろん、難解なものになっていった。この新しい力の代償は、コードの可読性だった。 PRINTコマンドを使っていたころは、何をしているか明らかだった。 今では、制御構造と、謎めいたPEEKとPOKEコマンドばかりだ。 あの理解の瞬間が訪れるまでPEEKとPOKEが自分にとって非常に不可解だったことを思い起こすと、当時の自分たちのコードは普通のBASICユーザには読めないようなものになっていたのだと思う。 我々はマシン依存の道を歩みだしていたのだ。

9

私の社会生活は、今ではギーク仲間を中心に回っていた。 毎朝、早いバスでカレッジに向かう。(天気がよければ、Dixonsで買ったモノラルテープデッキに、絡まってしまった「ウォークマン」ヘッドホンで音楽を聞きながら8マイルほどの距離を自転車で通学する。) 自転車を止め、ロックし、一直線でコンピュータ部屋に行き、そこでこのモノラルテープデッキでギャリー・ニューマンを聞きながら、コーディングする。 そして他の仲間がやってくる、MoleにRupにClovisが、そして、コーディングと遊びといういつもの日課が続く。

早朝と夜の時間には自分達がマシンを使えたが、日中は、マシンの使用はタイムテーブルで管理されていた。 月曜日の朝には、ギークの集団がコンピュータルームに張り出されるタイムテーブルに殺到する。毎日30分のスロットを2つ指定することができるので、早くにいいスロットを確保するのが重要だったんだ。 このスロット予約のために走っているときに、教師に正面衝突してしまったことがある。そして受けた罰は、カレッジ生活で一番ひどいものだった。一週間のコンピュータ使用禁止! そのときは絶望的な気持ちになった。

昼休みは、コーディングをしないときは、カレッジを抜けだして町にいっていた。Harlequinでスペースインベーダーを遊ぶか、他の場所のゲームを探すか…Woolworthの上の方の階もよかった。 電気製品売り場にはたくさんのテレビがあって、テリー・グリフィスがエンバシーワールドチャンピオンシップで優勝しているのを映しだしている。そしてこの時代のゲーム機も平積みになっていた。明るいオレンジのBinatoneのポン、SIMON、マーリン、ちょっと変わったスターチェスなど。自分たちは何も買わずにぶらぶらして、そうしたゲーム機をいじっていたものだ。

下の階にはレコード売り場があって、時々私はギャリー・ニューマンの最新シングルを買っていた。 街の高いところに少しはしっかりしている小さなコンピュータ屋があって、一度様子を見に行ってみた。 PETが置いてあったから、自分のゲームを読み込ませてみたことがある。Woolworthで見かけたスターチェスをコーディングしてみるのを面白いと思って、再現してみたものだ。

店員は私に、このゲームを売ることを考えてみたことがあるか、と聞いてきた。もちろん、そんなことを考えたことはなかった。 自分たちのようなコーディングという趣味は世間全体でほとんど聞いたこともなかったし、このギーク仲間以外でそうした趣味を持っている人を知らなかった。 仲間同士で楽しみ、学ぶためにゲームを作っていて、これでお金稼ぎをするなんて考えた事もなかった。Airfixキットを作ったり、日曜の午後に釣りに行くのでお金を稼ぐなんてことを考えないのと同じだ。 遠い、遠い未来には普通の日用品みたいにテスコみたいなところでコンピュータが買えるようになるかもしれない、なんて冗談を言い合ってたものだ。でもそんなことが起こるなんて誰も真面目に信じてなかった。 自分たちがやっていることはあまりにも取るに足らない。 自分たちはそう考えていた…

10

週末はコーディングの流れを強制的に中断させるものだった。 家にコンピュータがあれば、と心から願っていた。しかし、これはクライブおじさん(訳注:クライブ・シンクレア…後に安価な家庭用PCを発売する)の時代より前で、PETも600ポンドもするものだった…自分のような収入のない学生には高すぎるし、両親も自分にコンピュータを買ってくれるほど金持ちではなければ、自分自身のためにコンピュータを買うほどの興味は持ってなかった。 実際、両親は私のコンピュータへの情熱的な関心も、一過的なものだと思っていた。何かに強烈に熱中しても、数ヶ月で次に興味が移ってしまうという子供にはよくあることを自分も繰り返していたからだ。

友人のギーク仲間はみなベージングストークかその近辺に住んでいたが、自分の家は離れたタドリーにあった。だから、コンピュータから離れた週末には、別のことをして楽しんだ。 コンピュータとは関係ない友達のジェームズ・リスニー(別名:バーグハーストのピアノウィザード)と一緒に長い散歩に出かけて、最後に郊外のパブで未成年飲酒をすることもあった。 それか、祖母に会いにサウサンプトンに行って、街をうろついて、店にあるポンをいじったり、スペースインベーダーを見つけて腕を磨いたり、映画館にいったりしていた… サウサンプトンの映画館で、センサラウンドのバトルスター・ギャラクティカを見たのを覚えている。 ギャラクティカの力強いエンジン音に体が震えるのに感激して、次の週末にもう一度見に行ったんだ。

父親が働いていたのは、この小さい街の多くの人間と同じ、街の端に巨大に広がった原子兵器研究所だった。 真夜中であっても、街が完全に静かになることはなかった。原子兵器研究所はいつでも工業的な響きを街に送り出し、夜にベッドに横になっていても、反応炉を守る警報のカチカチ言う音を聞くことができた。

両親が鉄条網の中で働いていることには特典もあった。研究所複合体のスポーツ設備を使うことができた。これは第二次大戦の空軍の「鉄条網の中」の滑走路の上に建てられていた。(この街の誰もが、残っている滑走路で最初の運転の練習をこっそりしたのだと思う) 小さい子供達はアトミック・クリスマス・パーティでサンタに会ってプレゼントをもらい、自分達のようなもう少し年上の子供はレック・ソック(「レクリエーション・ソサエティ」の略)を楽しむことができた。ここには、小さい映画館に、なにより、アーケードゲームがいくつか置いてある安くビールが飲める補助金付きバー(政府出資の未成年飲酒なんて最高だね!)があった。

ある日、レック・ソックから帰ってきた兄弟が、入ったばかりの新しいゲームについて熱狂的に語ってくれた。 「スペースインベーダーみたいだが、みんな小さい羽虫みたいで、隊列から離れて、降下攻撃をしてくるんだ!」 もちろん、この新しい何かを確かめるために私は即座に自転車に乗ってレック・ソックに向かった…

そこには、ギャラクシアンの素敵なテーブル筐体(ああ、テーブル筐体が懐かしい。友達とビールを飲みながら対戦するのにもぴったりだったのに)があって、どんなに感銘を受けたか今でも思い出せる。 この時代のビデオゲームには色があるのは珍しかった。色があるとしてもスペースインベーダー形式(白黒ディスプレイの上に色つきセロハンを張る…ローテクだ)だった。 だがギャラクシアンでは、色はピクセルに埋め込まれている…明るい、黄色、赤、青に、紫…そしてゲームの背景もスムーズにスクロールする色づいた星のきらめきだった。 白黒ディスプレイと、固定された「グラフィックキャラクタ」の制限に慣れきっていた自分達PETハッカーにとって、まさに驚嘆するものだった。

ゲームプレイもスペースインベーダーの統制された行進に比べると、はるかに流れるようで複雑だった。 鮮やかな色のまるで宝石のような昆虫たちが、画面上方に羽音をたてて群れをなしていた。そして兄弟が説明してくれたように、一匹、あるいはグループで隊列から外れて、長いループの軌跡を描き、奇妙なノイズをたてて、画面下の自機にむけてミサイルを雨のように降らせてきた。 神風特攻もしてきて、小心者のプレイヤーに直接突撃してくることまでしてきた。

ショット数を数えることとUFOはいなかったが、明るい黄色の「ボス」がいて、それを倒すと、特別のボーナスと、突撃攻撃と弾の雨からの一時的な急速を得ることができた。 仲間を先に倒してから、ボスを倒せばでかい800点のボーナスだ。

何日も午後をこのマシンを遊んで過ごした。一人のときも、兄弟や、バーグハーストのピアノウィザードと競争するときもあった。腕を磨き、ゲームのちょっとした癖や、自機の先端で敵にタッチしてショットを撃たないで敵を破壊するという裏技などを学んでいった。 攻撃のリズムはスペースインベーダーと似ていた。面の最後には、残っている敵が連続して画面の下へと攻撃を仕掛けてくる必死の生き残りの攻防がある。最後の一匹を倒すと、沈黙と完了の栄光の瞬間があり、そして次のギャラクシアンがノイズを出しながら現れる。

音と色…キャラクタ行列の制限を受けないスムーズな動き… こうしたものは自分達PETギークにとっては、夢見ることしかできないものだった。ギャラクシアンのようなゲームを見ることで、自分達の身の程を思い知った。 自分達も遊びとして小さいゲームを作れるのは確かだ。それでも、アーケードゲームの素晴らしさに対等に立ち向かうことなど出来はしない。 そして、一方、私自身もゲームでの問題に直面しつつあった。再び…