何を見てもアルゴリズムを考えてしまうのがプログラマの職業病第二段。
前回はナイトレイドという、
非常にマイナーな作品だったのですが、今回はメジャーなタイトルを取り上げてみたいと思います。
バトルガレッガの臨死
メジャーといいつつも世間的には非常にマイナーで申し訳ありません。
90年代後半の弾幕シューティングの幕開けは怒首領蜂(どどんぱち 1997年 cave)とされることが多いですが、
BATTLE GAREGGA(バトルガレッガ 1996年 RAIZING)の2面ボスを見てcaveの開発者が
「そこまでやってもいいんだ」と弾幕をコンセプトにした怒首領蜂を作ったという逸話があり、
このバトルガレッガを弾幕シューティングの始祖とする意見も多いです。
シューティングゲームのスコアラー(スコアアタックをする人々)界隈では非常に有名なこのゲーム、
いくつかバグがあるのですが、初めてみたときに何が起こったのか理解できないのが「臨死」と呼ばれる現象でしょう。
本当は実物を見てもらいたいところなのですが、YouTubeで手ごろな動画が見つかりませんでした…。
現象としては残機のない状態で、ミスをしながら1UPするとGameOver時にばらまくアイテムをばら撒いて死んだはずなのに
何事もなかったようにプレイ続行できる、という現象です。
バトルガレッガというゲームでは100万点ごとに1UPする上、スコアを稼ぐのにボムを大量に使用するので、
ゲームオーバー時に出るボムアイテムを回収しながらGameOverにならずにプレイ続行できるこの現象は、
スコアアタックでは非常に有利なのです。私も当時はこの「臨死」の練習をしたものです。
その原理
前提条件が幾つかあります。
- パワーアップなどがアイテム制で、ミスした際にはパワーアップアイテムなどをばら撒くタイプのゲームであること。
- ミスした際にその場で復活するタイプのゲームであること(グラディウスシリーズのような戻るタイプでは不可能)
- ミス中に1UPすることが可能であること
最後の1機をミスをした瞬間にGameOverと表示させるのであれば面倒はないのですが、
ミスをした後にアイテムがばら撒かれ、自機が爆煙を上げて落ちるといった演出がされます。
そのため、ミス時のアイテムの種類の判定はミスの瞬間に行い(GameOver時には多くのアイテムをばら撒く)、
GameOver判定は次の自機が登場するタイミングで行うというアルゴリズムが用いられます。
そのため、アイテム判定時にはGameOverと判断され、コンティニュー用に多くのアイテムをばら撒き、
GameOverが確定するまでの間に1UPすることでGameOverとならずに復活することができるのです。
開発もとのRAIZINGのアームドポリス バトライダー(1998年)では1UPをアイテム方式にして
この「臨死」が行えないようにしています。
臨死を行えるゲームはそれなりに多くあるようですが、あまりにシビアであったり、
また、臨死をするメリットがないので単なる大道芸となったりといった具合です。
ゲームのようなリアルタイム性の強いプログラムでは、この現象のように思わぬタイミングで
処理が発生すると奇異な現象が起こることがあります。
プログラムする際にはこういった「間」にも注意を払いましょう。
投稿日時 : 2007年9月12日 20:51