ZickZack
ZickZack ist ein von ultimate geschriebener Kartengenerator. Seit dem 25.10.2023 ist er in Karopapier eingebunden.
Ursprünglich wurde der erste Entwurf des Generator irgendwann vermutlich so um 2008-2010 in Matlab implementiert. Seit Didi aber die Generatoren eingebaut hat, hat ultimate den Code migriert und noch etwas aufgemotzt. Das Ergebnis seht ihr unten...
Inhaltsverzeichnis
Streckenverlauf
Der ZickZack arbeitet nach einem modularen Prinzip aus den folgenden Schritten:
- erzeuge einen hübschen Hintergrund
(Dafür wird ein Perlin-Noise Generator verwendet) - erzeuge die Streckenverlauf als Abschnitte mit individueller Breite
(Dabei wird der nächste Abschnitt immer an den vorangegangenen so "angehangen", dass die Kurvigkeit "Zick" eingehalten wird) - füge N Checkpoints entlang der Strecke hinzu
(Dabei sind die Checkpoints immer quer zur Streckenrichtung (mit Ausnahme, wenn sie zufällig in einer Kurve liegen)) - füge N Hindernisse entlang der Strecke hinzu
(Dabei variiert die Form der Hindernisse je nachdem ob die Strecke mehr gerade oder mehr diagonal verläuft) - für Startplätze hinzu
(Dabei gibt es zwei Setups: eins für "gerade" und eins für "45 Grad", die je nach Startabschnitt ausgerichtet werden. Beide haben immer 8 Startplätze) - für Ziel hinzu
(Das ist einfach immer ein kleines Kreuz) - für ULTI-Logo hinzu
(gaaanz wichtig :wink:)
Ziel ist es das Prinzip auch für andere Generatoren verwenden zu können. Diese können dann z.B. einfach nur Schritt 2 (Erzeugung des Streckenverlaufs) anders machen, aber ansonsten auf die gleiche Logik für CPs, Hindernisse, Start und Ziel zurückgreifen...
Parameter
Folgende Parameter bestimmen den Verlauf der Strecke und das Aussehen der Karte.
- Streckenlänge - die Maximalanzahl an Abschnitten (es wird aber früher abgebrochen, wenn kein Platz mehr ist)
- Streckenbreite - die minimale und maximale Breite der Strecke (die Strecke wird dabei Mittig um einen Vektor aufgespannt und ist also nach rechts und links je Breite/2 breit)
- Zickigkeit (Stärke der Kurven) - der minimale und maximale Winkel in Grad um den die Strecke an jedem Abschnittswechsel "umknickt"
- Zackigkeit (Länge der Geraden) - die minimale und maximale Länge der einzelnen Abschnitte
- Checkpoints - die Anzahl der Checkpoints (mindestens jedoch immer 4, wegen des ULTI-Logos - wenn du keine willst, dann deaktiviere sie einfach in den Spiel-Einstellungen). Die CPs werden dabei immer gleichmäßig auf die Gesamtlänge der Strecke (in Karos, nicht in Abschnitten) und aufsteigend ihrer Nummerierung von 1 bis zur eingestellten Anzahl verteilt.
- Hindernisse - die Anzahl der Hindernisse. Die Hindernisse werden dabei immer gleichmäßig auf die Gesamtlänge der Strecke (in Karos, nicht in Abschnitten) und immer abwechselnd rechts links vom Streckenverlauf verteilt. Bei starken Ecken, werden unter Umständen Hindernisse weggelassen um die Wahrscheinlichkeit zu verringern, dass die Strecke unpassierbar wird. Achtung: bei zu vielen Hindernissen kann die Strecke trotzdem noch unbefahrbar werden.
- Überschneidungen - normalerweise achtet der ZickZack darauf, dass sich die Streckenabschnitte nicht berühren oder kreuzen. Mit dieser Einstellungen kann das deaktiviert werden. Das Ergebnis kann dann aber sehr wirr werden :wink:
- Startrichtung - normalerweise wird die Startrichtung rein zufällig gewählt. Du kannst aber auch gezielt eine Richtung vorgeben (z.B. wenn du ein City-Race / rechte Winkel haben willst)
- Maximale Größe - hier kannst du zu guter Letzt noch die maximale Größe der Karte in Karos festlegen. Du kannst damit auch echt große Karten (siehe unten) erzeugen.