RTA走者が利用する“バグ”を分析 ソフトウェア開発に役立つか? 「スーパーマリオシリーズ」4作で調査:Innovative Tech
英ブリストル大学などの研究者らは、スーパーマリオシリーズ4作品(スーパーマリオブラザーズ、スーパーマリオブラザーズ3、スーパーマリオワールド、スーパーマリオ64)を対象に、これまでに報告されている237件のバグを調査した研究報告を発表した。
Innovative Tech:
このコーナーでは、2014年から先端テクノロジーの研究を論文単位で記事にしているWebメディア「Seamless」(シームレス)を主宰する山下裕毅氏が執筆。新規性の高い科学論文を山下氏がピックアップし、解説する。
X: @shiropen2
英ブリストル大学などに所属する研究者らが発表した論文「Super Mario in the Pernicious Kingdoms: Classifying glitches in old games」は、スーパーマリオシリーズ4作品(スーパーマリオブラザーズ、スーパーマリオブラザーズ3、スーパーマリオワールド、スーパーマリオ64)を対象に、これまでに報告されている237件のバグを調査した研究報告である。
ゲームをどれだけ速くクリアできるかを競い合う「RTA」という遊び方がある。彼らは「RTA走者」などと呼ばれ、常人にはまねできないようなスーパープレイを駆使して、クリアタイムを競う様子は人気を博し、世界中にRTAファンがいる。一方、ゲームに存在する“バグ”を利用し、本来想定されていない方法でエンディングにたどり着く遊び方をする走者も存在している。
研究チームはRTA走者たちが利用するバグに注目し、4種類のスーパーマリオシリーズに存在するバグの種類を分類。従来のソフトウェアで悪用されるバグと同じかどうかを検証した。
バグの分類には、ソフトウェアのセキュリティ上の脆弱性の種類を識別するための共通基準「CWE」(Common Weakness Enumeration)と「7PK」(Seven Pernicious Kingdoms)を用いた。その結果、多くのバグの種類や比率はこれらで分類できた他、分類できない新たな脆弱性カテゴリーを7種類発見した。
一番多かったバグが、全体の45%で時間と状態の問題(7PK4)に起因したものだ。その中で特に多かったのは「Incomplete Cleanup」(CWE-459)で、これはゲームの状態が適切にリセットされないことで発生する不具合である。例えば、スーパーマリオブラザーズの「見えないツタ」や、スーパーマリオブラザーズ3の「マップ上の水の上を歩く」などだ。
このカテゴリー内でスーパーマリオ64だけに発生するバグで多かったのが「Time-of-check Time-of-use(TOCTOU)Race Condition」(CWE-367)である。ゲームがチェックを行い、イベントを開始すべきだと判断するが、その後、他のことを先に処理することを決定する場合に発生する。例えば、プレイヤーがウサギの「ミップ」を捕まえた状態で扉をすり抜けられるというバグが挙げられ、通常はロックされているゲームの領域にアクセスできる。
次いで多かったのが、エラー処理の欠陥に関するバグ(7PK5)で全体の19%を占めた。例えば、スーパーマリオ64の「城の上のヨッシー」で、城の上のヨッシーを屋根の傾斜部分に乗るように誘導すると、ヨッシーが予期せぬ動作(屋根から走り去ったり、消失したり、あるいは終わりのないカットシーンに突入してゲームがクラッシュ)が発生するというものである。
3番目に多かったカテゴリーは入力検証の問題(7PK1)で、全体の18%のバグがこれに該当した。例えば、スーパーマリオブラザーズにおいて、マリオの残機数が「128」のときにわざと1機減らすと、残機が0になってゲームオーバーになってしまう。これは符号なし8ビット整数の上限を超えてオーバーフローを起こすことが原因である。このカテゴリーは、特にスーパーマリオブラザーズに多いのが特徴であった。
さらに研究チームは、CWEには含まれていないゲーム特有の脆弱性として、以下の7カテゴリーを新たに提唱している。
- Entity Limit: ゲームが限られた数のエンティティしかロードできない場合に発生する問題。例えば、スーパーマリオブラザーズのレベル8-4の見えないパックンフラワーなど。
- Failure to Appropriately Recheck Condition:2つのオブジェクトが相互作用する際に、ゲームが条件を再チェックしないことで奇妙な動作が生じる問題。例えば、スーパーマリオブラザーズ3でマリオがツタを成長させている最中にツタを画面外にスクロールすると、ツタの成長が止まってしまう。
- State Exit Too Early: 次の状態が開始する準備ができる前にゲームが状態を変更してしまう問題。例えば、スーパーマリオ64でマリオがクッパの甲羅に乗った直後に降りると、クッパの甲羅に乗っている音楽が一度も流れないにもかかわらず、レベルの音楽が最初から再生され始める。
- Correct But Surprising Behavior:ゲームの動作は正しいのに、奇妙で注目に値するグリッチが発生する問題。
- Improper Correction of Illegal State:例外的な状況を修正しようとした際に、ゲームが新たなエラーを生み出してしまう問題。例えば、スーパーマリオブラザーズでマリオが壁の中に入ってしまった場合、ゲームはマリオを後ろに動かして修正しようとするが、マリオが向きを変えると、逆に壁を抜けてしまう。
- Incorrectly Shared Behavior:本来は異なる動作をするはずの2つのオブジェクトが、同じ動作をしてしまう問題。
- Bad Boundary Definition:ゲーム内のオブジェクトの境界が適切に定義されていないために、プレイヤーが本来アクセスできないはずの領域にアクセスできてしまう問題。例えば、スーパーマリオ64において、120枚のスターがないのに、マリオが境界壁から正確にジャンプすることで、通常はアクセスできない城の屋根にアクセスできる。
研究チームはこれらの脆弱性について、CWEで表現されていないカテゴリーについては新たにリストに入れるべきと指摘する。一方、レトロゲームはこれまでパッチが当てられることはほとんどなかったため、バグ自体がそのゲームを楽しくする要素になっていることにも言及。「“マリオが壁を突き破る様子”が楽しいこともある」とし、一部のソフトは壊れたままのほうが良いこともあると説明している。
Source and Image Credits: Forward, Llewellyn, et al. “Super Mario in the Pernicious Kingdoms: Classifying glitches in old games.” arXiv preprint arXiv:2404.14870(2024).
関連記事
- 「実質ゲームのオリンピック」 ネットを席巻した「RTA in Japan」が同時視聴者数18万人を集めるまでの6年間
「もはやゲームのオリンピック」「五輪より興奮した」などと話題をさらったオンラインイベント「RTA in Japan Summer 2021」。もともとはどんな趣旨で始まり、どのように人気を集めていったのか。開催元に聞く。 - マリオ映画の続編、26年4月公開へ 「マリオらしい世界をさらに広げて明るくて楽しい展開に」
任天堂は10日、米イルミネーションとアニメ映画「ザ・スーパーマリオブラザーズ・ムービー」の続編を制作していると明らかにした。26年の4月に公開する。 - 「情シスすごろく」にまさかの「2」 “限界情シス”をゲームでも〜っと体験 早速遊んだ
情シスすごろく」にまさかの新作「情シスすごろく2」が登場。早速試遊してきた。 - 「Twitter.com」を「X.com」に自動変換 Xが仕様変更も、批判相次ぎすぐ撤回 ネット失笑
Xでポストした「Twitter.com」の文字列が自動的に「X.com」に変換されてしまう――。4月上旬、Xでそんな現象が発生し、詐欺に利用されかねないとしてユーザーが警戒を呼びかけた。間もなく問題は解消されたが、Xの混乱ぶりにあきれる声などが相次いでいる。 - 「死別詐欺」「訃報海賊」にご用心 人の死に付け込んでクリック稼ぐ 自分の訃報を載せられた事例も
他人の死に付け込んで故人をしのぶ人をだまそうとするでっち上げの訃報や、クリック稼ぎを目的とするまだ生きている人の死亡記事が、ネット上で拡散して問題になっている。これらの問題は「死別詐欺」「訃報海賊」などと呼ばれているという。
関連リンク
Copyright © ITmedia, Inc. All Rights Reserved.