# Random Terrain Generation



## Herobrine (4. Sep 2014)

Ich hab mich im Internet mal ein bisschen zu zufällig generierten Welten umgeschaut, werde aber daraus nicht wirklich schlau :bahnhof:.
Mich würden besonders zufällig generierte 2D Landschaften interessieren, sowohl aus der Vogelperspektive (also im Grunde eine Möglichkeit die Höhe der Landschaft zufällig zu berechnen, sowie natürlich aussehende Flüsse zu generieren), als auch von der Seite (dort vor allem die Oberfläche der Welt, und auch wie man Höhlensysteme generiert, von der Art wie es auch im Spiel "Terraria" ist).
Gibt es da irgendwelche Algorithmen die man einfach in ein Programm einsetzen kann?


----------



## Gucky (4. Sep 2014)

Guck dir mal den PerlinNoise und den SimplexNoise an. Die sind gut für Terrain.

Wie man Höhlen macht wusste ich mal. Da gibt es eine gute Seite im Internet aber ich weiß den Namen nicht mehr. Sie ist auf Englisch.


----------



## Herobrine (4. Sep 2014)

Ja, von denen hab ich auch schon gehört, aber ich schaffe es nicht die Code-Schnipsel die man im Internet findet auch ins Programm zu bringen, und so ganz verstehe ich das ganze auch noch nicht, also kann ich das ganze nicht selber schreiben^^


----------



## Herobrine (4. Sep 2014)

Ok, hab das Problem gefunden: Ich musste nur '&lt;' durch '<' ersetzen 
Die Perlin Noise funktioniert jetzt


----------



## Gucky (4. Sep 2014)

Der Perlin Noise ist aber nicht sehr performant. Wenn das Ganze also für ein Spiel sein soll, rate ich dir zum Simplex Noise. Ich könnte dir auch eine Implementierung schicken aber in C++ und nicht von mir.


----------



## Herobrine (4. Sep 2014)

Wär echt toll wenn du das machen könntest, hat nämlich schon recht lang gedauert bis ich die Perlin Noise zum laufen gebracht habe.
C++ sollte nicht wirklich ein Problem sein, die Unterschiede halten sich in Grenzen


----------



## Gucky (4. Sep 2014)

Unterschiede sind schon da. Aber da kommt es:
Anhang anzeigen simplex noise.zip

EDIT: Du könntest den auch als dll o.Ä. lauffähig machen und dann per JNI/JNA einbinden. Das ist vielleicht nicht so viel Arbeit. Allerdings verlierst du dann die Plattformunabhängigkeit.


----------

