Aiun Geschrieben 18. Februar 2008 Teilen Geschrieben 18. Februar 2008 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 18. Februar 2008 Teilen Geschrieben 18. Februar 2008 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Aiun Geschrieben 19. Februar 2008 Autor Teilen Geschrieben 19. Februar 2008 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.... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 19. Februar 2008 Teilen Geschrieben 19. Februar 2008 Ich glaube es war dieser A*: A*-Algorithmus - Wikipedia Da ist unten auch ein guter Artikel zum Verstehen des ganzen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 19. Februar 2008 Teilen Geschrieben 19. Februar 2008 ...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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.