アステロイド (ゲーム)

アステロイド（Asteroids）は、宇宙を題材とした複数方向への攻撃が可能なシューティングゲームで、ライル・レインズとエド・ログによりデザインされ、最初の版は1979年11月にアタリよりアーケードゲームとしてリリースされた。 プレイヤーは小惑星帯の只中で1台の宇宙船を操作し、小惑星との衝突を避けながらそれらを撃って破壊することを目的とする。画面には時折空飛ぶ円盤が飛来して自機を攻撃してくるが、これの回避および破壊も目的に含まれる。ゲームが進行するにつれ小惑星の数が増え、難度が上昇していく。 アステロイドはアーケードゲームの黄金時代における最初の大ヒット作である。アステロイドのゲーム筐体は7万台以上売れた人気作となり、またゲーム開発者にも多大な影響を与えた。1980年代にはアタリ社の家庭用ゲーム機器に移植された。中でも Atari VCS (Atari 2600) 向けの移植作は300万個以上売れた。本作を模倣した作品が多数作られ、また本作の影響を受けて『ディフェンダー』『Gravitar』など多くのゲームが開発された。 アステロイドは ライル・レインズ（Lyle Rains） と エド・ログ（Ed Logg）によって着想され、ハワード・デルマン（Howard Delman）が以前に開発した『ルナーランダー』のハードウェアを元に開発することとなった。本作は開発中止になった『Cosmos』というゲームを元にしている。同作の物理モデルや操作方法、ゲームプレイの要素は、『スペースウォー!』『コンピュータースペース』『スペースインベーダー』に由来したもので、そこから試行錯誤を経て現在知られる形になった。ゲーム画面はベクタースキャンディスプレイを用いて表示される。ゲーム空間は二次元平面であり、その上下端および左右端はそれぞれつながっている。→#開発 なお、現在ではウェブサイト上で当ゲームを無料で遊ぶことができる[3] 。 プレイヤーは三角形をした自機を操作し、小惑星と円盤(UFO)を破壊することを目標とする。自機は左右への回転と噴射による前進ができ、また前方に弾を撃つことができる。一度自機が進み始めると、別の方向へ向けて噴射しない限り、同じ方向への運動が継続するが、噴射をしないでいると最終的に自機は停止する。プレイヤーはボタン操作で自機を超空間へと送り込むことができる。これにより、自機は画面上から消えた後に、ランダムな場所へ再出現するが、その際に小惑星に重なって出現してしまい自滅するリスクがある。 各レベル（ステージ）の開始時は大きな小惑星が複数個、様々な方向へと漂っている。小惑星・自機などのゲームオブジェクトはいずれも画面の端をワープする。例えば小惑星が画面上端に来ると小惑星は消失し、運動方向および速度を保持したまま画面下端から再出現する。プレイヤーが小惑星を撃つと、小惑星は複数個のより小さな小惑星へと分裂する。分裂後の小惑星は動きがやや速くなるため、破壊するのが難しくなっていく。小さな小惑星ほど点数が高い。空飛ぶ円盤は2種類あり、周期的に出現する。大きな円盤はランダムだが低頻度で弾を撃ち、小さな円盤は自機を狙って高頻度で弾を撃つ。点数が4万点以上になると小さな円盤しか出現しなくなる。点数が高くなるにつれ、小さな円盤の撃つ弾の制度が上がり、最終的には正確に自機を狙ってくるようになる。すべての小惑星と円盤が画面上から消えると新たに大きな小惑星が配置され、新しいレベルの開始となる。レベル開始時の小惑星の数はゲームが進行するにつれ増えていくが、点数が4万点から6万点の間に到達するとそれ以上は増えなくなる。ゲーム開始時の自機の数は3から5機で、1万点獲得するごとに1機増える。最後の自機が失われるとゲームは終了する。点数が99,990点を超えると点数カウンターが1周するため、ゲーム機が記録できる最高点はこの点数となる。 ゲーム開発時、円盤は出現直後に弾を撃つようになっていたが、ゲームを難しくし過ぎることを懸念し、出現直後は弾を撃たないように修正された。この修正に加えて、円盤は画面上の自機をゲーム画面上の位置関係に基いて狙い撃ちするため、画面の端をまたいでの射撃ができないという仕様があり、これらが潜伏 (lurking) と呼ばれる戦略を許す要因となった。これは数個の小さな小惑星をわざと残した状態で、自機を画面端近くに位置させ、円盤が出現したらその反対側の画面端に移動し、端をまたいで円盤を撃って破壊するというものである。この戦略はプレイヤーにとっては比較的安全に点数を稼げるものであり、ゲームセンターの経営者にとっては売上の低下に繋がるものであった。そのため、アタリ社はこの問題を修正した EPROM を製造し、また同種の戦略を将来に渡って防ぐために開発やテストプレイの方針を変更することとなった。 アステロイドはライル・レインズ（en:Lyle Rains）が考案し、エド・ログ（en:Ed Logg）がプログラムし、アタリの他のスタッフとの共同作業により製作された。エド・ログはアタリビデオコンピュータシステム（後にAtari 2600と改称）に感銘を受け、アタリのコインゲーム機部門に参加し、「Dirt Bike」（ ダート・バイク）ゲームに取り組んだものの、これはフィールドテストが未成功に終わりリリースされなかった。ポール・マンクーソもアステロイドのテクニシャンとして開発チームに加わり、エンジニアのハワード・デルマンがハードウェア開発に貢献した。1979年4月のミーティングで、レインズはマルチプレイヤー・アーケードゲーム「Planet Grab」（後にCosmosに改名）について議論した。ログは「コンピュータースペース」（Computer Space）というゲームから2次元的な手法の着想を得た。レインズはComputer Spaceとスペースインベーダーの要素を組み合わせることでアステロイドを創作した。つまりComputer Spaceの2次元的手法、およびスペースインベーダーの「面クリア」と「全脅威を排除」という中毒性のあるゲーム要素を組み合わせた。当ゲームの制作段階では巨大で破壊不能な隕石も登場していた。それを見たレインズはエド・ログにこう尋ねた。「ねえ、隕石を撃って吹っ飛ばすゲームにしてみたらどうかな？」 ログはそれを聞いて、隕石を選んで撃つと小さな破片に割れるという案について語った。二人はこの案で合意した。 アステロイドは、デルマンによって開発されたハードウェア上に実装された。これはベクターゲームであり、グラフィックスはベクターモニター上に描かれた線で構成されている。レインズは最初はラスターグラフィックスでゲームを作成したかったが、ベクターグラフィックスの経験が豊富なログが、高画質のXYモニターなら正確な照準が可能となると言ってそちらを使うことを提案した。ハードウェアの主な要素はMOS 6502とQuadraScanであり、MOS 6502のほうはゲームプログラムを実行する機能を担うもので、QuadraScanのほうはアタリが開発した高解像度のベクターグラフィックスプロセッサであった。QuadraScanは「XYディスプレイシステム」や「デジタルベクタージェネレータ（DVG）」とも呼ばれたもので、そのオリジナルの設計案は1978年にCyan Engineeringという名の、カリフォルニア州グラスバレーにあるアタリのキャンパス外の研究所で生まれたもので、Cyan Engineeringがその設計をデルマンに提供して完成させ、最初は「Lunar Lander」ゲームで使用された。エド・ログは、デルマンが改造した基板（5つのボタン、13の効果音、追加のRAMが含まれていたもの）を受け取り、それを使用してアステロイドを開発した。基板のサイズは4インチ × 4インチで、モニターに繋がれていた。 アステロイドは、まず1981年にAtari VCS（後にAtari 2600と改称）および「Atari 8ビット・ファミリー」向けにリリースされ、その後1986年にAtari 7800向けにリリースされた。7800向けのものは、2人が同時にプレイできる。 Atari 5200向けの版は、Atari 8-bit computer向けの版と同一のものであり、1982年に開発されたが、結局リリースされなかった。 Atari 7800向けの版は、同機向けのローンチタイトルであり、（2名が）協力するプレイを含み、隕石はカラフル。 プログラマのブラッド・スチュワートとボブ・スミスはAtari VCS向けを4 KBカートリッジのサイズに収めることができなかった。その結果、Atari VCSはゲーム機として初めてバンクスイッチという技術が使われることになり、その技術でROMのサイズを4 KBから8 KBへと増加させた。 1982年2月6日、レオ・ダニエルズという名の男性が40,101,910ポイントを獲得した。 同年11月13日、スコット・サフランがレオを超え、41,336,440ポイントを獲得した。1998年のこと、ツインギャラクシーズはスコットが当ゲームの世界記録プレーヤーであることを祝うために彼を探したが、捜索は2002年までの4年もかかり、結局、スコットは1989年に事故で亡くなっていたことがわかった。スコットはニュージャージー州在住で、記録達成当時は15歳の少年であった。ツインギャラクシーのスタッフのウォルターデイはスコットの遺族に賞を贈った。 2010年4月5日、ジョン・マカリスターという名の人物がスコットのハイスコアを破った。自身のゲームプレイをインターネット上でライブ配信しつつ58時間プレイしつづけて、41,838,740ポイントを獲得した。