3

私は疑似無限の実行時プロシージャル生成ワールドを持つトップダウン 2D ゲームを作成することを考えていました。私は手続き型生成に関するいくつかの記事を読みましたが、おそらくそれらを読み間違えたり誤解したりしましたが、世界をチャンクに分割する方法を説明している記事にまだ出くわしていません(Minecraftが明らかにそうしているように)。

明らかに、プレイヤーが現在見ることができる世界の部分だけを生成する必要があります。たとえば、ゲームがタイルベースの場合、世界を n*n チャンクに分割できます。プレイヤーがそのようなチャンクの境界にいる場合、隣接するチャンクも生成します。

私が理解できないのは、手続き型の世界生成アルゴリズムをどのように正確に取得し、一度に 1 つのチャンクでのみ使用するかということです。たとえば、多くのチャンクにまたがる大きな構造物 (城、森、川など) を生成するアルゴリズムがある場合、1 つのチャンクのみを生成し、その後隣接するチャンクを生成するように調整するにはどうすればよいでしょうか?

明らかな何かを完全に見逃した場合はお詫び申し上げます。前もって感謝します!

4

1 に答える 1

4

中点変位アルゴリズムを調べます。1 つの側面に沿ったすべてのポイントは、コーナーの開始値に基づいていることに注意してください。グリッドの残りの部分を知らなくても計算できます。

このアプローチを使用して地形を生成しました。地形の各「チャンク」のエッジが隣接するチャンクと整列する必要がありました。Midpoint ディスプレイスメント アルゴリズムのバリエーションを使用して、チャンクのエッジに沿った各ポイントの高さが 2 つのコーナーの値のみに基づいて計算されるようにしました。ランダム性を追加する必要がある場合は、乱数ジェネレーターに 2 つのコーナーからのデータをシードしました。このようにして、任意の 2 つの隣接するチャンクを個別に生成でき、エッジは確実に一致しました。

他のものの高さマップのアプローチを使用できます。高さの代わりに、データは植生の種類、人口密度などを決定できます。丘と谷が一致する高さマップのチャンクの代わりに、森林が一致する植生マップを持つことができます。

どんな種類の複雑な世界でも、確かに創造的なプログラミングが必要です。

于 2011-10-14T15:14:51.287 に答える