シグナスA-1 2018/04/22 22:27

マップの接続について①

次の作品は探索型アクションゲーム(別称:メトロイドヴァニア)を作ろうと思っています。
しかし、効率のいいマップの保存方法が分からずマップツールを拡張できずにいます。
というわけで思いついた案を列挙してみます。

マップ接続の検討

例としてエリアマップが下のようなゲームを作るとします。

  • 緑:部屋
  • 黄色:部屋と部屋の接続


数字が書かれている部屋は1画面でチップ数は固定です。
同じ数字があるマップは同時に敵やアイテムが配置され、スクロールで画面遷移します。(ブラックアウトなし)
また、違う数字同士でも黄色部分からブラックアウトを挟むことで移動できます。(敵やアイテムは再配置)

案1:全ての部屋を大きさ固定の部屋で分ける

違う数字でも同じ数字でも全部違うデータとして扱います。
例の場合、画面サイズ固定の14つの部屋があります。
マップロード時に同じ部屋番号を全部ロードし、エリアマップを元に繋げ合わせます。
無駄なデータが出ない分、ロードが複雑化する、マップ配置が大変になります。

案2:同じ数字は同じ部屋として扱う(エリアマップで繋げる)

番号によって大きさが違う部屋に分けます。
例の場合6つ部屋があります。
(1:5×1 2:2×1 3:1×1 4:1×3 5:1×1 6:2×1)
データ数として6つでマップ配置もし易いです。
部屋移動はエリアマップを元に行います。

案3:同じ数字は同じ部屋として扱う(イベントチップで繋げる)

案2と同じく6つ部屋として扱いますが、エリアマップを元に移動を行うのではなく、各部屋にイベントチップをおきます。
例として、3の左端には1の右端に移動するように指示、3の右端には4の上段左端に移動するように指示します。
ウディタでも使用されているマップ移動方法で、最も確実な部屋移動です。
エリアマップとは直接的な繋がりは持ちません。(あくまで地図画像としてのみ)

案4:全部同じ部屋として扱う

例の場合、9×4の大部屋が1つあると仮定します。
それぞれに仕切りを設定してロードし、ブラックアウトの有無の仕切りで判断します。
無駄なデータが多く出る(14しか部屋がないのに36部屋分のデータを消費)上にロードが複雑化するためこれはよくないかなと。

というわけで

誰かいい方法知っていませんかという話です。
ステージ突破型アクションなら一方通行なので考えなくてよい話だったのですごく苦戦しています。
自分の頭では案1~4ぐらいが限界だったのでもっと効率のいい保存方法があるかもしれません。
詳しい情報がある本やサイトを教えていただくだけでも構いません。
よろしくお願いします。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

記事を検索