AS3用ローグライクの考察

=前置き=

今日はタスクまわりの設計だけで、特にここに上げるモノがないので、考察をメモしておく。

=部屋のつながり=

Racanhack コード解説で説明されている基本アルゴリズムでできる部屋は、「木構造」になっている。上記ページではさらに「ループ」を作るような処理を入れてあるが、ここでは「木構造」を維持する形で考えていきたい。


構造が「木構造」であることから、以下の特徴が存在する。

  • 「ループ」が存在しない
  • 任意の「部屋A」から「部屋B」への経路は一意に決まる
    • 複数の経路があれば、行きと戻りで別々の経路がある=ループがあることになってしまう


また、この分割アルゴリズムは次のような特徴を持つ

  • どの部屋とどの部屋が繋がっているかがわかる
    • 木構造」の「節」が「部屋」、「枝」が「通路」にあたる
  • どちらの方向に部屋があるかがわかる
    • 1つの「節(部屋)」に「枝(通路)」は4つまでつけることができ、「上下左右」の4種類に相当する
  • 部屋の数がわかる
  • 部屋の数をある程度コントロールすることが可能


これらの特徴はギミックに活かせる。例えば「ループが存在しない」という特徴から、「逃げるモンスターも、いつかは追い詰めることができる=特定のモンスターを倒した時に開くゲート」が設定できる。また、「経路が一意に決まる」ことから、スタートからゴールまでの間に「これを解かないと先に進めない」というギミックが設定できる。また、逆に「ループを存在させる」ために「ワープポイント」などの設定も考えられる。