ZickZack

Aus KaroWiki
Zur Navigation springen Zur Suche springen

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...

Streckenverlauf

Der ZickZack arbeitet nach einem modularen Prinzip aus den folgenden Schritten:

  1. erzeuge einen hübschen Hintergrund
    (Dafür wird ein Perlin-Noise Generator verwendet)
  2. 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)
  3. 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))
  4. 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)
  5. 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)
  6. für Ziel hinzu
    (Das ist einfach immer ein kleines Kreuz)
  7. 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) verteilt.
  • Hindernisse - die Anzahl der Hindernisse. Die Hindernisse werden dabei immer gleichmäßig auf die Gesamtlänge der Strecke (in Karos, nicht in Abschnitten) 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.

Beispielkarten

normale Ergebnisse

ZickZack parameterized 01.png ZickZack parameterized 04.png ZickZack default.png

man kann auch schöne rechte Winkel zaubern

ZickZack parameterized 09.png ZickZack parameterized 10.png ZickZack parameterized 05.png

mit Überschneidungen sieht es nicht mehr ganz so sauber aus

ZickZack parameterized 07.png ZickZack parameterized 08.png

man kann es auch mit der Größe übertreiben

ZickZack parameterized 02.png ZickZack parameterized 06.png

... oder untertreiben

ZickZack parameterized 03.png