Als Sommerprojekt habe ich beschlossen, dass es Spaß machen würde, ein Flash-Spiel zu machen. Im Moment werde ich so etwas wie das Aussehen von Terraria anstreben . Es hat viel Spaß gemacht, aber heute habe ich einen Haken bekommen. Ich brauche einen Weg, um meine Welten zu erzeugen. Ich habe Perlin-Lärm als eine Möglichkeit gelesen , aber meine Versuche haben mir sporadisch aussehende Ergebnisse gebracht. Mit welchen Techniken werden diese auf 2D-Kacheln basierenden Welten erzeugt?
Idealerweise möchte ich Berge, Ebenen und Höhlen erzeugen können.
Antworten:
Es hört sich so an, als würden Sie eine "Seitenansicht" des generierten Geländes erstellen.
Im Web werden zahlreiche Algorithmen zur Geländegenerierung diskutiert. Sie könnten wahrscheinlich viele davon anpassen, indem Sie alle bis auf eine Dimension aus den Berechnungen herausschneiden. Dies würde Ihnen Informationen über die primäre Oberfläche / unterirdische Grenze geben. Wenn Sie bei Ihrer Suche gezielter vorgehen möchten, möchten Sie wahrscheinlich nach der Geländegenerierung "1D" oder der Geländegenerierung "Worms-style" suchen. Sie erhalten Ergebnisse wie diesen Thread auf prozeduralem Terrain (einschließlich Höhlen) und diese interessante Web-Demo .
Perlin-Lärm allein würde gut für die Bereiche funktionieren, in denen Sie Ebenen erzeugen möchten, da es sehr glatt ist. Es funktioniert nicht so gut für Berge und schroffe Gebiete mit scharfen Diskontinuitäten - Sie möchten es dafür mit etwas anderem kombinieren. Betrachten Sie den ersten Teil dieser Seite in fraktalem Gelände oder wenden Sie zufällige Schnitte und Verschiebungen auf das Gelände an.
Höhlen können durch einfaches Stanzen von Löchern in Ihrem Gelände als einfacher erster Durchgang erstellt werden. Sie können jedoch auch nach Informationen darüber suchen, wie Räume in Rogue-ähnlichen Spielen erzeugt werden, und diese anwenden. Sie könnten auch in Betracht ziehen, sich mit zellularen Automaten zu befassen .
quelle