Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Powerpaule

Treue Seele

  • »Powerpaule« ist der Autor dieses Themas

Beiträge: 162

Wohnort: Berlin

Beruf: Softwareentwickler

  • Private Nachricht senden

1

22.06.2007, 16:48

Zufallskartenscript

hi,

also ich bastel gerade an einem 2d-Strategiespiel.
Ihr kennt ja sicher alle Spiele à la Age of Empires, Empire Earth oder Die Siedler. Dort kann man sich ja zufällig Karten generieren lassen.

Sowas in der Art wollte ich nun auch mit einbauen, also dass man beispielsweise zwischen Festland, Küstenlandschaft und Inseln wählen kann, und dann eine zufällige Karte dieses Typs generiert wird.
Ich könnte natürlich auch einfach einige Karten vormalen, aber die hat man ja schnell durch...

Kennt jemand von euch irgendwie ein Tutotial, wo sowas zumindest ansatzweise beschrieben wird? Oder hat jemand eine grundlegende Idee, wie man sowas realisieren kann? Ich bräuchte ja nur ein paar Anregungen!

danke schonmal!

achso: die Karte wird bei mir einfach in einem 2dimensionalen Array gespeichert, der wert 1 stellt Wasser dar und der Wert 0 Land.

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

2

22.06.2007, 16:50

Mag sein, dass es Möglichkeiten zum generieren gibt, in AOE 2 gibts das aber schonmal nicht... wenn du genauer schaust gibt es dort die so genannten Startwertkarten - wenn man zufällig eine generiert ist das nur eine zufällige Auswahl einer fertigen Karte.

Faule Socke

Community-Fossil

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

3

22.06.2007, 17:21

Jop. bei AOE II hat jede karte eine nummer, sie ist also net zufällig generiert. Das einzige was daran zufall ist, ist dass eine zufallszahl generiert wird.(Dann wird die karte angezeigt usw...)


Socke

big_muff

Alter Hase

Beiträge: 460

Wohnort: Schweiz

Beruf: Informatikstudent (4. Semester)

  • Private Nachricht senden

4

22.06.2007, 17:26

Ich wär mir nicht so sicher dass es in AOE2 keine Zufallskarten gibt. Die Macher haben wohl kaum tausende von Karten erstellt. Ausserdem sehen die Karten sehr künstlich aus. Ich denke eher dass AEO2 einen eigenen Zufallszahlengenerator hat, der mit einer gewählten Zahl initialisiert werden muss. Dann wird "zufällig" eine Karte erstellt. Gibt ein anderer Spieler die selbe Zahl ein erhällt er auch die selben Zufallszahlen und damit die selbe Karte. Das ist allerdings nur Spekulation.

Zum Problem:
Einen fertigen Algorithmus gibt es sicher nicht, sonder du musst dir was eigenes zusammenstellen.
Mein Ansatz für eine Seekarte wär zum Beispiel mit dem PerlinNoise-Alorithmus eine natürlich wirkende Höhenkarte zu erstellen und dann bas Wasser auf etwa die mittlere Höhe stellen (je nach Wasser/Land-Verhältnis das man will). Dann mit einer neuen PerlinNoise-Map die Bewaldung berechnen (alle Punke mit einem Wert über einer festgelegten Schranke werden Wald. Die Schranke kann auch je nach Land/Wald-Verhältnis gewählt werden).
Dann kann man noch zufällig Steine und Gold verteilen und so weiter, kommt halt ganz auf das Spiel, bzw. Typ der Karte an...
Nur Idioten halten Ordnung, ein Genie beherrscht das Chaos.[size=7]

[/size]HardFate - Ein Start, Ein Ziel, Viele Wege[size=7]

[/size]Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.

LagRange

Frischling

Beiträge: 26

Wohnort: dzt. Aalborg, DK

Beruf: Student

  • Private Nachricht senden

5

22.06.2007, 19:50

Für einfache Karten, die nur Land/Wasser unterscheiden sollen würde ich einen Game-of-Life ähnlichen Algorithmus verwenden:

1. Karte mit Rauschen initialisieren

2. Neuer Wert für jedes Feld = Mehrheit der Nachbarfelder (wenn gleich keine Änderung)

Schritt 2 solange wiederholen bis das Gewünschte Ergebnis erreicht ist oder sich nichts mehr ändert.


Diese Methode ist einfach, schnell und gibt schön zusammenhängende Land- und Wassermassen.
Science is common sense applied to evidence.

Black-Panther

Alter Hase

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

6

22.06.2007, 23:39

Der Nachteil dieser Methode ist, dass die Komplexität des Algoritmus stark variiert und er mitunter auch manuell fortgeführt werden muss ("Schritt 2 solange wiederholen bis das Gewünschte Ergebnis erreicht ist").

Ich würds so machen:

0. Preeinstellungen treffen: Wie viel % Wasser, wie viel Land, wie groß die Höhenunterschiede, usw
1. Zufälligen Node auswählen und als Startpunkt einer BFS verwenden
2. Für jeden Node in der BFS zufällig nach eingestelltem Verhältnis den Typ des Nodes ermitteln, mit zusätzlich erhöhter Wahrscheinlichkeit für den gleichen Typ wie der Parent-Node.

Komplexität ist O(n), wobei n die Anzahl der Nodes ist. Besser als linear kanns nicht mehr werden ;) und außerdem ist er sehr einfach zu implementieren!
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

Werbeanzeige