オリジナルのゲームは大きなマップをサポートしていないため、すべての実験はCaesarIAプロジェクト(Caesar III(c)のオープンソースクローン)の一部として実施されました。 リメイクでの大規模なカードのサポートは最初からでしたが、 ランドスケープの構築でのダイアモンドスクエアメソッドの使用に関する良い記事を読む前に、ゲームに付属しているかファンによって作られたカード以外のカードを読み込むことはできませんでした。 どの方向に移動するかを認識して、風景の生成に関する別の記事に出会い、最終的にこの方法を使用して地図を自動的に作成することの現実を確信しました。
元のアルゴリズムの結果は、そのようなマップを取得するために高さと色を関連付けることにより、高さを持つポイントの配列になります。
色には対応する意味があります。
-青色は深みのある水に対応し、
-ライターは海岸近くの水を意味し、
-海岸は黄色になり、
-緑は草と低地を意味し、
-森は飽和した緑で表示されます。
-グレーとダークグレーの浅い山と高い山。
作業の結果をゲームランドスケープの詳細に適合させる場合、いくつかの値と設定の解釈を再検討する必要がありましたが、一般にこれらのデータはさらなる処理に適しています。 これで、取得した値を都市マップに表示できます。最初は、水タイルのみを変更し、残りは未塗装のままにします。
水タイルを注いだ後、草、森、山を埋めることができます。 生成されたマップは、通常のマップに似ています。
理論的には、マップの残りの部分は高い山で覆われているはずですが、そうすると人々には通れなくなります。そのため、高い山の代わりにプレーンタイルを再び使用します。 受け取った地図では、水に隣接するエリアは空のままでした。
これらの領域を塗りつぶすとき、特定のタイルの正しいテクスチャを選択するために、隣人の位置を考慮する必要があります。 このゲームには、海岸向けの次のタイプのテクスチャがあります。
-北へ:
-東:
-南:
-西:
そのようなタイルは、計算が実行されるタイルに対する水のあるタイルの位置によって決定されます。 たとえば、北向きの沿岸タイルは、北、北東、北西方向、およびそれらの組み合わせでのみ水タイルを持つことができます。 同様に、残りの海岸タイルについて計算を実行し、他のタイルには触れません。 結果は、コーナータイルのない海岸線です。
次のステップは、前のステップでスキップされたコーナータイルを見つけることです。 このようなタイルには、北->北東->東、東->南東->南、およびアナログの方向に3つの隣接(水)があります。 ゲームで海岸の角度を表示するには、次のテクスチャがあります。 それらを配置することにより、ほぼ完全なマップが得られます。
現在、前の段階で処理されなかったタイルが水上および地面にあります。 すべての側面で地球に囲まれているタイルも地球に起因し、水に囲まれているタイルはそれぞれ水に起因します。 海岸のタイルは、同時に水と土地の両方と見なされます。 今では、入植者が来ることができるように道路で地図を補完し、一般的な景観を多様化するために川が残っています。
500x500タイルのサイズのカードの生成には少し時間がかかりますが、既製のカードをロードするよりもかなり時間がかかります。 以下に、サイズが3800x1880ピクセルの大きな地図のスクリーンショットを掲載しました。 シングルプレイヤーモードでは、このマップにさまざまなオブジェクト、集落、さらには都市を追加できますが、ネットワークに適していると思われます。 選択したアルゴリズムのもう1つの利点はスケーラビリティです。計算結果を保存し、必要に応じてそれらを使用して近隣地域を計算できます。
もちろん、生成されたマップを人間が作成したマップと比較することはできませんが、自動モードでマップを作成する機能により、元のゲームに埋め込まれたアイデアの継続と開発を作成するための一歩先を進めることができます。 また、プロジェクトページでCaesar IIIのリメイクの開発を視聴して参加することもできます 。 マップジェネレーターのソースコードはこちらです。
ボーナス リメイクのスクリーンショット