Zum Inhalt springen

PHP, GD, Kartengenerator


Empfohlene Beiträge

hu,

da mein Ausgangspunkt PHP ist, setze ich es mal hier rein, prinzipiell geht es aber auch um das "wie" im allgemeinen.

Und zwar habe ich ein kleines Projekt in dem ich einen Kartengenerator erstellen will. Kartengenerator soll heißen z.B. für Pen&Paper Rollenspiele, oder als Ausgangsbasis für Levelgeneratoren.

Für den Anfang orientiere ich mich an anderen Beispielen, es gibt Wasser und es gibt Inseln. Das Kartenfeld ist in 6eck-Felder geteilt.

Schritt 1:Wasser und Land

Schritt 2: Wald und berge

Schritt 3: Straßen und Städte

in Schritt 1 generiere ich ein erstes Feld und färbe alle umgebenen Felder in der gleichen Farbe ein (1+6 Stück, grün für Land)

Hier schaffe ich es aber gerade "eine" Insel zu generieren, eine 2. passt nicht zum 6eck-Muster der ersten, da sie andere Ausgangskoordinaten verwendet.

Schritt 2 wird evtl. ganz ähnlich ablaufen, mit einem Filter das dies nur auf Land vorkommen kann.

Schritt 3 ist mir noch schleierhaft, verschlungene Straßen, nicht zu viele, und einige Zufallsgenerierte Städte.

Ein anderer Schritt währe ein Kartengenerator für Städte, mit Straßen und Häusern.

Hat jemand mit soetwas Erfahrung ? oder ein OpenSource Beispiel ?

danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

Schritt 3 ist mir noch schleierhaft, verschlungene Straßen, nicht zu viele, und einige Zufallsgenerierte Städte.

Wenn du eine Landmasse hast, würde ich da einfach per Zufall ein paar Punkte darauf setzen, die dann die Städte werden. Diese funktion kannst du ja n bissl aufbohren und dabei Felder an Flüssen bevorzugen, dabei aber mindestens X Felder von anderen Städten entfernt usw.

So ähnlich kannst du dann bei den Strassen vorgehen. Also erstmal die Städte als Wegpunkte festlegen. Dann von Stadt1 zu Stadt2 einen Weg finden. Dazu gibt es einen "einfachen" Algorithmus, zur Wegfindung. Mir fällt der Name grad nicht ein. Sowas solltest du dafür aber nutzen, denn du willst ja nicht unbedingt, dass der Weg einfach direkt von 1 nach 2 verläuft.

Der algorithmus geht so, dass du einen Ausgangspunkt hast, und dan die nächsten Schritte (also 1 Feld weiter) bewertest und das Kostengünstigste Feld nimmst. usw. somit würdest du den kürzesten Weg von 1 nach 2 finden. Berge, Küsten und Seen würden dabei natürlich weniger gut bewertet als Ebenen.

Auf den so generierten Wegen könntest du dann zufällig auch ein paar Punkte suchen, von wo aus du einen Weg zu einem anderen Weg suchst.

Über die Anzahl dieser zufälligen Punkte kannst du jeweils die Dichte von Städten und Strassen bestimmen.

Das ist mal mein Brainstorming zu Schritt 3.

Link zu diesem Kommentar
Auf anderen Seiten teilen

ok danke, wenn dir noch einfällt wie diese Wegfindung funktioniert, währe gut ;)

Da jedes Feld 6 Koordinatenpunkte hat, werde ich evtl. 12 draus machen, um auch Punkte außerhalb der 'Ecken' zu haben.

Flüsse werden vermutlich genauso wie wege erstellt, da ein Feld nicht Fluss sein soll, sonder der Fluss oder weg nur eine Linie 'innerhalb' eines Feldes.

Was interessant werden könnte ist die Frage nach Kreuzungen, bzw. zu verhindern das sich wege zu oft kreuzen....

Link zu diesem Kommentar
Auf anderen Seiten teilen

...sonder der Fluss oder weg nur eine Linie 'innerhalb' eines Feldes.

Dazu könntest du die ganze Karte nochmal in kleinere Bereiche aufteilen. Diese kleinen Bereiche nimmst du komplett als Weg oder Fluss. Für die eigentliche Karte fasst du dann immer 1 kleines Sechseck mit den umliegenden 6 Sechsecken zu einem Kartensechseck zusammen. Natürlich musst du da grafisch bissl runden ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...