マリオ2における手続き型生成の紹介
cs50のYoutube動画「マリオ2における手続き型生成の紹介」について要点と要約をまとめました
3つの要点
- 要点1
手続き型生成によるランダムなレベル生成 - 要点2
マップの幅を列ごとに反復処理する - 要点3
要素の確率を調整してレベルの多様性と複雑さを制御する
要約
手続き型生成の概念の探求
このアップデートでは、手続き型生成またはProcGenと呼ばれる概念について探求します。これにより、アルゴリズムを使用してランダムにレベルを生成することができます。列ごとに反復することで、空、ブロック、雲、柱などのさまざまな要素を作成することができます。この方法は、マリオのような横スクロールのプラットフォーマーゲームに特に適しています。
コードの概要と実装
ゼロからコーディングする代わりに、Mario 3の配布物に含まれる事前に書かれたコードを調べます。コードには、雲、木、キノコ、ジャンプブロックのタイル宣言が含まれています。次に、マップ.luaファイルに焦点を当て、マップの幅を列ごとに反復処理します。math.randomを使用して、タイルに雲、キノコ、木、隙間を生成します。特定のタイルを設定することで、ゲーム内で視覚的に魅力的な要素を作成することができます。
ランダム性とマップの生成
マップの生成においてランダム性を確保するために、コードの最初にmath.randomseed os.timeを使用します。これにより、コードが実行されるたびに新しいマップを生成することができます。雲、キノコ、木、隙間などの異なる要素の確率を調整することで、生成されるレベルの多様性と複雑さを制御することができます。黄色のブロックは生成された要素の例です。
さらなる応用と課題
手続き型生成は、ゲーム内にさまざまな要素を含めるために拡張することができます。課題の一環として、学生は提供されたセットアップを使用してマリオのピラミッドを生成することが求められます。この演習により、手続き型生成の技術のさらなる探求と実装が可能になります。次のアップデートであるマリオ4では、ゲームに操作可能なキャラクターを追加することに焦点を当てます。
▼今回の動画
編集後記
▼ライターの学び
手続き型生成の概念とその実装方法を学びました!手続き型生成は、ランダムなレベル生成に非常に有用です。
▼今日からやってみよう
今日から手続き型生成を使って自分のゲームにランダムな要素を追加してみよう!ランダムなレベル生成を実装することができます。