バキュラは壊れない

今から十数年以上昔、アーケード界に突如現れたビデオゲーム「ゼビウス」は全国のゲーマーに衝撃を与えた。 私はその時小学生だったのでゲームセンターなどという不良の溜まり場(当時はそうだった)に出入りするわけにはいかず、ゼビウスを初めてプレイしたのは後にファミコンに移植されてからであった。そしてその次期になると例の噂も広まっていた。
「バキュラに256発ザッパーを当てると壊せる」
誰が言い始めたのかは知らないが、この噂だけは誰もが知っていた。皆、バキュラが飛んでくるとボタンを猛連射して倒そうと試みた。だが何度試みてもその目的は達成されず噂は謎のまま月日は流れた……。

2001年の春。某2ch掲示板に遠藤雅伸氏が現れた。オールドユーザー達は突然の神の降臨に驚愕した。そして今まで謎であった数々の質問を投げかける。最初の解答はこうであった。


1 名前: 名無しさん@お腹いっぱい。 投稿日: 2001/02/28(水) 01:41 ID:sIdzvZ/k
バキュラって破壊できるのか?


132 名前: EvezooEND 投稿日: 2001/03/14(水) 21:38 ID:???
>>1
> バキュラって破壊できるのか?

 できません


実に分かり易い解答である。これにて一件落着。
と終了してしまうのも寂しいのですこし解析してみる。そもそも、この噂がどう生まれたかを考えてみよう。
まず敵に弾が当ったときのロジックをちょっとしたゲームプログラマーならこう考えるだろう。

当り判定処理
 ↓
破壊できる種類の敵かどうかの判別
 ↓
敵の耐久力を減らす
 ↓
敵の耐久力が0になったら
 ↓
敵の破壊、点数の取得
順番はともかく大体こんな感じだろう。だがゼビウス基盤のCPUはZ80。8ビット時代のプログラマなら少しでも処理を軽くしようと努力する筈。 そこで破壊できない敵の場合は最初から耐久力を滅茶苦茶高くして倒すのがほぼ不可能な状態にし「破壊できる種類の敵かどうかの判別」の判定をなくしてしまえばステップが短縮できる。そこでバキュラの耐久力=256というデマが流れたのだろう。
だが、もう一度ゼビウスを考えてみよう。ゼビウスが他の普通のシューティングと異なる点は?画面が綺麗?音楽が印象的?やり込むほど増える謎の数々?
いや、もっとも注目する部分は「すべての敵が一撃で破壊できる」ということだ。トーロイドだろうが、テラジだろうがアンドアジェネシスだろうがすべて一撃で破壊可能。耐久力などという概念はないのである。すなわち先ほどのロジックは次のように短縮される。
当り判定処理
 ↓
破壊できる種類の敵かどうかの判別
 ↓
敵の破壊、点数の取得
実際にゼビウスのプログラムがどうなっていたかは定かではないが、このロジックでいくとバキュラは絶対に壊れない。
ガンプの科学力は人類を遥かに超越しているのだ。



補足
パリティショットでは「破壊できる種類の敵かどうかの判別」の代わりに、キャラクタクラスのベースにてダメージを受けるメンバ関数を仮想関数にして、オブジェクトが属するクラスによって挙動が変わる仕組みを利用している。
つまりオブジェクト指向の多態性(ポリモーフィズム)の活用ってことで。


戻る