Ich bin vor kurzem fasziniert von den Dingen, die mit prozeduralem Terrain gemacht werden können, und habe angefangen, ein bisschen mit dem Bauen von Welten zu experimentieren. Ich möchte in der Lage sein, Welten wie eine Zwergenfestung mit Biomen zu erschaffen, die aus dem Ineinandergreifen verschiedener Karten entstehen.
Der erste Schritt ist also getan. Unter Verwendung des Diamantquadrat-Algorithmus habe ich einige nette Höhenkarten erstellt. Als nächstes möchte ich einige Wasserspiele hinzufügen und sie mit Regen etwas realistisch erzeugen lassen. Ich habe einige verschiedene Ansätze kennengelernt, z. B. das Beginnen an den höchsten Punkten der Karte und das "Heruntertreten" zum niedrigsten benachbarten Punkt, das sich bündelt / erodiert, während es sich auf den Meeresspiegel hinunterarbeitet.
Gibt es dokumentierte Algorithmen dafür oder sind sie eher von der Stange?
Würde jeden Rat / Gedanken lieben.
Antworten:
Amit Patel, ein Benutzer dieser Site, hat eine wundervolle Informationsquelle über zufällige Welterzeugung erstellt, die Ihnen sicherlich von Nutzen sein wird.
Außerdem gibt es auf dieser Site einige großartige Fragen / Antworten zur Erstellung von Prozeduren.
Straßen- / Flusserzeugung auf 2d Gitterkarte
Prozedurale Welterzeugung, die sich an den Spielfunktionen orientiert
Wie kann ich zufällige Seen und Flüsse in meinem Spiel erzeugen?
Zufällige Kartengenerierung
quelle
Als ich damals (Ende der neunziger Jahre) mit dieser Art von Dingen experimentierte, las ich einige Zeitungen und Bücher, um mehr über den Wasserfluss zu erfahren, aber ich führte keine Aufzeichnungen darüber, welche ich mir ansah. Ich habe mein eigenes Ding gemacht, weil ich mit Erosion fertig werden wollte. Ich wollte, dass Flüsse Schluchten und Auen bilden. Ich wollte, dass die Stauseen sich mit Sedimenten füllen. Ich wollte, dass Flüsse Effekte wie Mäander- und Altwasserseen erzeugen. Ich wollte Kanäle zur Bewässerung und Wasserableitung. Ich wollte Überschwemmungen, um Bauernhöfe und Häuser in Auen zu beschädigen.
Ich habe einige Notizen (Links) im Abschnitt Geographie dieser Seite aufbewahrt . Es gibt einen Jos Stam-Artikel, den man unbedingt lesen muss. Leider habe ich die Notizen nie organisiert. Leider war das Spiel auch für OS / 2, so dass ich Ihnen keine ausführbare Datei zum Spielen anbieten kann. Und auch leider ist mein Code schrecklich, aber wenn Sie einen Blick darauf werfen möchten, sehen Sie water.cpp im Quellcode (zip).
Dinge, mit denen ich in meiner Simulation gespielt habe (nicht alle realistisch):
Insgesamt hatte ich die Erfahrung gemacht, dass das ganze Spiel Spaß gemacht hat , aber es waren viele Heuristiken und Optimierungen erforderlich, um es zum Laufen zu bringen. Ich kam nie zu einem Punkt, an dem ich sagen konnte, dass sich die Flussschöpfung natürlich und unvermeidlich anfühlte, ohne etwas zu verändern. Es hat so viel Spaß gemacht (sowohl als Programmierer als auch als Spieler), dass ich Jahre damit verbracht habe und den Rest des Spiels nie beendet habe. :)
quelle
Die meisten Implementierungen, die ich gesehen habe, haben entweder eine "Flusskarte" (mit einem schmalen Band aus Perlin-Rauschen oder einem ähnlichen Ansatz) oder die von Ihnen erwähnte "Regentropfen" -Methode kombiniert.
Hier sind einige Stechpunkte:
quelle