手続き的に生成された地形における降雨+河川作成のアルゴリズム


52

私は最近、手続き的な地形でできることに魅了され、世界の構築を少し実験し始めました。さまざまなマップをメッシュ化することで作成されたバイオームを使用して、ドワーフ要塞のような世界を作りたいと思います。

最初のステップが完了しました。ダイアモンドスクエアアルゴリズムを使用して、素敵なhieghtmapを作成しました。次のステップでは、いくつかの水の機能を追加し、それらを雨によって多少現実的に生成します。マップの高いポイントから開始し、最下の隣接ポイントまで「ステップダウン」し、海面まで下がるにつれてプール/侵食するなど、いくつかの異なるアプローチについて読みました。

これに関する文書化されたアルゴリズムはありますか?

どんなアドバイス/考えも好きです。


このペーパーで説明されたアルゴリズムからの断片を実装しました。
カオス技術者

回答:


39

このサイトのユーザーであるAmit Patelは、ランダムな世界の生成に関する情報の素晴らしいリソースを作成しました。

さらに、このサイトには手続き生成に関する素晴らしい質問/回答があります。

2Dグリッドマップでの道路/河川の生成

ゲームプレイ機能に特化した手続き型の世界世代

ゲーム内でランダムに湖や川を生成するにはどうすればよいですか?

ランダムマップ生成


35

このタイプ(1990年代後半)で実験したとき、私は水流について学ぶためにいくつかの論文や本を読みましたが、私が見たものの記録を保持しませんでした。侵食を処理したかったので、私は自分でやることになりました。川に渓谷やand濫原を作ってほしかった。ダムの貯水池に堆積物がいっぱいになるようにしたかった。川が蛇行湖や牛弓湖のような効果を生み出すようにしたかった。灌漑と水流用の運河が欲しかった。洪水がto濫原の農場や家に損害を与えたかった。

このページの [地理]セクションにメモ(リンク)をいくつか保存しました。必読のJos Stam紙があります。残念ながら、メモを整理したことはありません。また、残念ながら、このゲームはOS / 2向けであったため、実行可能な実行可能ファイルを簡単に提供することはできません。また、残念なことに、私のコードはひどいですが、ご覧になりたい場合は、ソースコード(zip)のwater.cppを参照してください。

シミュレーションで遊んだもの(すべてが現実的ではありません):

  • 川の近くには湿った土壌があります。川から遠く離れた地域には乾燥した土壌があります。湿気は植生に影響を与えました。植生は水の流れを遅くします。
  • 雨は時々すべての場所で水を作ります。その後、下り坂を流れます。その後、蒸発して地面に吸収されます。雨が川の溝を切り開きます。
  • 湧水は常に水を生成しますが、ごく一部の場所でのみです。湧水は川の水路を満たします。岩層や地下水の流れをシミュレートしませんでした。私は山にランダムにスプリングを配置しました。
  • 流れる水には勢いがあります。覚えていれば、これは川を蛇行させるために重要でした。
  • 動きの速い水は沈殿物を拾います。ゆっくりと移動する水は、その前に堆積物を堆積させます。これは川の谷を切り分けます。
  • 最初のマップ作成中に、水流と侵食を加速しました。ゲームプレイ中、通常の速度で実行されました。

全体として、私の経験では、これらのすべてが非常に楽しいものでしたが、機能させるには多くのヒューリスティックと微調整が必​​要でした。私は、川の創造が微調整なしで自然で避けられないと感じたと言うことができる点に決して至らなかった。プログラマーとしてもプレイヤーとしてもとても楽しかったので、何年も費やしましたが、ゲームの残りの部分を完成させることはありませんでした。:)


12
単に彼の名前を話すと、彼は到着します。
マイケルハウス

3
Byte56彼のstackexchaのCandlejackのような.... @
DampeS8N

2
あなたは六角形のグリッドの記事に基づいて実装を書くように私にインスピレーションを与えました、そして今、あなたは再び私にインスピレーションを与えます!
アダムアロルド

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.