Infinite Mario Bros ガイド:ランダムレベルのしくみ
ブラウザで Infinite Mario Bros を遊ぶ方法、プロシージャルなレベル生成のしくみ、難しいランダムレベルを生き延びるコツを紹介します。
読了時間:約5分

Infinite Mario Brosは、これまでに作られたファンゲームの中でも特に影響力の大きい作品のひとつです。2008年に Markus “Notch” Persson が Java で開発し、Robert Kleffner が HTML5 に移植しました。レベルは入るたびに生成されるので、遊べるレベルが尽きることはありません。
はじめかた
タイトル画面で S を押します。道やレベルの点、城が並ぶワールドマップが表示されます。矢印キーで移動し、S を押すとレベルに入れます。レベル内では S でジャンプ、A でダッシュ(フラワーを持っているときはファイアボールも発射)します。
ジェネレーターがレベルを作るしくみ
ジェネレーターは左から右へ向かって進み、一連のゾーンを選んで、それぞれにさまざまな要素を配置していきます。
- 平地:? ブロック、コイン、敵が置かれた区間
- 丘:上に乗れる高い足場。重なっていることもあります
- 土管:パックンフラワーが入っているものもあります
- ジャンプ:幅の異なる穴。両側に階段があることもあります
- 大砲:短い柱の上に置かれたキラー発射台
マップを進むにつれて難易度の値が上がっていきます。難易度が高いほど、穴は広くなり、敵も増え、羽つきや装甲つきの敵も多く出ます。レベルの種類(地上、地下、城)によって、タイルと音楽が変わります。
なぜ重要だったのか
コードが公開されていて、レベルも無限だったため、研究者たちは Infinite Mario をテスト環境として採用しました。2009年からは Mario AI Competition が開催され、プログラマーはレベルをプレイできるエージェントの開発に挑みました。のちには、レベルを設計するプログラムを競う部門も設けられました。Robin Baumgarten による有名な A* エージェントは、生成されたステージを完璧に駆け抜け、動画が話題になりました。プロシージャルコンテンツ生成に関する多くの論文が、今でも Infinite Mario のフレームワークを引用しています。
生き残るコツ
- 前方の地面が安全なときは常にダッシュしましょう。難易度が上がると穴は広くなります。
- キラーの大砲に注意しましょう。弾は一定の間隔で発射されるので、1発が通り過ぎるのを待ちます。
- 羽つきの敵は弧を描いて跳ねます。1回踏むと羽が取れます。
- マップを活用しましょう。ステージが難しすぎるなら、別のルートがあることも多いです。
- 城ではじっくり進みましょう。細い足場と敵の集団が組み合わさっています。


