Leveldesign mit Messwerten, geprüft von einem Bot
7 Min. Lesezeit

Das Frustrierendste an einem Plattformer ist eine Plattform, die man nicht erreichen kann. Spieler versuchen es zwanzigmal und löschen dann das Spiel. KI-Agenten können einen Parcours sehr schnell erzeugen, aber wer beweist, dass ein schnell erzeugter Parcours wirklich schaffbar ist?
In BOINGWARD hat die Antwort zwei Teile: Die Parcours entstehen nicht aus handverlesenen Zahlen, sondern aus den gemessenen Bewegungswerten des Pogostabs, und ein Bot spielt jeden Parcours mit der echten Pogo-Physik. Dieser Beitrag beschreibt beides und wie die Medaillenzeiten aus genau diesem Bot entstehen. Wie der Pogostab springt, steht im Physik-Beitrag, die ganze Geschichte im Hauptbeitrag der Serie.
Erst messen, dann bauen
Die Regel im Designdokument lautet „Messwerte zuerst“: Wenn die Physik-Abstimmung steht, werden Standard-Sprunghöhe, weitester Sprung und Flugzeit gemessen, und das Plattform-Kit wird um diese Zahlen herum gebaut. In BOINGWARD liegen die Messwerte in einer Datei, CourseMetrics. Alle wurden mit 60 Physikschritten pro Sekunde in einem Test ohne Bildschirm gemessen:
| Messwert | Wert | Bedeutung |
|---|---|---|
| Niedrigster Scheitelpunkt | 3,0 m | Höhe der Spitze über dem Pad beim langsamsten Absprung |
| Eingependelter Scheitelpunkt | 4,0 m | Nach eingependelter Kombo, ohne Eingabe |
| Zeit zwischen zwei Sprüngen | 1,18 s | Eingependelt auf ebenem Boden |
| Erster Sprung aus dem Stand | 8,7 m | Stick ganz nach vorn, direkt nach dem Wiedereinsetzen |
| Weitester Sprung mit Anlauf | 10,2 m | Begrenzt durch die horizontale Höchstgeschwindigkeit |
| Nötiger Freiraum nach oben | 7,5 m | Eingependelter Scheitelpunkt + Körper + Reserve |
Das Werkzeug, das die Parcours baut, nutzt diese Zahlen nie direkt, sondern nur Verhältnisse davon. Ändert sich die Physik-Abstimmung, werden die Messwerte erneuert, der Parcours wird mit tools/build_course.gd neu erzeugt, und jede Lücke passt sich von selbst an.
Der schlimmste Fall: ein frisch eingesetzter Spieler
Jede notwendige Lücke wird am „ersten Sprung aus dem Stand“ gemessen, nicht am „weitesten Sprung mit Anlauf“. Der Grund ist einfach: Fällt ein Spieler und wird an einem Checkpoint wieder eingesetzt, hat er keine Geschwindigkeit. Enthält der Parcours eine Lücke, die nur mit Schwung zu schaffen ist, sitzt der Spieler nach jedem Sturz hinter dieser Stelle fest.
Deshalb setzen die Tests des Spire-Parcours zwei Grenzen:
- Eine notwendige Lücke darf höchstens 60 Prozent des ersten Sprungs aus dem Stand betragen: 8,7 x 0,6 ≈ 5,2 Meter.
- Eine Stufe darf höchstens 75 Prozent des niedrigsten Scheitelpunkts hoch sein: 3,0 x 0,75 = 2,25 Meter.
Im langen Klettermodus sind die Grenzen etwas strenger: 55 Prozent für Lücken und 70 Prozent für Höhe. Der Sprung nach einem Katapult wie einem Trampolin oder einer Kanone darf höchstens 75 Prozent des Scheitelpunkts dieses Katapults verlangen.
Auch Lesbarkeit wird getestet
Das Designdokument legt die Reihenfolge der Schwierigkeit fest: zuerst breite, feste Plattformen, dann Lücken, schmale Pads, Schrägen, bewegliche Plattformen, verkettete Präzisionslandungen, Wege zum Wiederaufrappeln und zuletzt Abkürzungen für Profis. Jeder Schritt bringt genau ein neues „Verb“.
Neben dieser Reihenfolge messen die Parcours-Tests noch mehr: ob über den Plattformen 7,5 Meter Freiraum sind (damit der Kopf des Pogostabs nicht an die nächste Plattform stößt), ob der Spieler die nächsten ein bis drei Ziele sehen kann und ob der ganze Parcours ins Telefon-Budget passt. Für den Spire liegt die Grenze bei 60 Draw Calls und 40.000 Dreiecken, ohne Spielfigur, Oberfläche und Himmel.
Auch die Checkpoints haben sich durch eine Regel geändert. In der ersten Version löste ein Checkpoint aus, sobald der Spieler sein unsichtbares Volumen betrat, selbst im Vorbeifliegen. Jetzt zählt ein Checkpoint nur, wenn die Spitze des Pogostabs auf seinem Pad landet. Der Spire hat fünf Checkpoints und ein Ziel, und für das Ziel gilt dieselbe Regel.
Der Bot: jeden Sprung mit echter Physik ausprobieren
Statische Regeln sagen „auf dem Papier möglich“. Um zu zeigen, dass es wirklich möglich ist, spielt ein Bot den Parcours mit dem echten PogoController. Seine Methode ähnelt bewusst der Denkweise eines Spielers:
- Sprung für Sprung: Jeder Versuch beginnt mit einem Wiedereinsetzen auf der vorherigen Plattform. So hängt der Erfolg eines Sprungs nie vom Glück beim Sprung davor ab.
- Einmal entscheiden: Der Bot legt sich erst auf ein Ziel fest, wenn der nächste Absprung kurz bevorsteht, so wie ein Spieler wählt, wann er springt. Danach ändert er seine Meinung nicht mehr, sondern korrigiert nur in der Luft.
- Anlaufsprung: Liegt das Ziel außerhalb der bequemen Reichweite, macht der Bot zuerst einen kleinen Sprung an den Rand seiner Plattform.
- Bewegliche Ziele: Der Bot sagt voraus, wo eine bewegliche Plattform im Moment der Landung sein wird. Für zeitabhängige Ziele probiert er drei verschiedene Phasen; eine erfolgreiche Landung genügt. Er hat genug Zeit, um zwei volle Zyklen des langsamsten Mechanismus abzuwarten.
- Zeitgesteuerte Plattformen: Teile wie brechendes Glas oder zerbröckelnde Platten werden vor dem Start in ihren Ausgangszustand versetzt, und der Bot startet erst, wenn seine erste Landung halten wird.
Im langen Klettermodus läuft eine größere Version desselben Ansatzes: Der Bot landet jeden der 804 Sprünge vom Boden bis zum Gipfel mit dem echten Pogostab; der Test dauert etwa 20 Sekunden. Der Bot macht keine Tricks; keine Plattform darf einen verlangen.
Ein Bot ist ein besserer Pilot als ein Mensch
Ein Kommentar im Code des Bots fasst den ganzen Ansatz zusammen: „Er ist ein besserer Pilot als ein Mensch, deshalb sind die statischen Grenzen des Layouts die Fairness-Prüfung; der Bot beweist nur die physische Erreichbarkeit.“
Diese Unterscheidung ist wichtig. Der Bot steuert millisekundengenau und wird nie müde. Nicht jeder Sprung, den der Bot schafft, ist für einen Spieler fair. Deshalb gibt es zwei getrennte Prüfungen, und beide müssen bestehen: Die statischen Grenzen beantworten „Ist das für einen Menschen vernünftig?“, der Bot beantwortet „Ist das mit der echten Physik wirklich möglich?“. Schafft der Bot es nicht, ist der Parcours sicher falsch; schafft er es, ist das nur eine notwendige Bedingung.
Die Medaillenzeiten kommen vom Bot
Medaillenzeiten zu schätzen ist einfach, aber inkonsistent: Ändert sich der Parcours, werden die Zeiten entweder unmöglich oder bedeutungslos. In BOINGWARD wird die Basiszeit aus dem Maß eines sauberen Laufs berechnet:
Basiszeit = Sprünge x 1,18 s + zeitgesteuerte Teile x 2,5 sIn den Leveldaten des Spire werden 61 Sprünge und 9 Teile mit Wartezeit berücksichtigt: 61 x 1,18 + 9 x 2,5 ≈ 94,5 Sekunden. Die Medaillen sind Vielfache davon:
| Medaille | Faktor | Zeit |
|---|---|---|
| Gold | 1,3 | 2:02,8 |
| Silber | 1,8 | 2:50,1 |
| Bronze | 2,8 | 4:24,5 |
Die Zeiten stehen nicht im Code, sondern in data/levels/spire.tres, und das Skript, das die Leveldaten erzeugt, berechnet die Basiszeit bei jedem Lauf neu. Ändert sich der Parcours, passen sich die Medaillen von selbst an die neue Route an; von Hand eingestellt werden nur die Faktoren. Der lange Klettermodus hat keine Medaillen; dort zählen beste Höhe und Gipfelzeit.
Das Telefon-Budget ist auch eine Levelregel
Im langen Klettermodus gehört die Performance zum Layout. Der Turm ist in Abschnitte von 24 Metern geteilt, und jeder Abschnitt darf höchstens drei bewegliche und zwei feste Kit-Teile enthalten. Ist das Budget voll, wird das nächste Kit-Teil durch eine einfache Kulisse aus dieser Zone ersetzt; Katapulte werden aber nie ersetzt, weil der nächste Sprung nach ihrem Scheitelpunkt berechnet ist. In der ungünstigsten Ansicht wurden 40 Draw Calls und etwa 38.000 Dreiecke gemessen.
Häufig gestellte Fragen
Wie legt man Lückenabstände in einem Plattformer fest?
Messen Sie den ungünstigsten Sprung der Figur: meist den ersten Sprung ohne Geschwindigkeit direkt nach dem Wiedereinsetzen. Halten Sie notwendige Lücken bei einem Bruchteil davon (in BOINGWARD 55 bis 60 Prozent). Längere Lücken gehören in freiwillige Abkürzungen.
Lohnt sich ein Bot für Level-Tests?
Wenn Ihre Parcours per Code oder von KI-Agenten erzeugt werden, auf jeden Fall. Ein Bot prüft nach jeder Änderung in Sekunden, ob eine Plattform mit der echten Physik erreichbar ist. Weil ein Bot aber besser spielt als ein Mensch, kann er nicht das Maß für Fairness sein; dafür braucht es eigene statische Grenzen.
Wie sollte man Medaillenzeiten berechnen?
Statt zu schätzen, leiten Sie sie aus einem sauberen Lauf ab: Anzahl der Sprünge mal Flugzeit plus Wartezeit für zeitgesteuerte Teile. Die Medaillen sind Vielfache dieser Zeit. Ändert sich der Parcours, aktualisieren sich die Zeiten von selbst.
Verwandte Artikel
Risiko und Belohnung: Lufttricks für ein Pogo-Spiel
Vom Wunsch in einem Satz zum System aus Zahlen: wie die Lufttricks in BOINGWARD eine freiwillige, riskante Belohnung wurden, die nicht von der Bildrate abhängt.
Schummelschutz im Mobilnetz: Serverautoritative Rennen
Der Rennserver von BOINGWARD für 8 Spieler: warum WebSocket, wie Bewegung geprüft wird und warum ehrliche Bots im Test über mobile Daten als Betrüger galten.
Pogo-Physik in Godot: Eine Figur, die von selbst springt
Die Pogo-Physik von BOINGWARD: Springen mit RigidBody3D, die Abschussformel, eine aufschaukelnde Geschwindigkeit und ein Test für 30, 60 und 144 fps.