Methoden zum Erzeugen einer Karte


27

Ich möchte eine einfache, "zufällig" generierte Karte für ein kleines Spiel erstellen.

Das Spiel besteht aus einer Draufsicht auf eine Welt mit Landmassen- und Meeresgebieten. Stellen Sie sich zum Beispiel eine einfache Übersichtskarte der Welt vor.

Das Nächste, was ich mir vorstellen kann, war der Level-Generator für die alten SimCity- Spiele oder die Civ- Serie, bei der Sie einen Kontinent gegenüber vielen Inseln usw. vorziehen können.

Welche Art von Algorithmus wäre geeignet? Die Karte muss mäßig zoombar sein, damit ich eine "ganze Welt" und eine vergrößerte lokale Ansicht haben kann, aber ich denke, ich werde das später klären.

Anfangs brauche ich kein Konzept von Höhen, nur zwei Gebiete - Land und Meer, obwohl ich es später erweitern könnte.


Ich habe entlang der Generierungslinien mit einer Art Perlin-Rausch-Funktion nachgedacht, bin mir aber nicht sicher, wie ich von einer im Wesentlichen 2D-Höhenkarte zu einer Reihe von Linien komme, die alle Bereiche in Höhe X verbinden.
Cylindric

Antworten:


21

Der "berühmte" Amit (mit der riesigen Seite mit verschiedenen Themen der Spielprogrammierung) hat einen Blog zur Spielprogrammierung, und er hat gerade ein dreiteiliges Tutorial einer interessanten Methode zur Kartenerstellung fertiggestellt. Ich habe die Lektüre wirklich genossen und es gibt eine funktionierende Demo unten im dritten Artikel, die ziemlich herausragend ist.

"Polygonkartenerstellung" Teil 1 , Teil 2 , Teil 3 .

Dies kann eine Technik sein, die Sie an Ihre Bedürfnisse anpassen möchten! Zumindest erwähnt er die Algorithmen, die er in jedem Schritt des Prozesses verwendet: Er beginnt mit der Generierung von Voronoi-Polygonen , lockert sie mit Lloyd-Relaxation zu einer gleichmäßigeren Verteilung auf , verwendet "eine einfache Funktion, um die Welt in Land und Wasser zu unterteilen". und dann Überschwemmungen, um Ozeane und Seen zu bestimmen. Es hört sich so an, als könnten Sie dort anhalten oder nach Bergen und Tälern suchen und diese in 3D umwandeln und so weiter.


2
Oh wow, ich habe Amits Leitfaden sehr oft benutzt, um A * zu lernen. Es ist, als würde er mir in den Kopf schauen :) Zeit für das "<3 Amit" Tattoo ...
Cylindric

1
Die sind wirklich verdammt großartig
Colm

Voronoi, nett. :)
user712092
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.