第5話でクリエが言っていたとおり、プレイヤーは開発者が敷いたレールの上を歩いてくれません。壁に向かって走り続け、あり得ない速度でジャンプを連打し、システムの隙間を突いて「裏世界」へ旅立ちます。

ここでは「しゃがむ」「跳ぶ」「壁にぶつかる」というありふれた3つの操作が、なぜこれほどバグの温床になるのかを、歴史に残る事例から見ていきます。


1. 初代『スーパーマリオブラザーズ』のマイナスワールド

1985年のファミコン版で発見された、おそらく世界一有名な壁抜けです。World 1-2 の終盤、ゴール地点の土管が並ぶあたりで起こります。

何が起きるか

特定のブロックを壊し、しゃがんだ状態で壁際に入り込むと、マリオがレンガの中へ吸い込まれるように横滑りしていきます。そのまま先の土管に入ると、本来存在しないはずの「World -1」へ飛ばされます。中身は水中面で、進んでも進んでも終わりが来ません。

なぜ起きるのか

2段階に分けて考えると分かりやすくなります。

前半は、当たり判定のすり抜け。 スーパーマリオの状態でしゃがむと、当たり判定の高さが縮みます。この状態で壁の角に押し込まれると、ゲームは「めり込んでいるので外へ押し出す」という処理をしますが、押し出す向きの計算が壁の内側を向いてしまい、そのまま壁の中を滑っていきます。

後半は、行き先データの取り違え。 ワープ用の土管は、入ったときに「次はどのワールドか」という値を読みます。正規の手順で来ていないため、この値が設定されないまま参照され、意図しないワールド番号が使われます。画面には「-1」と出ますが、これはマイナスの世界が用意されているわけではなく、表示できない番号がそう見えているだけです。

「World -1」という別世界が作られていたのではなく、用意されていない場所を指してしまった結果です。バグの多くは「何かが追加された」のではなく「何も無いところを読んだ」ときに起こります。


2. FPSの「しゃがみジャンプ」による天井抜け

『Half-Life』の系譜を引く3Dゲームで長く知られている挙動です。上の動画は『CS:GO』のもので、しゃがみを絡めたジャンプで本来届かない場所へ上がっていく様子が見られます。

何が起きるか

低い天井や部屋の角に向かってジャンプし、空中でしゃがむ/立つを高速で切り替えると、壁の裏や建物の上へ抜けてしまうことがあります。

なぜ起きるのか

3Dゲームのキャラクターは、目に見えるモデルとは別に、カプセルや箱の形をした当たり判定を持っています。しゃがむとこれが縮み、立つと伸びます。

狭い場所でこの伸縮を繰り返すと、立ち上がった瞬間に判定が天井へ深くめり込む一瞬が生まれます。物理側は「めり込んだままでは動けなくなる」ため、近くの空いている方向へ押し戻そうとします。このとき押し戻す向きと量が過剰になると、天井の向こう側まで運ばれてしまいます。

第5話の「壁に向かって連打する」が、まさにこれを引き起こす操作です。1回では何も起きなくても、タイミングが噛み合う瞬間を引くまで繰り返すと再現します。


3. 『スーパーマリオ64』のケツワープ(BLJ)

RTA(タイム短縮を競う遊び方)で広く使われている、後ろ向き幅跳びを使った加速技です。上の動画はコントローラー映像つきなので、何をどう連打しているかが見えます。

何が起きるか

階段や坂で、しゃがみながら後ろ向きに幅跳びを出し、着地のたびに跳び直すのを繰り返します。マリオが激しく震えながら加速し、やがて閉じているはずの扉や壁をすり抜けて別のエリアへ移動します。

なぜ起きるのか

ここも2つの要素が重なっています。

ひとつは、速度に上限が無かったこと。 前進の速度には制限がありましたが、後ろ向き幅跳びの速度には同じ制限がかかっていませんでした。階段のような地形では跳び直しがすぐ成立するため、マイナス方向の速度が積み上がり続けます。

もうひとつは、当たり判定が「点」でしか行われないこと。 多くのゲームは1フレームごとに位置を進め、その位置で壁に触れているかを調べます。1フレームの移動量が壁の厚みを超えてしまうと、移動前は手前、移動後は向こう側となり、途中で壁に触れた瞬間が存在しません。結果として、ぶつかったことにならないまま通過します。

この「速すぎるとすり抜ける」問題自体は特定のゲームの欠陥ではなく、当たり判定の作り方に由来する一般的な現象です。防ぐには、移動の軌跡そのものを線分として調べる方法(連続的な当たり判定)を使います。


共通しているのは「だろう」が壊されたこと

3つとも、開発者が無意識に置いた前提をプレイヤーが踏み越えたときに起きています。

第5話でマナブが味わった絶望は、この「だろう」が全部外れる体験でした。テストプレイで自分の作品を壊しにいくというのは、自分が置いた前提を自分で疑う作業にほかなりません。

余談ですが、ここで挙げたバグはどれも修正されずに愛され続けています。マイナスワールドは語り草になり、ケツワープはRTAの定番技になりました。綻びが、遊びに変わることもあるわけです。とはいえ、それは結果論として起きたこと。まずは見つけるところからです。