私は、ダンジョンを手続き的に生成することに関するいくつかのアルゴリズムと記事を見てきました。問題は、部屋のある家を作ろうとしているのに、部屋が私の要件に合わないようだということです。
たとえば、ダンジョンには廊下があり、家にはホールがあります。最初は同じように見えるかもしれませんが、ホールは部屋ではないエリアにすぎませんが、廊下はあるエリアを別のエリアに接続するように特別に設計されています。
家とのもう1つの重要な違いは、特定の幅と高さがあることです。また、ダンジョンでは空間が空いているのに対して、部屋全体やホールで物全体を埋める必要があります。
家のホールは、ダンジョンの廊下(他の部屋に行く)とダンジョンの空きスペース(コードで明示的に定義されていない)の間にあるものだと思います。
具体的には、要件は次のとおりです。
すぐに壁やドアを作成できない定義済みの部屋のセットがあります。- 部屋は回転することはできますが、サイズを変更
することはできません。部屋の定義済みのセットがあるため、サイズを変更することはできません。 - 家の寸法は設定されており、部屋(またはホール)で完全
に埋める必要があります。つまり、空きスペースがないことを確認して、利用可能な部屋で14x20の家を埋めたいと思います。
これをもう少し明確にするいくつかの画像を次に示します。
ご覧のとおり、家の中では、「空のスペース」はまだ歩きやすく、ある部屋から別の部屋に移動できます。
したがって、これらすべてを言ったとしても、家は廊下のある非常にぎっしり詰まったダンジョンです。または、ダンジョンよりも簡単なものです。たぶんそこに何かがあり、何を検索すればよいかわからないので見つけられませんでした。
これがあなたの助けが欲しいところです:このアルゴリズムを設計する方法についてのポインタを教えてもらえますか?どのステップを踏むかについての考えはありますか?ダンジョンジェネレーターを作成した場合、要件に合わせてどのように変更しますか?好きなだけ具体的または汎用的にすることができます。本当にあなたの頭脳を探しています。