Simple Science

最先端の科学をわかりやすく解説

# コンピューターサイエンス# 暗号とセキュリティ# ソフトウェア工学

クラシックスーパーマリオゲームのバグ:研究

この論文は、4つのクラシックなスーパーマリオゲームのバグとその重要性を調べてるよ。

― 1 分で読む


マリオのバグが暴露されたマリオのバグが暴露されたゲームデザインに挑戦するバグを分析する。
目次

多くの人がゲームが大好きで、スーパーマリオみたいなクラシックゲームは何十年も人気があるよね。スピードランニング、つまりゲームをできるだけ早くクリアしようとする行為は、活気あふれるコミュニティに成長してきた。プレイヤーはしばしば変わったトリックやバグを見つけて、予想外の方法でゲームをクリアすることができる。この論文では、4つのクラシックスーパーマリオゲームに見られるバグについて深く掘り下げてみるよ。

バグって何?

ゲームの中のバグは、コードの間違いによって思いがけない挙動を引き起こすもの。時にはゲームがクラッシュすることもあるけど、他の時には役に立つこともある。スピードランナーにとっては、バグを利用してゲームのセクションを飛ばし、予定よりもずっと早くクリアすることができるんだ。

クラシックスーパーマリオゲームでは、プレイヤーはジャンプしたり、敵を倒したり、パワーアップを集めたりしながらピーチ姫を救いに行く。巧妙にバグを使うことで、スピードランナーはさまざまな方法で挑戦を回避して、プレイヤーが期待するのとは違った楽しさを生み出してる。

スーパーマリオゲームをじっくり見てみよう

この研究で調べた4つのスーパーマリオゲームは:

  1. スーパーマリオブラザーズ 1 (SMB1, 1985)
  2. スーパーマリオブラザーズ 3 (SMB3, 1988)
  3. スーパーマリオワールド (SMW, 1990)
  4. スーパーマリオ64 (SM64, 1996)

それぞれのゲームは違ったゲームプレイのメカニクスやレベルを持っていて、時間の経過とともにゲームデザインのさまざまな革新を示しているんだ。どのゲームもかなりプレイされ、研究されてきたから、バグに関する豊富な知識がある。

バグを分類することの重要性

ソフトウェアのバグを分類することで、開発者はプログラミングで起こる一般的な問題を理解できる。同じ原則がゲームにも当てはまるんだ。このマリオゲームのバグを調べることで、ビデオゲームを作るときにどんな間違いが起こるかをもっと学べる。

ビデオゲームのバグは、ソフトウェアの問題を説明するのに使われるカテゴリに結びつけられることが多い。この論文では、一般的な弱点を特定するために使われるCWEという既存の分類を使って、4つのゲームで見つかったバグを分類しているよ。

クラシックスーパーマリオゲームのバグ

4つのクラシックゲームの研究では、合計237個のバグを探ってみた。多くのバグはゲームプログラミングの一般的な間違いから生じていて、他のバグはゲーム独自のものだった。私たちの分析では、伝統的なソフトウェアバグに関連するバグのいくつかのカテゴリを特定したんだ。

見つかったバグのタイプ

  1. 時間と状態エラー: 多くのバグはゲームが時間や状態の変化を追跡することに関連してた。例えば、ゲームが特定の条件を正しく更新できず、予想外の結果を引き起こすことがある。

  2. 入力検証エラー: 入力検証はプログラミングでめっちゃ重要。もしゲームがプレイヤーの入力を正しくチェックしなかったら、変な挙動が出てくることがある。例えば、プレイヤーがゲームのプログラムされていないことをしようとするとうまくいかないことがあるよ。

  3. 例外処理のエラー: ゲームがエラーに遭遇したとき、適切に反応することが求められるけど、時々そうならずにおかしな挙動になることがある。一例として、ゲームが特定のシナリオに対処できず、変な返答をすることが挙げられる。

  4. コード品質の問題: きちんと書かれてないコードはしばしばバグを引き起こす。ゲームのロジックが間違ってたり、必要なチェックが欠けてたりすると、予期しないバグが出る。

  5. 環境エラー: 多くのバグはゲームの世界のデザインに起因してる。もしエリアが適切に定義されてなかったり、オブジェクトが不適切に配置されてたら、プレイヤーはゲームが意図してない状況に遭遇することがある。

  6. APIの悪用: ゲームが関数やAPIを呼び出すとき、期待される値が返ってこないとバグが発生することがある。これは普通のソフトウェアでエラーを適切に扱えないのに似てる。

  7. 新しいバグ: 私たちの研究では、伝統的なソフトウェアのカテゴリにはない、明らかにビデオゲーム特有の7種類のバグも発見した。

スピードランニングコミュニティ

スピードランナーは、できるだけ早くゲームをクリアしようとする人たちで、しばしばバグを利用してる。スピードランニングの実践は、情報やトリック、ビデオを共有するコミュニティを生み出した。スーパーマリオのようなクラシックゲームでも、新しい記録が次々と生まれ、新しいバグが常に発見されてる。

スピードランニングのカテゴリ

スピードランニングにはいくつかのカテゴリがあるよ:

  • Any%: どんな方法でも最短時間でゲームをクリアすること(バグやトリックも含む)。
  • 100%: すべての目標を達成しながらゲームをクリアすること。
  • Glitchless: バグを使わずにゲームをクリアすること。

それぞれのカテゴリには、プレイヤーにとってユニークな課題と機会があるんだ。

スーパーマリオゲームのバグ

スーパーマリオブラザーズ 1 (SMB1)

SMB1では、見つかったバグのほぼ半分が入力検証の問題に関連してた。このゲームはアセンブリ言語で作られていて、限られたハードウェアリソースを慎重に管理する必要があったんだ。

スーパーマリオブラザーズ 3 (SMB3)

SMB3では、入力検証のバグがまだ多かったけど、時間と状態のエラーに関連したバグも多くなった。プログラミングの改善が入力問題の減少に寄与したと思われる。

スーパーマリオワールド (SMW)

次にSMWに行くと、ゲームの複雑さが増した。多くのバグは、状態がさまざまなゲームメカニクスとどのように相互作用するかに関連していて、より複雑なゲームをプログラムする際の課題を浮き彫りにしているんだ。

スーパーマリオ64 (SM64)

SM64は3Dゲームプレイへの移行を示していて、状態や時間に関連したバグが増えた。ゲームがはるかに多くのデータや相互作用を管理しなければならなかったからなんだ。興味深いことに、このゲームは以前のタイトルには見られない新しいタイプのバグも導入している。

結論

4つのクラシックスーパーマリオゲームで237個のバグを分析した結果、従来のソフトウェアバグと似たような問題が見つかった。CWEシステムを使って、これらのバグを引き起こすゲームプログラミングの弱点を特定できたから、彼らの性質をよりよく理解することができたんだ。

私たちの調査では、多くのバグが従来のソフトウェアバグと共通する一方で、いくつかのタイプはゲームの世界に特有のものだと示唆している。これらの新しいカテゴリは、ゲーム業界に関連する既存のソフトウェア弱点の分類に加えて考える価値があるかもしれない。

最終的に、開発者はソフトウェアのバグを修正しようとすることが多いけど、ビデオゲームのバグの存在はその魅力を増すものなんだ。スピードランニングコミュニティは、これらの異常を祝って、ゲームプレイの魅力的な側面に変えているよ。ゲームが進化し続ける限り、バグの探求は開発者とプレイヤー双方にとって刺激的な研究分野であり続けるだろう。

著者たちからもっと読む

類似の記事