Vollständige Gestaltungsfreiheit für deine Carrera Hybrid Bahn
Alle Autos stehen auf den Teilen vor Start/Ziel. Erst wenn du Start/Ziel zum ersten Mal überfährst, beginnt Runde 1.
Challenges experimentell
Wöchentliche Challenges
Dauerrennen
Network
Community-Bestzeiten
Community-Bestzeiten experimentell
experimentell
Online-Bestenliste
Bestenliste
| # | Fahrer | Zeit | Abstand |
|---|
Beste 3er-Serie
Durchschnitt der drei schnellsten aufeinanderfolgenden Runden.
Info
App & Updates experimentell
Die App lädt neue Fassungen selbst, direkt von der Projektseite. Geladen wird nur, was sich geändert hat, und alle Einstellungen bleiben erhalten. Startet eine neue Fassung nicht, schaltet die App von selbst auf die vorige zurück.
| Web-Fassung | – |
| APK | – |
| Quelle | – |
Was du brauchst
Was du zum Fahren brauchst
- Chrome (oder Edge) auf PC oder Android, mit erteilter Bluetooth-Berechtigung. Web Bluetooth gibt es in Safari und Firefox nicht.
- Ein Carrera-Hybrid-Auto mit Firmware Stand August 2026.
- Einen Bluetooth-Controller. Getestet mit DualShock 4 und DualSense.
Optional
- Eine CH-Strecke oder der Start/Ziel-Ausdruck – benötigt zum Rundenzählen. Start/Ziel als SVG herunterladen
- Weitere Autos als autonome Gegner.
Und dann in dieser Reihenfolge: verbinde dein Auto in der Garage, stelle die Optionen nach deinem Geschmack ein, und fahre im Cockpit. Einige Optionen lassen sich direkt dort anpassen.
Funktionen
Rechtliches
Dieses Projekt ist unabhängig von Carrera und gehört zu keinem Hersteller. Der vollständige Quellcode steht unter der MIT-Lizenz auf GitHub.
Jeder darf ihn nutzen, kopieren, verändern und auch in kommerzieller Software verwenden, solange der ursprüngliche Urheberrechtsvermerk und der Lizenztext in der Kopie erhalten bleiben.
Dieselbe Lizenz sagt aber auch: die Software kommt ohne Garantie und ohne Gewährleistung. Du steuerst deine Autos auf eigene Gefahr. Es ist ein Freizeitprojekt, motiviert durch die Option, eine Pups-Hupe einzubauen – und möglicherweise funktioniert es nach einem künftigen Firmware-Update nicht mehr.
Diese Seite zählt Aufrufe mit GoatCounter, damit ich weiß, ob das Projekt jemand benutzt. Ohne Cookies, ohne Werbung und ohne personenbezogene Daten; wer den Zähler blockiert, verliert keine Funktion. Alles andere – Abstimmungen, Rundenzeiten, Streckenpläne – bleibt im Browser und wird nirgends hingeschickt.
Für konstruktives Feedback oder Feature-Wünsche schreib mir gern im Thema „Omega Sim“ im Carrera Hybrid Players Discord, unter „weitere Themen“.
Wozu dient dieses Projekt?
Die Hardware ist gekauft, die Software bestimmt jemand anders. Dieses Projekt dreht das um: es steuert ein Carrera-Hybrid-Auto mit eigenem Code über dieselbe Bluetooth-Schnittstelle, die die Hersteller-App benutzt. Damit läuft auf der Hardware, was man selbst darauf laufen lassen will – unabhängig davon, ob ein Anbieter eine Funktion vorsieht, eine App weiter pflegt oder einen Server abschaltet.
Der zweite Punkt ist die Gemeinschaft. Ein offengelegtes Protokoll kann jeder weiterverwenden: für Funktionen, die der Hersteller nicht baut, für eine andere Bedienung, für Unterricht. Das hier ist bewusst als Beispiel gebaut und nicht als Produkt: alles, was herausgefunden wurde, steht in der Doku, samt der Stellen, an denen wir uns geirrt haben.
Offene Software als Teil offener Wissenschaft
Wer Ergebnisse prüfbar machen will, braucht prüfbare Werkzeuge. Eine Auswertung, die auf einem Programm beruht, in das niemand hineinsehen darf, ist genau so weit nachvollziehbar wie das Vertrauen in dessen Hersteller reicht. Deshalb wechseln Forschende zunehmend von kommerzieller auf offene Software, und deshalb steigen auch Landesverwaltungen von Windows auf Linux um: es geht um Kontrolle über die eigene Infrastruktur, nicht um Anschaffungskosten.
Offene Software kann dabei sogar sicherer sein, und der Grund dafür heißt Kerckhoffs’ Prinzip: ein Verfahren soll seine Sicherheit aus dem geheimen „Schlüssel“ ziehen und nicht aus der Geheimhaltung des „Verfahrens“. Ein Verfahren, das nur funktioniert, solange niemand es kennt, ist nicht sicher, sondern unprüfbar. Offenlegung ist deshalb kein Risiko, sondern die Voraussetzung dafür, dass Fehler gefunden werden können.
Das heißt nicht, dass offene Software automatisch sicherer ist – nur, dass Prüfbarkeit und Sicherheit sich nicht widersprechen.
Zum Weiterlesen und Ausprobieren
„Ada & Zangemann“ von Matthias Kirschner und Sandra Brandstätter ist ein Kinderbuch darüber, wem die Software auf einem Gerät eigentlich gehört. Es erklärt in einer Geschichte, worum es oben in drei Absätzen ging.
Und praktisch: die Programmierschule unter Entwicklertools lässt dich Beschleunigungs- und Lenkkurven mit der Hand ziehen und sofort sehen, was das Auto daraus macht. Das ist der kürzeste Weg von „Programmieren ist abstrakt“ zu „eine eckige Kurve fährt schlechter als eine geschmeidige“.
Credits
Coders
- Luuke42 Autor und Hauptentwickler von OmegaSim – die gesamte App: Programm, Fahrphysik, Sounds, Menü, Strecken, Selbsttest. Auch das Safety Car selbst (die ursprüngliche Variante „Fahrbahn“: fährt beim Start die erste Runde mit und hält nach Gelb rechts an Start/Ziel).
- Playdater1974 (Bambi007) Zwei zusätzliche Parkmodi für das Safety Car: „Fahrbahn, wartet bis Gelb“ (fährt beim Start nicht mit) und „Neben der Strecke von Hand“ (wartet neben der Strecke, kehrt nach Gelb zum Startpunkt zurück und verlässt die Bahn). Dazu die einstellbare Ausfahrt mit den Reglern und die Grenze, dass Folgeautos nie schneller sind als das Safety Car. Später die robustere Ausfahrt (klappt auch, wenn der Kachelzähler die Ausfahrtkachel überspringt) und der Regler „Rand-Vorlauf“, damit die Randfahrt früher beginnt als das Abbremsen. Außerdem den experimentellen „NPC: Rückweg mit Lenkung“ (hängt ein NPC fest, setzt er kurz zurück und lenkt zur Innenseite der Kurve). Gebaut und am Tisch getestet.
Danksagungen
Dieses Projekt steckt voller Dinge, die jemand anders herausgefunden, ausprobiert oder geduldig zurückgemeldet hat. Namentlich:
- KaiGS Für das Feedback zum Steuern per RC-Funke über CH Control.
- seVen Fürs Teilen seines Wissens zu den Bluetooth-Protokollen.
- Carrera Hybrid Players Discord Den Testern dort, für Rückmeldungen aus echten Rennen, die keine Simulation liefert.
- gnen54 Für das Finden und Berichten zahlreicher Bugs.
Woher die Bilder kommen
Einige Bilder im Menü (Titel, Rennen, Start, Strecke, Optionen, Info, Challenges und Box) wurden mit KI generiert (Gemini Flash). Markenlogos darin sind entfernt. Die übrigen Bilder sind eigene Fotos.
Woher die Klänge kommen
Der allergrößte Teil der Klänge ist gerechnet und nicht aufgenommen: alle fünfundzwanzig Motoren mit ihren 132 Schleifen, dazu Bremsen- und Reifenquietschen, die Crash-Varianten, Tankgeräusch, Karosseriereparatur und der Motorstart. Dort wird nichts abgespielt, sondern aus Zylinderzahl, Zündfolge und Krümmerlänge erzeugt.
Die folgenden Klänge sind die Ausnahme: sie stammen aus echten Aufnahmen. Alle von Pixabay und unter der Pixabay-Lizenz. Die unbearbeiteten Quelldateien sind nicht Teil dieses Projekts.
- Hupen für die Lichthupe – sechs Aufnahmen, in dieser Reihenfolge Autohupe, Schiffshupe, Esel, Ziege und zwei Furztöne. Der letzte stammt von freesound community über Pixabay. universfield-car-horn-02-153260 · universfield-cargo-ship-horn-352063 · stu9-donkey-1-352697 · playdown-suara-goat-berteriak-367222 · apebble-fart-4-228244 · freesound_community-fart-83471
- Regen und Donner. pwlpl-heavy-thunderstorm-sound-effect-473418
- Strecken-Ambience, also der Teppich und die Vorbeifahrten. fjc_media-sounds-of-nuerburgring-engines-of-classic-race-cars-234929
- Der Schlagschrauber beim Boxenstopp (je Radpaar, geschnitten und gemischt). Sound Effect by Jun Su from Pixabay · soundeffectsparty-pneumatic-impact-wrench-loosening-bolts-502995
- Der Motorklang der Corvette C6. astonmartinvantagev12-chevrolet-corvette-c6-sound-effect-360531
Das Motormodell folgt dem Ansatz von engine-sim unter der MIT-Lizenz; Zylinderzahlen, Drehzahlgrenzen und Kurbelwellenwinkel stammen aus dessen Motordefinitionen. Die vollständige Aufstellung mit allen Messwerten steht in der Datei CREDITS im Audio-Ordner.
github.com/ange-yaghi/engine-sim · audio/CREDITS.md
Fachliteratur zu den Modellen
- Einspurmodell (Gier- und Schwimmwinkel-Anzeige, Pacejka-Modus):
- Riekert, P. & Schunck, T. E. (1940). Zur Fahrmechanik des gummibereiften Kraftfahrzeugs. Ingenieur-Archiv, 11, 210–224. doi:10.1007/BF02086921
- Reifenkennlinie im Pacejka-Modus (Magic Formula):
- Pacejka, H. B. & Bakker, E. (1992). The Magic Formula tyre model. Vehicle System Dynamics, 21(sup1), 1–18. doi:10.1080/00423119208969994
Patchnotes
1.2
- Latenz: Das schnelle Verbindungsintervall wird nur noch einmal je Verbindung nachgefordert, und erst wenn ein Auto 5 s lang langsamer als alle 120 ms meldet (vorher alle 20 s je Auto ab 75 ms – mit vier Autos handelte das Handy etwa alle 5 s eine Verbindung neu aus). Linienmodell SIMULATOR: Die Linie wird nur noch im Strecken-Editor berechnet und gespeichert, beim Fahren nie mehr im Hintergrund; fehlt sie, fahren die NPCs die normale Linie.
- Latenz: Die Strecke im Regenradar ist wieder entfernt, und das Radar zeichnet nur noch in einfacher Auflösung (auf hochauflösenden Handys ein Viertel der Bildpunkte). Neuer Schalter „Regenradar“ unter Optionen → Allgemein: aus, wird das Radar gar nicht gezeichnet. Der Knopf „Reinigungsfahrzeug starten“ steht nur noch in der Bahn-Kachel, nicht mehr in der Garagen-Kachel.
- NPCs: Start/Ziel gilt jetzt überall als Gerade. Die Linie hält dort die Querlage wie auf jeder Geraden, statt hinter einer Kurve halb innen zu bleiben, und der Vorausblick ans Auto meldet auf der Bahn Start/Ziel (0x01) statt der Engstelle (0x0A). NPC-Stufe MAX: Ohne Schaltpause wurde der Schaltvorgang nach dem ersten Hochschalten nie beendet, das Auto hatte danach keinen Antrieb mehr – behoben, MAX fährt auf Geraden etwa doppelt so schnell wie vorher. Ideallinie (Linienmodell SIMULATOR, WIP): Die Suche rechnet mit dem echten Kurventempo der NPCs und fährt außen-innen-außen (Kurveneingang und -ausgang außen, Scheitel innen), statt nur die innere Hälfte zu nutzen; die Haarnadel bleibt davon ausgenommen, gespeicherte Linien werden neu gesucht.
- Virtuell fahren: Neben dem eigenen Auto stand im 3D-Bild ein kleines Kartenauto, die Silhouette aus dem Regenradar des Cockpits, das darunter eigentlich verborgen ist; es ist weg. Die NPCs fahren jetzt mit dem Tempo der Garagenstufe 1 (mittel, 55 %) statt mit rund 80 %, beschleunigen und bremsen mit demselben Fahrzeugmodell wie das eigene Auto und nehmen Kurven mit höchstens 1,3 g. Ihre Neigung in Kurven war durch einen Rechenfehler bis zu 34 Grad groß und ist jetzt so klein wie beim eigenen Auto (unter 1 Grad).
- Cockpit: Die Rennpause ist jetzt ein kleines Symbol oben rechts, mit Abstand links neben dem Beenden-Knopf (Pause, Fortsetzen, Wiederanlauf stoppen). Boxen-Minigame: Alle fünf Knöpfe stehen von Anfang an in einer Reihe an festen Plätzen, erledigte blenden aus. Streckeneditor: Mit einer Haarnadel in der Strecke fehlte an der letzten Fuge vor Start/Ziel ein Stück Randstreifen (rund 3 cm), sodass z. B. SHG3R4L nicht zusammenzupassen schien; die Maße selbst stimmen und schließen exakt.
- Neu von Playdater1974, übernommen mit Korrekturen: Rennpause (WIP) – das Rennen lässt sich anhalten (Knopf im Cockpit oder frei belegbare Controllertaste), die Autos bleiben stehen, die Rennuhr steht still, weiter geht es mit einer kurzen Wiederanlauf-Ampel. Im WLAN-Mehrspieler ist die Pause gesperrt. Nach einem Neuladen der App bleibt kein Auto mehr in der Pause hängen (braucht die neue APK).
- Schaltklang (WIP): statt des hellen „Klack“ jetzt bei allen Motoren ein tiefer, weicher Schaltschlag mit Auspuffknall – auch beim Runterschalten, so wie es bisher nur beim Hochschalten des Mustang v2 unter Last klang. Der helle Metallanteil ist fast weg. Der frühere Klang kommt mit „Schaltklang: alt“ (Optionen → Ton).
- Neu von Playdater1974, übernommen mit Korrekturen: Rennintro (WIP) – auf Wunsch sagt eine Stimme vor der Startampel Modus, Limit, Pflichtstopps, Startaufstellung und Wetter an; fehlende Aufnahmen werden einzeln übersprungen, Frühstarts zählen schon ab dem Intro, in Challenges gibt es kein Intro. Statistikbereinigung (WIP) unter Optionen → Statistiken: Fahrzeugstatistiken, einzelne Sitzungen und zu kurze Rundenzeiten mit Vorschau löschen, mit Sicherung zum Rückgängigmachen und JSON-Export; jetzt auch auf Englisch und Spanisch, und alte Sitzungen erscheinen nicht mehr doppelt.
- Cockpit: Das Regenradar ist breiter und zeigt die Strecke mit allen Autos (WIP, Schalter „Strecke im Regenradar“ unter Optionen → Allgemein); Wolken und Regen ziehen darüber. Hochkant gezeichnete Strecken werden in der breiten Kachel gedreht, im Ausdruck-Modus steht dort das eigene Foto der Bahn. Tank und Schaden sind schmaler. Die Position oben links neben der Runde heißt jetzt #2/5 statt P2/5 und erscheint auch bei Time Attack (nach Bestzeit). Streckenscan: jede Kachel wird jetzt nach Leseart übersetzt, eine Engstelle auf der Bahn wurde vorher als zweites Start/Ziel eingetragen. Hinweistexte zu Lenkdämpfung (Vorgabe 0) und Bremskennlinie (Vorgabe 2,45) berichtigt.
- Erklärtexte berichtigt, die nicht mehr zum Verhalten passten: Boxen-Minigame (fünf Tasten, je 8 Prozent schneller, falsche 8 Prozent langsamer), Mischungsunterschied (weich 2,6-facher, hart 0,4-facher Verschleiß), Regen-Schalter, NPC-Boxenstopp (eine Box, wie das Safety Car), wechselhaftes Wetter (Schauer von 30 bis 90 s alle 1 bis 3 min), Fahrgefühle Arcade, Pro, Pacejka und Omega (Werte wie eingestellt), Mehrspieler an einem Gerät (eigenes Fahrgefühl je Spieler) und die Codetabelle der Streckenteile (auf der Bahn 0x01 Start/Ziel, 0x0a Engstelle).
- Karte: Die Autos sind jetzt Silhouetten in Draufsicht – Porsche 911 GT3 R, Ford Mustang GT3, BMW M4 GT3, Ferrari 296 GT3 und ein Formelwagen (Modell „Red Bull“), jeweils mit Heckflügel und in der Farbe, die in der Garage für das Auto gewählt ist. Welche Form ein Auto bekommt, richtet sich nach „Marke / Modell“ in der Garage; Audi, McLaren, Mercedes, VW Käfer und nicht zugeordnete Autos bleiben Rechtecke mit Spoilerstreifen.
- NPC-Stufe MAX beschleunigt auf Geraden deutlich schneller: eigenes Motormodell mit doppelter Beschleunigung (Regler „MAX: Beschleunigung“, 1–4×) und ohne Schaltpause; auf Geraden bremsen Feld-Staffel, Lernfaktor und Streuung MAX nicht mehr. Der Streckenscan fährt schneller: Geraden 80 % statt 67 %, Kurven 67 %, nur die Haarnadel bleibt bei 47 %.
- Klang (WIP, Vorschlag): Beim Schalten bleibt der Motorklang jetzt bei allen Motoren stehen, bricht kurz ein wie bei einer Zündunterbrechung, und die Tonhöhe gleitet statt zu springen – so wie bisher nur die Mustang-GT3-Aufnahme; der alte Klang kommt mit dem Schalter „Schaltklang: alt“. NPCs schalten früher zurück (ab 5200/min), sodass man ihre Gänge hört, knallen auch beim Bremsen aus dem Auspuff und etwas lauter; die alten Knaller gibt es mit „NPC-Motorklang: alt“.
- Spieler und Renntypen: Spieler 2 und 3 können in der Garage ein eigenes Fahrgefühl wählen (z. B. Spieler 1 Pacejka, Spieler 2 Arcade) oder „wie Spieler 1“; ihre Reifenmischung wird nicht mehr von Spieler 1 überschrieben. Renntypen folgen dem Sensormodus: auf der Bahn kein Demolition Derby, im Ausdruck kein Time Attack (auch beim Durchschalten auf FAHREN); Rennstart und Meisterschaft warnen, wenn im Ausdruck-Modus NPCs oder ein Safety Car in der Garage stehen. Community-Challenges gibt es jetzt auch mit Pacejka (Apps Script neu bereitstellen).
- Boxen: Im Minigame kommt der grüne Haken nur noch nach einem richtigen Druck, ein rotes Kreuz nach einem falschen, nichts nach Zeitablauf; darunter stehen der aktuelle und die drei nächsten Knöpfe in einer Reihe, die animiert weiterrutscht. Die Signaltöne der Boxengasse (Bling, Blip, Düüt) sind jetzt mechanisch – kurze Ausschnitte aus Ratsche und Schlagschrauber; die alten Töne gibt es mit dem Schalter „Alte Boxen-Signaltöne“.
- NPC-Boxenstopp wie das Safety Car (WIP): einparken mit der Einparkfolge des Safety Cars, im Stand läuft die Ratsche, ausparken mit der Ausparkfolge. Weiterhin immer nur ein Auto. Steht ein Safety Car in der Garage, liegt die NPC-Box auf dem ersten Stück mit zwei Geraden ab drei Teilen hinter dessen Parkplatz.
- Safety Car parkt auch auf kurzen Geraden: Ab zwei Teilen vor dem Parkteil fährt es mittig; reicht die Gerade ab dem Parkteil nicht für den Rollweg der Einparkfolge, wird ihr Gas gestaucht (höchstens auf die Hälfte), damit es auf der Geraden steht statt in die Kurve zu rollen. Andere Autos fahren um das gewählte Parkteil links vorbei (vorher fest um Start/Ziel).
- Bluetooth: Kein helles „verbunden“-Licht mehr ohne Verbindung. Ein Verbindungsaufbau, der nach dem Koppeln scheitert oder hängt (höchstens 20 s), trennt jetzt sauber; zwei gleichzeitige Aufbauten zum selben Auto (automatisches Verbinden und Klick) gibt es nicht mehr; beim App-Start werden alte Verbindungen geschlossen; „Alle trennen“ trennt in der App auch hängende Verbindungen. Latenz: Während ein Auto neu verbindet, schreiben NPCs nicht mehr (das sperrte den schnellen Weg bis zu 10 Minuten), und meldet ein Auto dauerhaft langsamer, wird das schnelle Verbindungsintervall neu angefordert. Teile davon brauchen die neue APK.
- Controller-Abgleich: Änderungen sind jetzt ein Entwurf und werden erst mit „Übernehmen“ gespeichert (am Pad: Options 1 s halten), „Abbrechen“ verwirft sie. Solange reagiert der Controller auf nichts anderes, und danach erst wieder, wenn alle Tasten losgelassen sind – vorher löste eine gehaltene Taste nach der Erfassung Zurück, Reiterwechsel oder Cockpit aus. Die Ruhelage wird erst bei losgelassenen Tasten genommen (X erfasste sich sonst selbst).
- Karte und Aufstellung: Der eigene Punkt misst jetzt seine Kachelzeiten (vorher feste 800 ms, er blieb am Kachelende stehen und sprang), zählt verlorene Meldungen mit und springt nicht mehr eine Kachel zurück, solange der neue Zählerstand noch nicht verarbeitet ist. Automatische Aufstellung: Ab Reihe 2 gilt ein knapp (bis eine halbe Kachel) überfahrener Platz – vorher drehten diese Autos eine weitere Runde. In der Schlange fällt kein Auto mehr unter die Lesegrenze. Gas der Safety-Car-Folge Standard 70 % statt 75 % (Reihe 1 stand etwas zu weit außen).
- Regen: Das Flackern ist behoben. Der Blitz war ein Filter auf dem ganzen Cockpit, den das Handy jedes Mal neu zeichnete – jetzt eine helle Schicht darüber (neuer Schalter „Blitz bei Gewitter“). Die Regenebenen springen nicht mehr beim Neustart ihrer Schleife, und die Regenstärke wird nur noch bei spürbarer Änderung gesetzt.
- Kleinigkeiten: „Automatisch aufstellen“ erscheint nur noch auf der Bahn. Die Studie heißt jetzt OmegaLab. Jede Sitzung beginnt trocken und ohne Wetterwechsel (Startwetter und „Wetter ändert sich“ kommen nicht mehr aus der Sicherung). Reifenverschleiß: weich stärker (2,6 statt 2,2), hart schwächer (0,4 statt 0,5).
1.1
- Boxenstopp: Tanken „nein“ gilt jetzt. Das Boxen-Minigame (Standard) baute seinen eigenen Plan und tankte immer voll; außerdem kam eine Änderung in der Boxengasse nicht im Plan an. Reifen: erst beide hinteren, dann beide vorderen Räder; solange gewechselt wird, lässt sich der Stopp nicht abbrechen. Neuer Schlagschrauber je Radpaar aus einer Aufnahme (Sound Effect by Jun Su from Pixabay, Pixabay-Inhaltslizenz; Quelle in audio/CREDITS.md).
- Reifen: Der Mischungsunterschied ist größer – Standard 150 % statt 100 % (weich +30 % Grip, hart −22 %), Regler unter Fahrgefühl bis 300 %. Neue Renneinstellung „Weiche Reifen verboten“ (Standard aus).
- Vibration: eigene Kachel im Optionsmenü mit einem Schalter je Auslöser – Schalten, ABS, Aufprall, Übersteuern, Untersteuern, neu Reifenquietschen (leicht, mit der Lautstärke des Quietschens), neben der Bahn, Boxenstopp, Meldungen, Trigger. Behoben: Im Pacejka-Modus brummte das Pad bei jedem Gasgeben dauerhaft (die Lenkentlastung unter Gas galt als Untersteuern); jetzt nur, wenn die Front wirklich schiebt.
- NPC-Stufe MAX (WIP): In der Garage gibt es nach „schnell“ die Stufe MAX. Solche NPCs fahren auf Geraden, in Radius-1-Kurven (60° und kleine 30°) und in Radius-2-Kurven (weite 30°) mit eigenen Tempi aus dem NPC-Menü (Standard 100 %, 52 %, 80 %) und bremsen eine Schiene vor der Kurve oder erst am Kurventeil (Auswahl). Haarnadel, Engstelle, Mindesttempo, Gelb und Einführungsrunde gelten wie für alle.
- Automatische Aufstellung: Jedes Auto parkt jetzt mit genau der Einparkfolge des Safety Cars – gleiche Zeiten und Lenkwerte, für die linke Spalte gespiegelt, mit weniger Gas (neuer Regler, Standard 75 %), damit es weiter innen steht. Immer diese Folge, auch auf Kurventeilen; in der Haarnadel parkt weiterhin niemand. Das Log nennt für jedes Auto Seite und Gas.
- Reinigungsfahrzeug: Nach der ersten Start/Ziel-Überfahrt fährt es je eine volle Runde mittig, links (Querlage 90 %) und rechts (90 %) und hält dann an. Die Querlage kommt allein aus dieser Vorgabe, ohne Ideallinie; die Runden werden über den gefahrenen Weg gezählt.
- Gleich schnell: Das Safety Car fährt unter Gelb dasselbe Tempo wie das Feld (Gerade, Kurve und Haarnadel mit denselben Grenzen) – vorher überall gleich, also auf der Geraden langsamer und in der Haarnadel schneller. In der Einführungsrunde fährt dein Autopilot in Kurven so schnell wie die NPCs (vorher deutlich langsamer), und die Feld-Staffel ist dort aus.
- Spieler 2 und 3 sind nicht mehr als experimentell gekennzeichnet (Garage und Optionen).
- Cockpit (WIP): Oben links neben der Runde steht jetzt deine Position, z. B. P2/5 – bei Rundenrennen und Endurance nach Runden und Gesamtzeit (wie die Rennübersicht), im Qualifying nach Bestzeit, in den anderen Modi nicht.
- Automatische Aufstellung: Die Autos parken wieder mit Aufnahme am Rand. Die Einparkfolge ist jetzt Takt für Takt der Mittelwert aus deiner Aufnahme links/rechts und dem Einparken des Safety Cars (Lenkung und Gas) – kräftiger an den Rand als bisher, weniger weit als das Safety Car. Der kurze Lenkimpuls statt der Aufnahme gilt nur noch, wenn der Platz selbst auf einer Kurve liegt (vorher auch bei einer Kurve dahinter – dann blieben die Autos mittig stehen).
- Garage: Blinken ist jetzt ein Knopf rechts direkt unter der Rolle. Das Antippen oder Anwählen eines Autos links blinkt nicht mehr – das Blinken baute die Garage alle 150 ms neu und ließ die linke Spalte springen.
- Tempo-Grenzen dokumentiert (CARRERA_HYBRID.md): Alle Tempozahlen im Code sind Anteile des Gasbytes (0xDF + Anteil × 127), für NPCs und den Autopiloten gleich. Die Tabelle nennt jede Grenze in Gasschritten und m/s (Scan Haarnadel Δ 21, Leseschwelle Δ 44, Mindesttempo Δ 47, Gelb Δ 51). Die „Leseschwelle“ 0,35 ist keine Messung, sondern eine vorsichtige Betriebsgrenze – der Scan liest auch mit Δ 21.
- Gummiband neu (WIP, Time Attack): Hat ein NPC viel Vorsprung (ein Viertel Runde, mindestens zwei Teile), wird er an jeder Start/Ziel-Durchfahrt langsamer, bis du ihn überholt hast; danach Runde für Runde schneller, bis er wieder vorn ist. Neuer Regler „Gummiband: Schritt je Runde“ (2–10 %, Standard 4 %). Das Tempo bleibt zwischen 60 und 140 % seines Garagentempos, in Kurven höchstens 110 %, vor und in der Haarnadel nie über dem Garagentempo; Mindesttempo und Haarnadel-Obergrenze gelten weiter. Der Vorsprung wird über Runden mitgezählt, ohne den Rundenzähler deines Autos.
- Automatische Aufstellung: Kein Startplatz mehr in der Haarnadel oder Engstelle – fällt einer dorthin, rücken er und alle dahinter um ganze Teile zurück (andere Kurven bleiben erlaubt). Das Safety Car hält beim Aufstellen Abstand wie unter Gelb und fährt im selben Tempo wie alle (sein Mindest- und Heimweg-Tempo greifen dort nicht mehr). Einparken links/rechts: die Aufnahme lenkt 45 ms länger nach außen, die Autos stehen etwas weiter am Rand und halten die Mitte frei.
- Gelbe Flagge: alle gleich schnell. Die Feld-Staffel schob hintere NPCs auch unter Gelb um bis zu 10 % an – unter Gelb ist sie jetzt aus. Dein Autopilot fährt unter Gelb mit demselben Mindesttempo und derselben Haarnadel-Obergrenze wie die NPCs (vorher war er in Kurven langsamer als sie). Das NPC-Tempo aus der Garage spielt unter Gelb keine Rolle.
- Verbindungston ohne Piepen: Der Anlassklang beim Verbinden beginnt jetzt dort, wo der Motor anspringt – das hohe Anlasser-Surren der ersten Sekunde fällt weg. Garage: Die linke Spalte bleibt beim Umstellen rechts auf ihrer Höhe (die Position wird beim Scrollen mitgeschrieben und nach dem Neuaufbau zweimal gesetzt).
- Aufstellung: Jede Reihe steht jetzt eine halbe Kachel hinter der vorigen, vier Autos je Teil (zwei links, zwei rechts). Liegt ein Platz in einer Kurve oder direkt davor, parkt das Auto mit dem kurzen Lenkimpuls statt mit der Aufnahme. Das Tempo der Aufstellung hängt nicht mehr an Schwierigkeit oder Grundtempo. Safety Car: fährt die erste Runde ganz hinter dem Feld mit und parkt erst danach; neuer Regler „Gas beim Ausparken“ (WIP, Standard 1,5 × der Aufnahme).
- NPCs in der Haarnadel: Das Höchsttempo dort gilt jetzt zuletzt. Bisher hoben die Feld-Staffel (bis +10 %) und das Mindesttempo (37 %) jede Haarnadel über die Grenze. Neuer Regler NPC → „Höchsttempo in der Haarnadel“ (WIP, Standard 35 %, gilt auch auf den zwei Teilen davor). Ab vier Teilen vor der Haarnadel gibt es keinen Überholschub mehr.
- Ansagen: Statt „Autonamen ansagen“ wählst du jetzt, was die Namen in der Garage sind (WIP). Autobezeichnungen (Standard): „Gewonnen hat der rote Porsche“. Fahrernamen: „Gewonnen hat Max Mustermann“, ohne Farbe.
- Rennstand- und Ergebnisansage (WIP): Neue Kachel Optionen → Ansagen mit allen Ansagen, die bisher unter Ton standen. Das Rennergebnis wird nach der Zielflagge angesagt (Standard an), der Zwischenstand alle paar Runden ist Standard aus. Mit „Autonamen ansagen“ (Standard an) heißt es „Es führt Max Mustermann“ statt „der rote …“; Autos ohne Namen heißen weiter nach Farbe und Marke. In der Garage gibt es dazu Marke/Modell je Auto.
- Garage: Nach einem Tipp bleibt die Liste auf ihrer Höhe stehen, statt nach oben zu springen.
- Einparken nach deinen Aufnahmen (WIP, Vorgabe): Die automatische Aufstellung (rechts und links je eine Aufnahme) und das Safety Car (Einparken auf dem Randstreifen, Ausparken) fahren jetzt deine von Hand aufgenommenen Folgen. Flüssig aus der Fahrt: auf dem Platz gleitet das Tempo in 0,3 s auf das der Aufnahme, kein Anhalten davor; das Anfahren aus dem Stand aus den Aufnahmen ist weggelassen. Das Safety Car fährt nach dem Ausparken ohne Halt normal weiter. Umschalten auf den bisherigen Lenkimpuls: Renneinstellungen „Einparken in der Aufstellung“ bzw. Safety-Car-Menü „Ein- und Ausparken“.
- Fahrten-Aufnahme: Die Wiedergabe sendet jetzt genau das Aufgenommene. Vorher lief es ein zweites Mal durch Fahrgefühl und Physik, und vom Gas blieb so wenig, dass das Auto nur lenkte. Neu: „Teilen / Kopieren“ öffnet das Teilen-Menü des Handys oder kopiert die Aufnahme in die Zwischenablage (Aufnahmen liegen in der App, nicht als Datei).
- Gewinnerschirm: Auf dem Podest steht über jedem Namen das Autobild (Foto oder Farbe), der Sieger etwas größer.
- Aufstellungsschirm vor dem Rennstart: Beim Umsortieren gleiten die Autos an ihren neuen Platz, das bewegte Auto leuchtet kurz auf. Autobilder und Pfeiltasten sind größer, und ein Tipp auf ein Auto lässt seine Lichter blinken.
- Garage: Links steht je Auto nur noch die Rolle als Etikett; eingestellt wird sie rechts in der ersten Zeile („Rolle“, mit Pfeilen bzw. Steuerkreuz links/rechts).
- Pacejka: Übersteuern ist ab Werk aus – das Auto lenkt nicht mehr von selbst weiter, wenn du nicht lenkst. Wieder anstellen: Optionen → Allgemein → „Übersteuern (Pacejka)“. Ein gespeichertes „an“ wird einmalig auf aus gestellt.
- Funkweg (APK): 1.1.23 schaltete ein Auto schon aufs Plugin, wenn OmegaBle wegen Überlast mehr verwarf als schrieb – das ist aber Last und kein toter Weg. Jetzt nur noch, wenn zwei Prüfungen in Folge gar nichts mehr geschrieben wurde.
- Funklast mit mehreren NPCs (gemeldet: „Mit einem NPC klappt es gut“, mit mehreren halten Autos nicht, fahren chaotisch, das eigene Auto reagiert nicht): Jedes fahrende Auto schrieb alle 45 ms – mit vier NPCs und dir rund 110 Pakete pro Sekunde über einen Bluetooth-Adapter, der dann belegt war, wiederholte und verwarf, auch deine Pakete. Jetzt teilen sich die NPCs zusammen etwa 30 Pakete pro Sekunde (ein NPC allein fährt weiter im vollen Takt, bei vier schreibt jeder etwa alle 0,1 s; ein unveränderter Befehl nur alle 0,2 s). Halt (Gas auf 0) und Einparkmanöver gehen weiter sofort und im vollen Takt. Der Halt nach Rennende wird alle 135 ms statt alle 45 ms nachgeschickt.
- Automatische Aufstellung: Wer seinen Ort schon über Start/Ziel abgesichert hat, fährt wieder direkt auf seinen Platz (wie bis 1.1.20) statt erst noch einmal über Start/Ziel – das sparte bis zu einer ganzen Runde.
- Anhalten: Rennen beenden schickt den Halt jetzt 3 s lang nach (vorher 1,5 s). Abbrechen nach „Automatische Aufstellung“ hält alle fahrenden NPCs und das Safety Car an.
- NPC-Fahrmodus „Realistisch“ (aus 1.1.3) wieder entfernt: Die NPCs beschleunigen wieder wie vorher und verlieren beim Anfahren nicht mehr die Orientierung. Der Lese-Schub (mehr Gas, wenn ein NPC kurz keinen Code liest) wirkt nur noch bis 0,7 s – danach schob er Autos neben der Bahn weiter.
- Funkweg in der App kippt nicht mehr hin und her: Schrieb OmegaBle für ein Auto nicht mehr, ging es nach ~4 s aufs Plugin und 2 s später wieder zurück – in rund zwei Dritteln der Zeit gingen alle Befehle an dieses Auto verloren, auch die Haltebefehle. Jetzt bleibt so ein Auto 30 s auf dem Plugin, dann wird OmegaBle kurz geprüft; klappt es wieder nicht, verdoppelt sich die Sperre (bis 10 min). Im Funkrundlauf steht, wie viele Autos gerade fest auf dem Plugin sind.
- Wetter sprang ständig zwischen Regen und trocken (gemeldet von einem Tester): Die Taste W war eine immer aktive Testtaste fürs Wetter – wer mit WASD fuhr, schaltete bei jedem Gasgeben um. Jetzt fährt die Tastatur auch mit WASD (WIP: W Gas, S Bremse, A/D lenken); die Testtasten (Wetter jetzt Shift+W, Crash C, Tank F/R, Runde Q) gelten nur noch im Entwicklermodus. Challenges (auch die der Studie) schalten außerdem „Wetter ändert sich“ immer aus.
- Automatische Aufstellung: Die Höhe der Startplätze ist wieder wie in 1.1.19 (Reihe 1 auf dem Teil vor Start/Ziel, rechts etwas weiter vorn als links) – das hatte gestimmt. Die neue Querlage (mittig, dann Impuls hin und zurück) bleibt.
- Automatische Aufstellung neu: Die Autos fahren gestaffelt los, jedes erst über Start/Ziel (damit klar ist, wo es ist), dann mittig zu seinem Platz – die ersten beiden auf Start/Ziel, die nächsten auf das Teil davor und so weiter. Auf ihrem Teil lenken sie mit 30 % Tempo voll zur eigenen Seite und wieder zurück (das zweite Auto erst links, dann rechts) und bleiben sofort stehen; die Mitte bleibt frei, damit spätere Autos vorbeikommen. Regler „Einparken: Dauer/Tempo“ wieder da (100 ms, 30 %).
- Safety Car parkt neu: Nach Grün fährt es erst über Start/Ziel (damit es weiß, wo es ist), dann mittig bis auf sein Einpark-Teil (experimentell, Vorgabe Start/Ziel) und parkt dort mit 30 % Tempo: voll rechts, voll links, sofort stehen – auf der Fahrbahn am Rand, ohne Rückwärtsschub. Beim Losfahren 30 % statt 37 %. „Neben der Strecke von Hand“ und seine Regler (Anfahrt, Rand-Vorlauf, Ausfahrt-Zeitpunkt, Gegenschub) sind nicht mehr wählbar. Vorher parkte es nach einem Neustart oft an der falschen Stelle.
- Fahrerauto: Eine liegengebliebene automatische Aufstellung (z. B. Rennen mit R1 statt über den Startschirm gestartet) konnte mitten im Rennen den Autopiloten anwerfen – das Auto fuhr selbst los und lenkte die Einparkimpulse. Jedes Rennen beendet jetzt eine laufende Aufstellung, und während eines Rennens greift sie nie.
- NPCs halten zuverlässig an (Rennen beenden, „NPCs anhalten“, Boxen- und Parkende): Der Halt ging bisher nur einmal hinaus, und war das vorige Paket noch unterwegs, wurde er verworfen – das Auto fuhr mit seinem letzten Befehl weiter. Jetzt wird der Halt 1,5 s lang im Sendetakt nachgeschickt.
- Automatische Aufstellung (und Rückfahrt nach dem Rennen): Die Autos fahren bis zu ihrem Platz genau mittig und parken dann mit derselben Folge wie das Safety Car – Impuls zur eigenen Seite, Gegenschub, Impuls zurück, Gegenschub und Ausrollen, Räder am Ende leicht zur Bahn; für linke Plätze gespiegelt. Die Werte kommen aus Optionen > Safety Car. Das Ziehen an den Rand aus 1.1.17 ist wieder raus; die Regler „Einparken: Dauer/Tempo“ entfallen, die Einlenkstärke bleibt.
- Automatische Aufstellung und Rückfahrt nach dem Rennen: Die Code-Prüfung vor dem Halt aus 1.1.17 ist wieder raus – bei mehreren gleichen Teilen half sie nicht, und nach dem Rennen hielten NPCs mit unpassendem Code gar nicht mehr an. Das Fahren an den Rand bleibt.
- Funk mit mehreren Autos (APK): Der Sendeweg wechselte mit NPCs ständig zwischen OmegaBle und dem Plugin. Während das Plugin ein Auto verbindet oder abonniert, pausiert OmegaBle für alle Autos; das galt bisher jedes Mal als Ausfall. Jetzt zählt Verworfenes während einer Pause nicht, und erst zwei Ausfälle in Folge schalten auf das Plugin um.
- Automatische Aufstellung: Die Autos fahren jetzt wie das Safety Car erst an den Rand (ab der zweiten Hälfte der Kachel vor ihrem Platz, fast so weit wie das Safety Car) und lenken dann den Impuls – vorher kamen sie aus der Mitte und standen nicht weit genug außen. Gehalten wird nur, wenn der gerade gelesene Code zur Zielkachel passt; sonst fährt das Auto weiter und gleicht an Start/Ziel neu ab, statt mitten auf der Strecke zu parken (passiert, wenn Funkpakete verloren gehen).
- Automatische Aufstellung: Lenkimpuls wie beim Safety Car (100 ms bei 40 % Tempo statt 45 ms bei 30 %); weil die Autos aus der Mittelgasse kommen, stehen sie damit weiter innen als das Safety Car. Der rechte Haltepunkt rückt dafür noch etwas vor. Beide Regler stehen auf den neuen Werten (auch wenn vorher anders eingestellt).
- Streckenscan etwas schneller: gerade 23,5 % statt 21 %, Haarnadel 16,5 % statt 14 % der Höchstgeschwindigkeit – in der Haarnadel war das Auto gerade an der Grenze, an der es Balken und Querlage noch liest.
- Safety Car: alle Einstellungen in einem eigenen Menü (neue Kachel „Safety Car“ in den Optionen) statt verteilt auf NPCs und Renneinstellungen. Neue Vorgaben aus dem Test: Anfahrt 3, Rechts-Impuls 90 ms (minimal näher an der Fahrbahn), Gegenschub nach rechts 100 ms, Links-Impuls 100 ms, Einpark-Teil Start/Ziel. Auf der Fahrbahn parkt es etwas weniger weit am Rand. Beim Losfahren macht es jetzt immer einen kurzen Links-Rechts-Impuls (falls es am Rand ein Stück daneben steht). Kommt Gelb, während es schon einparkt, parkt es zu Ende und fährt dann neu los – vorher fuhr es dann schräg von der Bahn.
- Editor: „Bild speichern“ zeigt das Streckenbild jetzt groß an – Screenshot machen oder lange drücken; dazu Teilen (wo das Handy es kann), Speichern und Schließen. Vorher passierte auf dem Handy oft nichts.
- Studie: Die Fahrverhaltens-Challenge geht jetzt auch virtuell – dieselbe Strecke (Homington), dieselben 5 Runden, ohne Bahn und Auto; auf Wunsch zusätzlich zur Fahrt auf der Bahn. Vorher steht, wie lange alles dauert (Fragen etwa 3, Bahn etwa 10, virtuell etwa 5 Minuten). Die virtuelle Fahrt wird getrennt gespeichert (Apps Script neu bereitstellen).
- Rückwärtsgang: halb so schnell wie bisher, und neu der Regler „Tempo rückwärts“ im Fahrgefühl (10–100 %, Vorgabe 50 %). Das Auto fährt wirklich langsamer, auch mit Gas und Bremse zusammen; der Autopilot (gelbe Flagge, Aufstellung) ist ausgenommen.
- Boxen-Minigame: nur noch 5 Tasten; nach jeder ist das Feld 250 ms leer. Jedes Fenster ist ein Fünftel der Standzeit minus diese Pause, so passt alles in die Zeit; ein Treffer spart 8 % (fünf zusammen wie bisher 40 %).
- Virtuell fahren: flüssiger und direkter – gelenkt wird direkt mit dem Stick (voller Einschlag in 0,12 s) statt über die Servodämpfung des echten Autos, die Kamera folgt nach der Zeit statt je Bild, die Seite darunter ruht, auf dem Handy etwas geringere Auflösung. Neu: R3 (rechten Stick drücken) oder C schaltet die Kamera: Verfolger, nahe Verfolger, Motorhaube. Startaufstellung, Ampel und Meldungen sind jetzt auch während der virtuellen Fahrt zu sehen.
- Garage: Die Abstimmungsleiste unten ist weg (die Abstimmung steht rechts beim gesteuerten Auto). Mit dem Controller wie in der Meisterschaft: X auf einem markierten Auto wählt es und springt in die rechte Spalte, hoch/runter bleibt in der Spalte, Kreis geht zurück zum Auto.
- Automatische Aufstellung: Die Autos halten früher (rechts nach knapp einem Drittel der Kachel, links am Kachelanfang), und direkt nach dem Lenkimpuls steht das Tempo auf 0 – das erste Auto rollte bisher über die Ziellinie.
- Virtuell fahren (WIP): Das Auto ist jetzt der Vulture V5.R aus Speed Dreams – echtes 3D-Modell mit Lackierung, Rädern (vorn eingeschlagen, alle drehen) und Schatten. Scheinwerfer mit Lichtkegel, Rück- und Bremslichter leuchten (Licht über den neuen Knopf „Licht“ oder Dreieck). Federung mit den Federn, Dämpfern und Stabilisatoren des Autos: Bremsen nickt die Nase, Gas drückt das Heck, Kurven legen das Auto zur Seite, neben der Bahn rüttelt es. Gefahren wird mit seinen Daten (1180 kg, Schwerpunkt, Radstand, 21° Einschlag, Bremsbalance, Abtrieb). In der Garage wählbar: Auto (V5.R oder einfaches Modell) und „Neigung sichtbar“ (1× bis 8×). Neuer Motorklang: Vulture V5.R, 7,0 l V8.
- Studie: Die Schalter „mindestens 18“ und „einverstanden“ ließen sich nicht antippen (der sichtbare Schalter fehlte) – jetzt geht es weiter.
- Rückwärtsgang mit Gas und Bremse zusammen (experimentell, Optionen > Steuerung, PR #5 von Playdater1974): beide Pedale kurz zugleich drücken legt im Stand den Rückwärtsgang ein, Loslassen rollt aus und schaltet wieder vor. Regler für Pedalweg, Haltezeit, Tempogrenze und Ausrollzeit, mit Live-Anzeige. Gilt auch für Spieler 2 und 3.
- Menü FAHREN: Bei den Kacheln Strecke und Rennoptionen schaltet ein Tipp auf Titel oder Wert um (z. B. „Auf der Bahn“), nur das Bild öffnet das Menü dazu. Mit Gamepad und Tastatur öffnet die Kachel weiter das Menü.
- Studie (WIP, jetzt für alle sichtbar): NARQ-S, Selbsteinschätzung, Reaktionstest und danach die Fahrverhaltens-Challenge – 5 Runden Homington (Grundpackung) mit Sim+, ohne Bestenliste. Danach siehst du deine Werte neben dem Mittel aller und den aktuellen Stand der Hypothesen, ohne Namen. Teilnahme freiwillig, ab 18, Alter und Geschlecht werden abgefragt, die Daten werden anonymisiert öffentlich zugänglich gemacht.
- Automatische Aufstellung: Alle Autos fahren genau mittig zu ihren Plätzen, auch an schon geparkten vorbei. Am eigenen Haltepunkt – rechts weiter vorn in der Kachel, links weiter hinten – lenkt das Auto 45 ms zu seiner Seite und 45 ms zurück, bei 30 % Tempo, und bremst dann sofort voll. Neue Regler für Dauer und Tempo des Lenkimpulses.
- Virtuell fahren (WIP, Garage, ganz unten): ein Auto ohne Bluetooth fährt frei auf der Editor-Strecke (ohne Strecke auf Balkonia), in 3D mit Verfolgerkamera. Fahrmodell wie ein GT3 in Assetto Corsa Competizione: Pacejka-Reifen, Gewichtsverlagerung, Reibkreis mit ABS und Traktionskontrolle – am Limit leichtes Untersteuern, Anbremsen dreht das Auto ein, Vollgas in engen Kurven lässt das Heck kommen, Gegenlenken fängt es. Mit Motorsound aus den Aufnahmen (statt des hohen Ersatztons). Ein Tipp auf „Virtuell fahren“ zeigt rechts die Optionen: Motorsound (dieselbe Liste wie in Optionen > Ton, eigene Wahl) mit Anzeige, ob die Aufnahme spielt, lädt oder fehlt, und „Losfahren“. Nach dem Beenden geht es zurück in die Garage. Pfeiltasten, Tastatur und Gamepad (auch in der App) steuern, Escape oder Options beenden. Rundenzeiten, Rennen und Time Attack laufen wie mit einem echten Auto.
- Meisterschaft: Die obere Zeile mit dem Schließen-Knopf liegt jetzt über der Reiterleiste (vorher musste man erst auf Omega tippen). In der Startaufstellung der Meisterschaft steht P1 jetzt auch im Bild rechts.
- Garage: Im Querformat scrollen die linke Liste und die rechten Einstellungen unabhängig voneinander, wie in der Meisterschaft. Neu je gesteuertem Auto: Selbstlenkung (wie Optionen, aus, hält die Spur, lenkt selbst) – gilt auch für Spieler 2 und 3 und wird gemerkt.
- Startaufstellung: größere Autobilder (Foto aus der Garage oder Farbe) und ein seitlicher Versatz – wer rechts steht, ist nach rechts gerückt, wer links steht, nach links.
- Statistik: Kilometer je Auto und Tag als gestapeltes Balkendiagramm, Autofoto und Farbstreifen in der Rangliste, und (WIP) die Fahrstil-Kennwerte der letzten Sitzung: Vollgas- und Bremsanteil, Bremsungen je Minute, Bremsen in der Kurve, Lenkunruhe, Abflüge und Streuung der Rundenzeiten.
- Neue Optionen: Startampel als Bild und Ton, nur Ton oder nur Bild (Allgemein). Bekannte Autos beim Start automatisch verbinden (nur Android-App, System). DualSense: Trigger-Vibration bei ABS (WIP, nur Chrome/Edge am Rechner über WebHID).
- NPCs: Neuer Fahrmodus (WIP) in Optionen, Seite NPCs: Standard wie bisher, oder Realistisch – Beschleunigen und Bremsen wie bei Sim+, gefahren wie mit Triggern (deutlich zu langsam heißt Vollgas, deutlich zu schnell heißt bremsen, je mehr, desto stärker).
- Sound: Der Regler heißt jetzt „Knaller & Schalten“ (bis 150 %) und zeigt beim Schieben seinen Wert. Er regelt auch das Schaltgeräusch, das einen nachgebauten Schaltschlag (metallischer Schlag und Stoß durch das Chassis) und beim Runterschalten ein Zwischengas bekommt. Auch beim Runterschalten knallt es jetzt, und Spieler 2/3 und die NPCs haben eigene Auspuffknaller (leiser, auf ihrer Seite).
- Lenkung aus der Gewichtsverlagerung (Pro, Sim+, Pacejka, GT3, F1, Realismus GT3): Leichtes Bremsen belastet die Vorderachse und gibt etwas mehr Lenkung (Trail-Braking), eine Vollbremsung braucht den Reibkreis auf und nimmt deutlich Lenkung, und beim Lösen kommt die Lenkung stetig in rund 0,2 s zurück. Gas nimmt stufenlos etwas Lenkung (Vollgas etwa 90 %). Ein kurzer Tiefpass nimmt den Ruck aus dem Lenkwinkel. Der Antriebslayout-Einfluss auf die Lenkung ist wieder so klein wie vor 1.0.43.
- Pacejka: Lenken unter Gas ist jetzt stufenlos statt an/aus – bei Vollgas bleiben etwa 90 % Lenkung, bei Halbgas etwa 97 %, und etwas vom Gas gehen gibt etwas Seitengrip zurück. Der Regler „Lenkkraft unter Gas“ wirkt jetzt auch hier. Das Übersteuern unter Leistung setzt weich ab 40 % Gas ein, und ein Rutsch hält im Verhältnis zum Pedal statt an der 20-%-Schwelle.
- Omega rechnet die Lenkung wieder wie 1.0.42 (ohne Trail-Bonus, alte Servo-Formel, alter Gas-Wert). Arcade: kürzerer Bremsweg, stärkere Beschleunigung, mehr Lenkeinschlag, und Gas und Bremse wirken nicht mehr auf die Lenkung. RC: Der linke Trigger bremst bis zum (geschätzten) Stillstand, erst ein neuer Druck fährt rückwärts, und die Lenkung ist nie begrenzt; Spieler 2 im RC-Modus fuhr beim Bremsen sofort rückwärts.
- Rennende: Die gelbe Flagge endet mit dem Rennen (das nächste startete sonst gedrosselt). 20 s nach dem Sieger stehen alle NPCs – auch umgekippte oder neben der Bahn; wer auf dem Rückweg zum Startplatz vorankommt, fährt zu Ende. „NPCs anhalten“ hält jetzt wirklich an. Die Zielfanfare ist deutlich lauter, und wenn die Zeit abgelaufen ist, läutet eine Glocke die letzte Runde ein.
- NPCs blieben mitten im Rennen stehen: Sie fuhren in Haarnadel, Regen oder unter Gelb unter der Lesegrenze, lasen 0x00 und wurden als „Bahn verlassen“ geparkt. Jetzt fahren sie nach allen Abzügen mindestens 37 % (nie über ihrem eingestellten Tempo) und bekommen bei 0x00 kurz einen Lese-Schub. Ein Auto, das gar nichts mehr meldet (Dach), wird nach 3 s geparkt.
- Safety Car neben der Strecke: weich statt ruppig – die Lenkimpulse laufen als Rampen (gleicher Kurswinkel), nach dem Gegenschub bleibt der Motor im Leerlauf, der Gegenschub nach dem Rechts-Impuls ist ab Werk aus, und beim Losfahren parkt es mit einer festen Folge aus. Das Einpark-Teil ist wählbar (neue Auswahl). Unter Gelb fährt es nie unter 37 %. Dazu PR #4 von Playdater1974: Rückweg mit Lenkung nie beim Safety Car, mit Wartezeit, weich, Tempo und Pause.
- Behoben: Die Startampel war im Vollbild-Cockpit verdeckt. Die Kachel „Daten sichern“ öffnete eine leere Seite. In der APK stockte seit 1.0.73 das Auto mit gekoppeltem Pad (die Verbindungspriorität wird wieder nachgelegt), nach einem Neuverbinden lief jedes Paket doppelt, und während des Neuverbindens wurde weiter gesendet. Editor-Bild: Fahrbahn auf der Kartenfläche, schärfer, lange Codes passen, und in einer alten APK kein falsches „gespeichert“.
- Studie: Persönlichkeit jetzt mit der Kurzform NARQ-S (6 Aussagen, Bewunderung und Rivalität) im Originalwortlaut, mit Instruktion.
1.0
- Safety Car, „Neben der Strecke von Hand“: Neuer Regler „Rand-Vorlauf“: Die Randfahrt darf früher beginnen als das Abbremsen der Anfahrt, damit das Auto vor dem Rechts-Impuls ruhiger am Rand liegt (Vorgabe 0 = wie bisher). Die Ausfahrt klappt auch, wenn der Kachelzähler die Ausfahrtkachel überspringt (dann bis zu zwei Kacheln später), und eine übersprungene Fensterkachel kostet keine Zusatzrunde mehr.
- Safety Car (experimentell): Neue Auswahl „Wo parkt das Safety Car?“ (Optionen, Seite NPCs). „Fahrbahn“ ist das bisherige Verhalten, bei „Fahrbahn, wartet bis Gelb“ fährt es beim Start nicht mit. Bei „Neben der Strecke von Hand“ wartet das Safety Car neben der Strecke, zum Beispiel in einer Boxengasse (von Hand etwa 40 Grad schräg zur Bahn hin aufgestellt), und fährt bei Gelb los. Es merkt sich als Startpunkt die Kachel, auf der es zuerst gelesen wird (einmal je Rennen), kehrt nach Grün dorthin zurück und verlässt die Bahn: Rechts-Impuls, Gegenschub, Links-Impuls, Gegenschub, Ausrollen, Halt mit leicht nach links eingeschlagenen Rädern. Neun Regler (Impulse, Gegenschübe, Räder am Ende, Ausfahrt-Zeitpunkt in Viertelkacheln, Anfahrt, Einfahrtstempo, Heimtempo) stellen den Ablauf auf Auto und Untergrund ein. Die Anfahrt beginnt nur voll und mit abgeglichenem Kachelzähler, damit jede Einfahrt gleich abläuft. Das Menü „Autonome Gegner“ heißt jetzt „NPCs“.
- Gelbe Flagge: Ein Auto (NPC oder Spielerauto im Autopiloten), das höchstens 1,5 Kacheln hinter dem fahrenden Safety Car liegt, bekommt nie ein höheres Tempo-Ziel als das Safety Car selbst (90 bis 100 %). Vorher war das Ziel der Folgeautos im freien Lauf rund 18 % höher, und nur ein Abstandsfaktor aus geschätzten Positionen bremste sie. Nach mehreren Runden Safety Car konnte das Spielerauto es deshalb auffahren und anschieben.
- Fahrgefühl Pro (und damit Sim+ und Pacejka): Bremsen nimmt Lenkung jetzt 95 % statt 115 % – mit dem schnelleren Bremsaufbau lässt die Lenkung beim Anbremsen früh nach, fällt bei einer Vollbremsung aber nicht mehr auf den Notboden. Omega bleibt bei 115 %.
- Trail-Braking: Der Bremssteal hängt bei den Realismus-Fahrgefühlen (Pro, Sim+, Pacejka, GT3, F1, Realismus GT3) jetzt an der simulierten Gewichtsverlagerung. Beim Anbremsen taucht die Nase, die belastete Vorderachse trägt mehr Bremse, bevor sie die Lenkung nimmt – so kannst du in die Kurve hineinbremsen, und beim Lösen der Bremse kommt die Lenkung sofort zurück. Omega bleibt beim flachen Faktor.
- Fahrphysik: Die Bremskraft baut jetzt eigenständig und deutlich schneller auf (0,12 s statt 0,45 s), damit beim Anbremsen die Lenkung schon am Kurveneingang nachlässt und nicht erst nach einer ganzen Kurve – wie bei einem echten Auto. Gas baut weiter weich auf. Gilt für alle Fahrgefühle außer Omega (bleibt bei 0,45 s). Neuer Regler Bremsaufbau in den Physik-Optionen unter „Bremsen nimmt Lenkung“.
- Optionen: Neue Kachel „Daten sichern“ – alle Daten in einer Datei sichern und wieder laden (Einstellungen, Strecken, Zeiten, Autos und Tastenbelegung). Die bisherige Sicherung liegt jetzt in der eigenen Unterseite.
- Ton: Neuer Regler „Knallstärke“ für die Auspuffknaller. Außerdem knallt der Auspuff jetzt auch beim Ausrollen bei Drehzahl (Engine Braking) und nicht nur beim Gaswegnehmen.
- App-Reaktionszeit (neue APK nötig): Die zwei Direktwege der APK (Steuerbefehle am Android-Hauptthread vorbei, Gamepad direkt) kamen in der Seite nicht an – jeder Befehl lief weiter über den langsamen Weg. Fehlt der Direktweg beim Start, meldet die App ihn jetzt neu an und lädt einmal neu. Die Messzeile Funk-Rundlauf sagt, wenn ein Direktweg trotzdem fehlt, und nennt den Grund.
- Meisterschaft und Safety Car sind nicht mehr als experimentell bzw. WIP gekennzeichnet.
- Startaufstellung: Die Einlenkstärke steht ab Werk auf 0 (auch ein gemerkter Wert wurde zurückgesetzt). Die Autos fahren genau mittig bis zu ihrem Platz und halten dort sofort mit voller Bremse; mit Einlenken erst ein Takt zur Seite, einer zurück, dann sofort halten.
- Ende der Safety-Car-Phase: Dein Auto bleibt beim Autopiloten, bis der Ton-Countdown heruntergelaufen ist. Danach springt das Tempo nicht mehr hoch – das Auto übernimmt sein aktuelles Tempo und rollt von dort aus, solange du kein Gas gibst (vorher kam schlagartig der Tempofaktor des Fahrgefühls dazu).
- Safety Car (WIP): In seiner ersten Runde fährt es höchstens im Formationstempo hinterher und hält Abstand zum Vordermann; zum Überholen setzt es nie an. Beim fliegenden Start zählt die Einführungsrunde nicht mit – es parkt erst nach der ersten Rennrunde.
- Streckenscan: Ist kein Spieler 1 verbunden, fährt jetzt das erste verbundene Auto den Scan (mittig, im Scan-Tempo, neben der Bahn ohne Gas). Vorher wurde es zwar ausgewählt, blieb aber stehen.
- Safety Car (WIP): Es startet vom letzten Startplatz (auch in der automatischen Aufstellung), fährt die erste Runde hinter dem Feld mit und parkt danach rechts an Start/Ziel – so wissen alle Autos, wo es steht. Unter Gelb fährt es weiter langsamer als das Feld, bleibt aber nie mehr stehen (mindestens 30 %); vorher drückten Abstandsregel und Kurvendrosselung es unter die Lesegrenze.
- Automatische Aufstellung: Die Autos fahren mittig zu ihrem Platz und lenken erst dort einen kurzen Takt zur Seite und einen zurück, dann halten sie. Vorher zogen sie sich noch eine halbe Sekunde gerade und die erste Reihe rutschte dabei über die Startlinie. Mittig fliegen sie in Kurven auch nicht mehr nach außen.
- Automatische Aufstellung schneller: Ein NPC, der seinen Ort an Start/Ziel sicher kennt und noch dort steht, wo er war, fährt jetzt direkt zu seinem Platz statt erst eine Runde über Start/Ziel. Die Staffel beim Losfahren ist 0,5 s statt 1 s und gilt nur noch zwischen Autos, die auf der Bahn nah beieinander stehen.
- Einparken: Der Regler stellt jetzt die Einlenkstärke ein (0–100 %, Vorgabe voll) statt der Dauer; der Takt bleibt bei rund 10 ms. Gilt für die Startaufstellung vor und nach dem Rennen und das Safety Car.
- Neues Fahrgefühl Omega (nach Pacejka): die Pro-Abstimmung, wie sie in v0.9 war, Wert für Wert – und eingefroren. Wird Pro künftig angepasst, bleibt Omega gleich; ein Selbsttest wacht darüber. Die Anzeige zeigt bei gleichen Werten das zuletzt gewählte Fahrgefühl.
- Rundenzeiten: Fährst du aus der Startaufstellung vor der Linie los, zählt die erste Überfahrt nicht mehr als Runde (vorher gab es Runden von 1 bis 2 s) – Runde 1 beginnt an der Linie. Erkannt an den gefahrenen Kacheln (weniger als eine halbe Strecke = Anlauf); wer hinter der Linie startet, bekommt seine erste volle Runde wie bisher.
- Safety Car (WIP): Autos, die zu ihrem Startplatz fahren, werden nicht mehr links am geparkten Safety Car vorbeigeschickt – die erste Startreihe steht direkt vor Start/Ziel, und ihr rechtes Auto wurde sonst auf die falsche Seite gezwungen.
- Nach Rennende (WIP): Die NPCs fahren nach dem Zieleinlauf im Aufstelltempo eine Runde zurück in die Startaufstellung – in der Reihenfolge des Zieleinlaufs, die vorderen Plätze bleiben für die Fahrerautos frei. Dort stehen sie auf ihrer Seite und blinken. Ohne eingescannte Strecke (Ausdruck-Modus) rollen sie wie bisher aus.
- Neue Option Einparken: Lenkimpuls (WIP, Renneinstellungen): wie viele Millisekunden ein Auto beim Einparken zuletzt mit vollem Einschlag zu seiner Seite lenkt und danach gleich lange zurück – zum Kalibrieren, dass die Autos am Rand stehen, ohne von der Bahn zu fahren. Gilt für die Startaufstellung vor und nach dem Rennen und das Safety Car; 0 = kein Impuls, Vorgabe 10 ms.
- Gelbe Flagge: Alle Autos fahren 15 % schneller als bisher (knapp über der Lesegrenze statt genau darauf), und dicht hinter dem Vordermann wird nur noch auf 70 % statt 55 % gedrosselt – damit niemand mehr verhungert und stehen bleibt.
- Safety Car (WIP): Beim Abstellen lenkt es nur noch kurz nach rechts (ein Befehl, rund 10 ms) und gleich lang zurück nach links, dann hält es mit geraden Rädern. Solange es an Start/Ziel steht oder abstellt, fahren alle anderen Autos auf der Kachel davor, auf Start/Ziel und der Folgeschiene mit Querlage links daran vorbei.
- NPCs nebeneinander (WIP): Liegen zwei Autos höchstens eine Kachel auseinander, fahren sie als Paar links und rechts statt beide auf der Ideallinie – die Seite ersetzt jetzt die Linie, statt nur ein kleiner Zuschlag zu sein. Wer gerade weiter links liegt, bleibt links; in Kurven darf der Äußere etwas nach innen. Ein drittes Auto und alle in der Haarnadel fahren hintereinander mit etwa einer Kachel Abstand. Dein Auto zählt als Partner mit.
- Automatische Aufstellung: Die Autos fahren jetzt nacheinander in der Reihenfolge der Startaufstellung los, je 1 s versetzt; bis dahin stehen sie.
- Safety Car (WIP): Es fährt unter Gelb etwas langsamer als das Feld (85 % des Gelb-Tempos) und hält selbst Abstand zum Vordermann, statt aufzufahren. Wer vor ihm liegt, fährt davon, kommt von hinten wieder heran und reiht sich dahinter ein.
- Rennende: Die Motorgeräusche der NPCs verstummen sofort, auch während der Auslaufrunde.
- Automatische Aufstellung: Ein NPC, der seit dem letzten Start dazukam (später verbunden oder Rolle gewechselt, etwa vom Safety Car), bekam keinen Startplatz und blieb stehen – behoben. Ob ein Auto schon auf seinem Platz steht, wird nur noch aus einer frischen Ortung geschlossen.
- Safety Car (WIP): Zum Abstellen rollt es zuletzt mit nach rechts eingeschlagenen Rädern an den Rand und hält so – weiter rechts, als die Querlage allein erlaubt.
- Challenger und NPC zusammengelegt (WIP): Die Garagenrolle „Challenger“ gibt es nicht mehr. In Time Attack auf der Bahn fahren jetzt alle NPCs als Challenger (gegen deine Bestzeit, gegen den Rekord oder Gummiband, in den Renneinstellungen und am Startschirm wählbar); im Gummiband hält sich jeder NPC eine Kachel versetzt an dir. In allen anderen Modi fahren NPCs wie bisher.
- Telemetrie (WIP): Gespeichert werden jetzt alle gewerteten Runden der letzten Fahrt auf einer Strecke, nicht nur die letzte und die beste. A und B lassen sich aus diesen Runden und der besten aller Fahrten wählen; ist die letzte Runde zugleich die beste, zeigt A die davor.
- Gelbe Flagge: Unter Gelb halten NPCs und dein Auto jetzt Abstand zum Vordermann (ab 1,5 Kacheln langsamer, dicht dahinter etwa halbes Gelb-Tempo) – kein Anschieben und kein Überholen hinter dem Safety Car mehr. Dein Auto bekommt unter Autopilot außerdem keinen Akku-Ausgleich mehr, der es bei vollem Akku langsamer als die NPCs machte.
- Safety Car (WIP): Es zieht schon zwei Kacheln vor Start/Ziel ganz nach rechts und hält an der Linie, statt erst dahinter mitten auf der Bahn. In der Startaufstellung ist es kein Startplatz mehr, sondern steht separat unter der Liste.
- Startaufstellung: Die Autos fahren nach dem Erreichen der Seite noch eine halbe Sekunde langsam weiter, damit sie gerade stehen und nicht schräg. Kurven und Haarnadeln wieder etwas schneller (90 % bzw. 80 % des Formationstempos), damit kein Auto den Kontakt zur Bahn verliert.
- Streckenscan: Das Spielerauto fuhr geradeaus statt über die Bahn, sobald schon eine Strecke im Editor lag (die Spur-Bytes des Scans wurden im selben Takt wieder gelöscht) – behoben. Mit dem Fahrgefühl RC griff außerdem der Autopilot gar nicht: kein Scan, keine Aufstellung, kein Gelb-Tempo. Jetzt rechnet er auch dort, solange er fährt.
- Gelbe Flagge: Dein Auto fährt jetzt genauso schnell wie die NPCs. Vorher lag der Tempofaktor des Fahrgefühls (1,1 bis 1,8) auch auf dem Autopiloten.
- Safety Car (WIP): Nach der gelben Phase fährt es die letzten 2 s ganz rechts am Rand und hält dort statt mitten auf der Bahn; geparkt ist das Licht aus. Nach einem Rempler startet es nach 1,5 s selbst neu, statt stehen zu bleiben. Boxenstopps fahren ebenfalls 2 s statt 1 s am Rand, bevor sie bremsen.
- Startaufstellung: In Kurven und Haarnadeln deutlich langsamer (dieselben Anteile wie beim Streckenscan, mit Vorausblick), damit niemand mehr aus der Haarnadel fliegt. Beim Anhalten bleibt die Seite des Startplatzes stehen, statt zur Mitte zu rollen. Der Startschirm zeigt je Auto Reihe und Seite.
- Challenger Gummiband (WIP): reagierte nach der ersten Runde nicht mehr auf dich, weil die Ortung deines Autos keine Runden zählt – behoben. Es zählt jetzt nur der Abstand auf der Runde, auch wenn bei dir einmal eine Runde nicht gezählt wird.
- Telemetrie (WIP): Runden wurden verworfen, sobald ein einziges Teil nicht gelesen wurde – auf der echten Bahn fast immer. Jetzt werden die Lesungen über ihre Art der Strecke zugeordnet und fehlende Teile geschätzt (mindestens drei Viertel müssen passen). Die Telemetrie-Seite zeigt, wie viele Teile geschätzt sind.
- Time Attack (WIP): Am Ende kommt eine Zusammenfassung mit Runden, bester Runde und Medaille, Vergleich mit deiner bisherigen Bestzeit, Schnitt und Streuung, was zur nächsten Medaille fehlt, und was die Telemetrie aufgezeichnet hat (mit Knopf dorthin). Die Medaillen sind etwas leichter: Gold auf SGR4LGHG ab 7,3 s statt 7,2 s, die übrigen Strecken entsprechend.
- Meisterschaft: Ein von Hand beendetes Event zählt mit 0 Punkten, und es geht beim nächsten weiter (vorher musste es neu gefahren werden). Die Startreihe des nächsten Events wird einmal festgelegt und im Zwischenstand mit Reihe und Seite gezeigt – auch bei Zufall stimmt sie jetzt mit dem Start überein. Der Startschirm nennt Event und Aufstellungsregel.
- Fahrgefühl RC und Safety Car sind als WIP gekennzeichnet.
- Neue Rennende-Fanfare: ein Arcade-Jingle („Stage clear“) statt des Rundenzähler-Tons. Drei aufsteigende Dreiklangsläufe und ein Akkordtreffer, rund 2 Sekunden statt knapp 5. Gespielt bei Zielflagge, Derby-Sieg und NPC-Knockout-Sieg, wie bisher.
- Titelschirm: Der Schriftzug steht jetzt ruhig – Cyan über, Rot unter jedem Buchstaben, ohne springende Streifen. Der Glitch läuft nur noch im Omega dahinter.
- Titelschirm: neuer Glitch-Effekt – die Farbkanäle liegen über und unter den Buchstaben statt daneben, und einzelne senkrechte Streifen springen kurz nach oben oder unten. Das Omega im Hintergrund ist deutlicher, rund statt langgezogen, passt auf den Bildschirm und glitcht genauso.
- Neues Fahrgefühl RC (auch für Spielerautos, in FAHREN, Garage, Cockpit und Meisterschaft): wie Arcade, nur viel extremer – der Stick geht direkt ans Auto wie bei einer Fernsteuerung, Gas weg läuft aus, zweimal Bremse im Stand fährt rückwärts. Der Steuerungsmodus hängt jetzt am Fahrgefühl; die Einstellung Steuerungsmodus und die Pacejka-Regler sind ausgeblendet. NPC-Motor wählbar: Vorgabe unter Optionen › Ton, je NPC in der Garage. Renntypen in der Reihenfolge Training, Time Attack, Qualifying, Runden, Endurance, NPC Knockout, Demolition Derby, Time Attack mit eigenem Kachelbild. Meisterschaft: Event früher/später nur mit ▲/▼, Löschen als rote Mülltonne, das Schließen-Kreuz steht links und ist größer, die Zurück-Taste schließt auch. WLAN-Mehrspieler: Android-App zuerst, beide Kacheln größer. Die dunklen Flächen zwischen den Kacheln sind durchsichtiger. Lange Motornamen (Holden, Murciélago) brechen um. Renneinstellungen › Ergebnisse zeigt vor dem ersten Rennen einen Hinweis.
- Challenger (experimentell): neue Garagenrolle, nur beim Fahren auf der Bahn. Ein echtes Auto fährt gegen dich, auch in Time Attack. Drei Modi (Renneinstellungen oder Time-Attack-Startschirm): Gegen meine Bestzeit – er fährt deine beste aufgezeichnete Runde dieser Strecke Teil für Teil nach; Gegen den Rekord – die Runde der Online-Bestzeit der Challenge bzw. Community-Strecke; Gummiband – er bleibt ungefähr auf deiner Höhe, vorn langsamer, hinten schneller. Kurven und Haarnadeln fährt er wie die NPCs gedrosselt, unter Gelb gelten die Gelb-Regeln. Ein weißer Punkt auf der Karte zeigt, wo die nachgefahrene Runde gerade ist; ohne passende Runde fährt er Gummiband.
- Telemetrie online (WIP, braucht ein neu bereitgestelltes Apps Script): Jede hochgeladene Challenge- oder Community-Zeit nimmt jetzt automatisch die Spur ihrer schnellsten Runde mit (Zwischenzeiten je Teil, Tempo, Gas, Bremse). Der Server behält je Bestenliste und Gerät nur die schnellste. In der Challenge-Bestenliste hat jede Zeile mit Spur einen Knopf „Telemetrie“: Er lädt die Runde und zeigt sie auf der Telemetrie-Seite als Vergleich B neben deinen eigenen Runden.
- Neue Seite Telemetrie (WIP, Optionen › Telemetrie, auch aus der Statistik und vom Time-Attack-Startschirm): Zwei deiner Runden einer Strecke im Vergleich, A gegen B (beste oder letzte). Die Strecke ist Teil für Teil grün oder rot gefärbt, je nachdem, wo A Zeit gewinnt oder verliert; darunter Balken mit dem Unterschied je Teil und die Tempokurve beider Runden über den Rundenweg, dazu Gas und Bremse von A.
- Telemetrie (WIP): Jede Rennrunde wird jetzt als Zwischenzeiten je Streckenteil aufgezeichnet, dazu etwa zehnmal pro Sekunde Tempo, Gas, Bremse, Gang und Lenkung. Gemerkt werden je Strecke (gespiegelt zählt als dieselbe) deine beste und deine letzte gültige Runde; dafür müssen alle Teile der Runde gelesen worden sein. In Time Attack zeigt das Cockpit unter „Aktuelle Runde“ an jedem Teil den Abstand zu deiner Bestrunde: grün schneller, rot langsamer.
- Ghosts heißen jetzt NPCs – in Garage, Optionen, Doku und Meldungen (auch auf Englisch und Spanisch). Das Safety Car gibt es nur noch beim Fahren auf der Bahn: im Ausdruck-Modus ist die Rolle nicht wählbar, und beim Wechsel dorthin wird sie auf „Aus“ gestellt.
- Safety Car: Es blieb am Rand stehen, weil es nie einen Sendetakt bekam (den bekamen nur Ghosts) – behoben. Dein Auto drosselt unter Gelb jetzt wie die Ghosts schon vor Kurven und Haarnadeln (vor einer Haarnadel zwei Teile vorher) statt erst darauf und fliegt nicht mehr mit etwa 45 % aus der Haarnadel. Haarnadel-Kerbs enden an der Teilgrenze: kein weißer Rand mehr auf dem nächsten Teil; die Formen am Ausgang sind dafür um rund 3 % gestaucht (das Foto-Teil hat dort noch ein kurzes gerades Stück, unser Teil nicht). Speed-Dreams-Motoren (WIP): Bei V10, den beiden V12 und dem Toro R-GT war die Aufnahmedrehzahl 2- bis 4-fach zu niedrig geschätzt, sie klangen deshalb oben bis zu anderthalb Oktaven zu hoch – neu gerechnet. Neu (WIP): echte Crash-Aufnahmen (CC0) statt der gerechneten und ein Auspuffknall (Free Art License) für die Schubknaller der Motorton-Zusätze; Quellen in audio/CREDITS.md. Die Speed-Dreams-Motoren heißen jetzt nach den Autos, denen sie entsprechen, mit deren Leerlauf und Begrenzer: Nissan GT-R GT500 2013 (bis 9000/min), Audi R8 LMS (8500), Holden Commodore VF V8 Supercar (7500), Shelby GT350 1965 (6500), Ferrari 575 GTC (8000), Ferrari 599 GTB Fiorano (8400), Lamborghini Murciélago R-GT (8000).
- Haarnadeln sehen jetzt aus wie das Originalteil: Pfeile und Keile im Bogen sind direkt aus dem Foto abgemessen und unverzerrt gesetzt – außen werden die Pfeile über den Bogen länger und drehen sich zur Bahn, innen füllen Keile den Scheitel. Die weiße Fläche folgt dem Foto und läuft an beiden Enden weich in den normalen Streifen der Geraden aus. Gilt in Editor, Vorschauen und Streckenbild.
- Der Modus „Bestzeit“ heißt jetzt Time Attack. Der Startschirm zeigt dort die Medaillenzeiten der Strecke (Gold, Silber, Bronze), die bisher gewonnenen Medaillen und die Bestzeit je Auto. Ideallinie: die SIMULATOR-Suche probiert jetzt auch Sehnen – gerade Verbindungen über bis zu knapp drei Teile –, damit z. B. eine Links-Rechts-Folge als gerade Diagonale gefahren wird, wenn das schneller ist; auf der Vorgabestrecke 10,7 statt 11,5 s je Runde in der Physik. Die Doku (Info › Streckengeometrie und Ideallinie) erklärt die SIMULATOR-Linie.
- Neuer Motor aus Speed Dreams: Toro R-GT (V12), in der Gruppe „Speed Dreams, Aufnahmen“. Die Aufnahme stammt aus den Speed-Dreams-Spieldaten und steht unter der Free Art License; Quellen in audio/CREDITS.md.
- Hotfix: 1.0.16 startete nicht, wenn im Editor eine Strecke gemerkt war (die SIMULATOR-Linie wurde beim Laden zu früh angefragt) – behoben. Die Ideallinie wird jetzt gleich nach jeder Änderung an der Strecke im Hintergrund berechnet; solange das läuft, zeigt ein drehendes Streckenteil am Rand „Ideallinie wird berechnet …“. Die neuen Haarnadel-Kerbs sind vorerst wieder aus.
- Haarnadeln sehen jetzt aus wie das Originalteil: im Bogen außen lange, breite Pfeile schräg zur Bahn, innen am Scheitel kurze Keile; auf den geraden Schenkeln bleiben die kleinen Pfeile. Gilt für Editor, Vorschaubilder und das Streckenbild.
- Streckenbild: neuer Knopf „Bild“ in der Editorleiste speichert ein PNG mit Strecke (Ideallinie und Raum wie gerade eingeschaltet), Name, Streckencode, Länge, Platzbedarf, Teilezahl und Link; in der App unter Bilder/OmegaSim (neue APK nötig). SIMULATOR ist jetzt die Standard-Ideallinie. Meisterschaft: Vorgabe sind zwei Events (Qualifying, Runden), „Meisterschaft starten“ ist als WIP gekennzeichnet, und eine pausierte Meisterschaft lässt sich fortsetzen – die FAHREN-Kachel zeigt „Fortsetzen: Event X/Y“ und öffnet direkt den Zwischenstand mit „Weiter“, im Planer steht oben „Meisterschaft fortsetzen“. Titelschirm: „Starten“ ist farbig hinterlegt. Die Kachel mit dem Garage-Knopf zeigt das Garagenfoto.
- Neues Linienmodell SIMULATOR (WIP): fährt bis zu 200 Linien – die acht vorhandenen und glatte Abwandlungen davon – je drei Runden mit derselben Fahrphysik wie dein Auto (Getriebe, Reifen, Zug im Reibkreis) und behält die schnellste. Die Mindestgeschwindigkeit der Ghosts (35 %) und eine Grenze für schnelle Querwechsel gelten als Schranken. Die Suche dauert wenige Sekunden im Hintergrund, pausiert im Rennen und wird je Strecke gespeichert; bis dahin gilt die Luuke-Linie. Ein getestetes Beispiel, keine bewiesene Bestlinie.
- Motorklänge aus Speed Dreams (WIP): sechs echte Aufnahmen (CC0) als neue Gruppe im Motormenü – Japanischer GT-V8, Deutscher V10, Australischer Muscle-V8, Alter amerikanischer V8 und zwei italienische V12. Neben der Bahn rollt dein Auto jetzt hörbar über Gras und Schotter, lauter mit dem Tempo (Lautstärke mit dem Reifenregler). Quellen in audio/CREDITS.md.
- Pflichtstopps zählen jetzt für alle gesteuerten Autos: Spieler 2 und 3 bekommen dieselbe Zeitstrafe je verpasstem Stopp, und im WLAN-Mehrspieler melden die Telefone Gesamtzeit und Strafe an den Host (neue APK bzw. neuer Host nötig), damit die Meisterschaft sie wertet. Safety Car: neue Option „erst aufschließen“ (Vorgabe an): unter Gelb fahren alle mit etwa 45 % heran und ab zwei Kacheln Abstand mit 35 % weiter, in Kurven und Haarnadeln gedrosselt. Die Studie ist vorerst nur im Entwicklermodus sichtbar.
- Studie (experimentell, Optionen): freiwillige Teilnahme ab 18 mit Einwilligung, Alter und Geschlecht; 18 Aussagen des NARQ (Bewunderung und Rivalität), Selbsteinschätzung des Fahrkönnens und ein Reaktionstest mit dem Controller (10 Durchgänge, Frühstarts zählen). Gesendet wird erst am Ende, in ein eigenes, nicht öffentlich abrufbares Blatt; verknüpft über die Gerätekennung. Der Reaktionstest lässt sich danach ohne Senden üben.
- Meisterschaft (experimentell, 8. Modus): Die Kachel unten links in FAHREN öffnet den Planer. Jede Zeile ist ein Event mit Strecke (aktuell im Editor, gespeicherte Strecke oder freie Bahn), Format (Training, Qualifying, Runden, Endurance), Umfang, Wetter, stehendem oder fliegendem Start, Startaufstellung und Pflichtstopps; darunter Fahrgefühl, Aufstellung des ersten Rennens, Punkteschema, Punkt für die schnellste Runde und Teilnehmer. Nach jedem Event kommt der Zwischenstand mit der nächsten Startaufstellung, pausieren und später fortsetzen geht. Im WLAN-Mehrspieler leitet das planende Telefon: jedes Event startet für alle, die anderen sehen Event und Stand auf dem Bereitschaftsschirm. Safety Car: unter Gelb übernimmt der Autopilot sofort, alle fahren etwa 35 %, niemand überholt. Pflichtstopps bis 3.
- Safety Car (experimentell): In der Garage gibt es neben „Ghost“ die Rolle „Safety Car“ (eines je Rennen). Es parkt am Rand, fährt bei gelber Flagge los und blinkt alle 750 ms kurz auf. Die anderen Autos fahren unter Gelb normal weiter, bis sie bis auf zwei Kacheln aufgeschlossen haben, dann 35 % (dein Auto übernimmt dann der Autopilot). Ghosts überholen das Safety Car nie. Nach Grün fährt es bis Start/Ziel und hält dort rechts am Rand. Es zählt keine Runden und steht nicht im Ergebnis.
0.9
- Neuer Modus „Bestzeit“ (experimentell): Bestzeit auf deiner eigenen Strecke mit Medaillen nach der Gold-Formel. Geht nur auf der Bahn mit eingescannter Strecke (sonst ein Hinweis wie bei NPC Knockout), es fahren nur gesteuerte Autos, Ghosts bleiben stehen. Zeiten und Medaillen werden je Strecke gespeichert (gespiegelt zählt als dieselbe): Wer die Strecke wieder aufbaut, hat seine alten Zeiten. Die FAHREN-Kachel zeigt die Bestzeit, die Statistik zählt die Medaillen mit. Gold-Formel neu kalibriert: Balkonia 16 s und Omega Testing Track 2 7,2 s, alle anderen Strecken dazwischen und darüber.
- Fahrgefühl und Menüs: Neue Abstimmung Sim+ (wie Pro mit direkterer Lenkung, mehr Beschleunigung und viel stärkerer Bremse). Im FAHREN-Menü und am Cockpit-Knopf stehen nur noch Arcade, Sim+, Pro und Pacejka; GT3, F1 und Realismus GT3 bleiben in den Optionen. Arcade lenkt stärker und erreicht jetzt den vollen Einschlag, GT3 und F1 behalten ihn auch mit kalten Reifen (der Lenkregler reicht bis 400 %). Drift-Modus entfernt; „Aus“ heißt jetzt RC: Gas läuft in 2 s aus, die Bremse greift sofort, ein zweiter Bremsdruck im Stand fährt rückwärts. Gelbe Flagge: alle Autos etwa 35 %, auch im Ausdruck-Modus. Reifenmischungen unterscheiden sich stärker (weich 120 % Griff und schneller Verschleiß, hart 85 % und langlebig). Bremsquietschen leiser. Garage: Rollenpfeile immer an derselben Stelle, Akkustand je Auto, Fahrgefühl je gesteuertem Auto wählbar, neues Garagenbild. Startaufstellung: Abbrechen, Automatisch aufstellen und Start mit dem Steuerkreuz wählbar, X bestätigt. Titelschirm mit „Starten“. Unten links im FAHREN-Menü die Kachel Meisterschaft (kommt bald). „Freies Training“ heißt „Training“ und hat ein Zeitlimit (0 = ohne Ende). „Controller tauschen“ entfernt.
- App-Latenz (neue APK nötig, ältere fahren wie bisher): Befehle an die Autos gehen in der App jetzt direkt an den Bluetooth-Schreibthread, ohne den Umweg über den Android-Hauptthread, über den auch alle Meldungen der Autos laufen. Das Gamepad wird bei einem Controller direkt aus der App gelesen (Sticks und Trigger), Android bündelt die Stick-Ereignisse nicht mehr im Bildtakt, und der Ton läuft mit kleinem Puffer. Die Verbindungspriorität wird nicht mehr alle 10 s neu ausgehandelt (kleine Hänger). „Funk-Rundlauf“ zeigt jetzt die echten Werte: Brückenzeit, Takt des Steuerherzschlags, Gamepad direkt, Tonverzögerung; der alte Wert ist in der App als „nur JS“ gekennzeichnet.
- Fehler behoben (Prüfung der Änderungen seit 0.9.56): Ghosts, die die Bahn verlassen, halten wieder an (Gerade 0,9 s, Kurve 1,2 s, Haarnadel 1,8 s, sofort wenn sie auf dem Teppich weiterzählen). Nah nebeneinander bekommen zwei Ghosts immer gegensätzliche Seiten und behalten ihre Reihenfolge von links nach rechts, statt sich anzuschieben. Ghost-Motorsound spielt auch ohne Sample des eigenen Autos, und die Garage zeigt, ob er wirklich an ist. Automatisch aufstellen hält erst nach dem Startteil am richtigen Platz und geht erst kurz davor ganz an den Rand. Ein Auto, das Ghost war, lenkt als gesteuertes Auto nicht mehr selbst. Das Boxen-Minispiel kommt wieder, wenn kein zweiter Spieler fährt. Fliegender Start: Einführungsrunde mit Kurvendrosselung, Ende beim zweiten Überfahren des ersten Autos. Akku: Wert geglättet, leer schon bei höherem Rohwert, Warnblinken nur noch mit den Lichtern (vorher kurz ohne Gas und Lenkung). Statistik: gespeicherte Strecken werden gezählt, jedes Auto erscheint mit eigenen Kilometern, Spieler 2/3 zählen mit, Kilometer nur mit verbundenem Auto, „Beste Runde“ entfernt. 2/3-Spieler-Schirm: letzte und beste Runde groß, alle Knöpfe sichtbar.
- Community-Bestzeiten: Die 3er-Serie (bester Durchschnitt aus drei aufeinanderfolgenden Runden) gilt jetzt auch für Community-Strecken. Dafür speichert die App die Rundenzeiten zu jedem Eintrag und lädt sie mit hoch; das Apps Script muss neu bereitgestellt werden, damit es die Rundenzeiten auch für die Online-Zeiten übernimmt.
- Ghosts: Die Überholrate ist jetzt eine echte Rate (Vorgabe 0,1 Überholmanöver je Runde je 4 Autos, bei 6 Autos und 10 Runden also 1 bis 2). Vorher änderte der Regler nur die Reichweite, und jede Annäherung wurde zum Angriff. Die Startreihen fahren gestaffelt ab Grün los, 250 ms je Zweierreihe. Vorher zählte die Staffel erst ab deiner ersten Bewegung und wirkte praktisch nicht.
- Gelbe Flagge auf der Bahn: Dein Auto fährt jetzt im Tempo der Ghosts weiter und lenkt selbst. Die Tempogrenze lag unter dem Tempo, ab dem das Auto die Bahn liest, deshalb fiel es aus der Selbstführung und fuhr geradeaus. In Kurven und Haarnadeln drosselt es wie die Ghosts, und die Selbstführung greift auch direkt nach dem Hinstellen, bevor die Kachel verortet ist.
- NPC Knockout: Ghosts, die die Bahn verlassen, sind jetzt wirklich raus. Ein Ghost, der steht und blinkt, zählt als „Bahn verlassen“, ebenso einer, der 5 s keine Kachel mehr schafft (vorher konnte nie ein Ghost ausscheiden). Sind alle Ghosts raus, kommt die Siegesfanfare und das Ergebnis. Ein verlorenes Leben spielt einen kurzen traurigen Ton, das letzte den Game-over-Ton, danach das Rennende mit Ergebnis.
- Rundenzählung: Wer von hinter der Startlinie losfährt (z. B. Platz 4), bekam beim ersten Überqueren eine Runde von etwa 2 s, die danach jede echte Bestzeit verdeckte. Jetzt ist das erste Überqueren nur die Startlinie, Runde 1 läuft vom Start bis zum Ende der ersten vollen Runde, und unmöglich kurze Runden zählen nie als Bestzeit. Rennstart setzt alle Autos zurück: Tank voll, Schaden null (auch Spieler 1 und 3), Reifen kalt oder mit Reifenwärmer warm. Der Ton für eine ungültige Runde ist lauter und für Handylautsprecher hörbar (zwei kurze, fallende Summtöne).
- Community-Bestzeiten: Jede Strecke hat jetzt eine eigene Seite wie die Wochenstrecken, geöffnet mit einem Tipp auf Bild oder Namen in der Liste: große Karte (Tipp für Vollbild), Spiegeln, Länge, Platzbedarf und Abstimmung, Teileprüfung, Medaillen, Start und die Bestenliste mit allen Zeiten. Zurück (oder Kreis) führt in die Liste. Die Liste bleibt nicht mehr bei „Lade …“ stehen. Auf luuke42.github.io/omegasim führt der APK-Link immer zum Release, damit jeder Download gezählt wird.
- Töne nach echten Aufnahmen nachgestimmt (gerechnet, keine Aufnahme in der App): Reifenquietschen höher (um 800 Hz statt 620) und mit zitternder Tonhöhe wie haftendes und rutschendes Gummi; Schalten mit rauschendem Metall-Klacken statt Ton; Abblasventil länger (0,6 s) und mit langsamem Flattern; Auspuffknaller tiefer und voller; Laderpfeifen endet bei 5,8 kHz statt 7. Neu unter den Motorton-Zusätzen (experimentell): Abrollgeräusch, Reifen und Fahrtwind werden mit dem Tempo lauter und heller.
- Raum hat ein eigenes Menü (Strecke → Raum, und „Raum“ in der FAHREN-Streckenkachel auf der Bahn): Größe, Raumgestalter, Tutorial und gespeicherte Räume mit Namen zum Laden und Löschen. Im Editor blendet der Schalter „Raum“ den Raum aus; ausgeblendet zählt er auch für Zufallsstrecken nicht. Ziehen im Editor: die Strecke folgt jetzt Finger, Maus und rechtem Stick, der Raum bleibt liegen. Alle Streckenbilder (Fahren-Kachel, Übersicht, Startaufstellung, Listen) zeigen die Originalteile mit Pfeilen. Neue Ladeanimation: ein Streckenteil dreht sich, abwechselnd Gerade und Rechtskurve. Community-Bestzeiten (vorher Community-Strecken): beim Einreichen wählt man die Abstimmung (Arcade, Pro, GT3, F1, Realismus GT3), die Liste zeigt sie, und gefahren wird damit. Einzelrennen nach einem Mehrspieler-Rennen fragt nicht mehr „für alle?“, wenn niemand sonst da ist.
- Behoben: 0.9.43 startete auf Geräten mit eingetragenem Raum nicht („Cannot access 'RAUM_ZELLE_CM' before initialization“) – die Editor-Vorschau zeichnete beim Laden schon die Möbel, bevor deren Konstanten angelegt waren; die neue Start-Diagnose hat den Fehler angezeigt. Schalten klingt jetzt mechanisch: Schaltwalze und Klauenring rasten metallisch ein, darunter der Ruck im Antriebsstrang (statt des dumpfen „düb“). Lichthupe: Vorder- und Rücklicht gehen gemeinsam aus und an, das Bremslicht leuchtet nicht mehr mit.
- Rennende: Die Rennuhr startete erst bei 75 % der Höchstgeschwindigkeit (die Schwelle „3 km/h“ wurde mit dem Modelltempo verglichen) – wer das nie erreichte, fuhr Runden, die nicht zählten, und das Rennen endete nie. Jetzt startet sie bei 3 km/h auf dem Tacho oder spätestens an der ersten Ziellinie; die Frühstart-Erkennung hatte denselben Fehler. Raumgestalter wie der Editor: „Raumgestalter starten“ öffnet das Vollbild, oben die Werkzeugleiste mit „Schließen“, die Fläche in einer eigenen Zeile darunter, der Menükopf liegt nicht mehr über den Knöpfen. Rundenzeiten-Diagramm: weißer Saum unter jeder Linie, damit auch ein schwarzes Auto sichtbar ist.
- Lenkung GT3, F1 und Realismus GT3: voller Einschlag ist wieder erreichbar. Seit dem neuen Lenkweg begrenzte das „Lenkansprechen“ dieser Voreinstellungen den größten Einschlag (Realismus GT3 gemessen 19 von 45° im Schritttempo, mit kalten Reifen 11°); jetzt 3,0 wie Pro, und Realismus GT3 gleicht kalte Reifen mit Lenkkalibrierung 1,6 aus. Pro und Arcade unverändert. Zufallsstrecke: Ladeanimation (Gerade, Kurve, Haarnadel) im Editor, die Suche läuft dafür in kleinen Stücken. Mehrspieler: dieselbe Animation im Bereitschaftsschirm, solange auf die anderen gewartet wird.
- Rundenrennen enden jetzt mit der Zielrunde: Wer die eingestellte Rundenzahl fährt, ist sofort im Ziel (Ende-Ton und Ergebnis); vorher endete ein 5-Runden-Rennen erst bei der Überfahrt nach Runde 5, im Mehrspieler also scheinbar nie. Die Rennübersicht zeigt dich im Mehrspieler nicht mehr doppelt (Name und Auto). Derby: Auto 1 nimmt wieder Schaden (seitlich −20 %, vorn −10 %), vorher ging der Treffer ins Leere und nur der Controller rüttelte. Mehrspieler auf schwachen Handys: im Rennen fragt das Handy den Host nur noch alle 3 s ab, meldet Positionen für Zuschauer alle 0,5 s und zeichnet die Ranglisten-Tabelle erst nach dem Rennen, damit der Steuertakt Luft hat.
- Raumdesigner (experimentell) unter Strecke → Meine Teile: den Raum in 10-cm-Feldern als Boden oder Möbel malen, mit Pinsel (10/30/60 cm) oder Rechteck, Vorlagen Rechteck, L, U und Oval, Rückgängig und „Strecke einpassen“. Geht mit Finger, Maus, Tastatur und Gamepad (Stick/Steuerkreuz bewegt, ✕ malt, □ Möbel/Boden, △ Pinsel/Rechteck, L1/R1 Größe, ○ fertig). Zufallsstrecken passen jetzt wirklich hinein: geprüft wird mit der vollen Bahnbreite plus 2 cm Abstand statt nur mit der Mittellinie, um Möbel herum, und der Raum wird im Editor gleich richtig um die Strecke gelegt.
- Streckenteile wie die Originalschienen: weißer Randstreifen mit gefüllten Pfeilen in gleichem Abstand auf beiden Seiten (links blau, rechts rot), Steckzapfen an den Teilenden, matt schwarze Fahrbahn. Tempo nachgemessen (btsnoop): Vollgas sind real 5,45 km/h, im Maßstab 272 km/h; der Tacho rechnet jetzt damit, und bei Gasfaktor 100 % (Realismus GT3) stimmt er genau; Pro und Arcade behalten ihren Faktor und fahren sich wie vorher. Rundenzählung auf der Schiene: keine Doppelrunde mehr, wenn ein Auto zwischen Barcode und Ziellinie hält, keine Mini-Runde beim Start vor dem Streifen, keine Phantomrunde bei Ghosts und Spieler 2/3 beim Losfahren; mit einer zweiten Start/Ziel-Geraden zählt Runde 1 richtig.
- Rundenzeit an der Ziellinie: Auf der Schiene misst und sagt Spieler 1 die Runde jetzt an der Ziellinie an, die das Auto selbst meldet (Byte 15, etwa 35 cm nach dem Barcode, aus den btsnoop-Mitschnitten), nicht mehr am Barcode; der Barcode bleibt Rückfall für Autos ohne diese Meldung. Tastenbelegung: Eine neue Zuweisung auf eine schon belegte Taste tauscht jetzt die beiden Aktionen, statt beim nächsten Start zurückzufallen, und eine alte Aufräumregel setzt eigene Tasten (z. B. Rennstart auf Kreuz) nicht mehr bei jedem Laden zurück. Optionen → Allgemein: zwei Regler für die Größe der Haupttabs und der Unter-Tabs (60–180 %, 100 % wie bisher).
- Crash-Richtung jetzt gemessen statt gelernt: Beim Beschleunigen wandert der Gyro-Punkt im Cockpit nach vorn, also heißt Byte 1 fällt „von hinten geschoben“, Byte 1 steigt „vorne eingeschlagen“, überwiegendes Byte 3 „von der Seite“ (45° Toleranz). „Nur der Rammer bremst“ (früher „Kein Bremsen bei Auffahrunfall“): Gebremst wird nur, wer vorne einschlägt; wer von hinten oder von der Seite getroffen wird, fährt weiter. Rammer-Strafe: Rammer ist, wer vorne eingeschlagen ist, während der andere von hinten oder der Seite getroffen wurde (frontal zählt nicht); das gilt auch für Ghosts. Im Derby kostet vorn einschlagen 10 %, getroffen werden 20 %.
- Bestenliste: Kann eine Zeit nicht hochgeladen werden, kommt ein Hinweis mit Strecke und Grund (z. B. „keine Verbindung zum Server“ oder die Ablehnung durch die Bestenliste), nie mitten im Rennen und nie über einem anderen Dialog. Auf der Challenge-Seite steht, wie viele Zeiten noch warten, mit „Jetzt senden“. Hoch- und Herunterladen der Bestenliste laufen nur, wenn gerade kein Rennen läuft, damit das Steuern nicht verzögert wird.
- Bestenliste: Die Listen liegen im Zwischenspeicher und erscheinen sofort, beim App-Start und alle 10 Minuten wird im Hintergrund nachgeladen; eine Strecke ohne Zeiten zeigt das sofort, statt lange zu laden. Hochgeladene Zeiten bleiben in einer Warteschlange, bis das Sheet sie bestätigt, und eine Ablehnung wird mit Grund gemeldet. Wöchentliche Challenges: Die Resttage stehen oben neben „Woche X/20“, unter jeder Strecke stehen Spieler und Ergebnisse. Spiegeln ist jetzt ein Knopf mit Symbol unter der Karte. FAHREN, Strecke: Druckvorlagen nur bei FREI, Editor nur bei AUF DER BAHN. Wischen wechselt den Reiter nicht mehr, wenn die Geste am Bildschirmrand beginnt (Systemleiste).
- WLAN-Mehrspieler: genauerer gemeinsamer Start. Die Zeit wird beim Eintreffen der Antwort gemessen, nicht erst nach dem Einlesen, und im Vorlauf gleicht jedes Telefon die Host-Uhr acht Mal nach und stellt die Ampel nach. Rennende für alle: Hat ein Mitspieler die Rundenzahl erreicht, ist bei allen die laufende Runde die letzte. Neu: „Rennen für alle beenden“ (WLAN-Reiter und Rückfrage beim Verlassen des Rennens). An den Host gehen jetzt die Rennrunden inklusive Frühstart-Strafe.
- FAHREN: Die Autos-Kachel zeigt ab zwei verbundenen Autos alle (ohne Foto als Farbfläche), die Motorsound-Kachel ist weg (Motor jetzt nur in der Garage), Fahrgefühl und Start sind größer. Garage: ein neues Foto erscheint sofort links in der Auto-Kachel. Podium: größere Namen, bei zwei Autos nur Platz 1 und 2, allein ein Solo-Podest mit Gesamtzeit, bester Runde und Vergleich mit deiner Bestzeit auf der Strecke. Cockpit: die Rundenliste zeigt höchstens fünf Runden und schiebt nichts mehr aus dem Bild. Ohne Bahn zeigt die Rennübersicht dein Streckenfoto bzw. den Platzhalter statt des Layouts. Freies Training: kein „Automatisch aufstellen“. Knockout heißt jetzt „NPC Knockout“, braucht mindestens einen Ghost und schaltet „Auf der Bahn“ ein.
- Derby: Ein Crash gegen die Wand beendet das Spiel nicht mehr. Es endet erst, wenn jemand das Kill-Ziel erreicht oder nur noch ein Teilnehmer fährt; allein ohne Gegner nur von Hand. 2 Spieler: Auto 2 und 3 haben beim Boxenstopp dieselben Töne wie Auto 1 (Tanken, Reparatur, Schrauber), auf ihrer Stereoseite. Latenz: Spieler 2 und 3 senden über denselben Weg wie Auto 1 (der neueste Befehl ersetzt den wartenden), und der Schirm „Beide“ wird direkt nach dem Senden gezeichnet.
- Behoben: Nach einem abgebrochenen Derby blieb das Cockpit im nächsten normalen Rennen im Derby-Modus. Behoben: Gespiegelte Strecken mit beiden Haarnadeltypen (z. B. Balkonia) gingen nicht mehr zu, weil das gerade Stück der Haarnadel rückwärts gefahren am Ausgang liegt. Jetzt schließen alle 83 Challenge-Strecken auch gespiegelt. Neu in den Renneinstellungen: „Gelbe Flagge deaktivieren“ (ab Werk aus). Die Motorwahl von Auto 2 und 3 wird jetzt gespeichert und gesichert.
- Latenz: Im Cockpit liest der 45-ms-Sendetakt das Gamepad jetzt direkt vor der Physik statt den Wert vom letzten Bildschirmbild zu nehmen (spart im Schnitt etwa einen halben Frame, auf schwachen Handys mehr). Die Live-Anzeigen des Pads werden nur noch bei Änderung geschrieben.
- Neu: Optionen → Statistiken. Zu sehen sind gefahrene Kilometer (simuliert und auf der Bahn), Sitzungen, Fahrzeit, beste Runde, Rennen, Siege (Rennen mit mehreren Autos), Boxenstopps, Crashs, Medaillen, gefahrene Strecken, Sitzungen je Modus und ein Kilometer-Ranking je Auto, alles aus den Daten, die die App ohnehin speichert. Behoben: Die gespeicherten Kilometer waren seit Ende August 73,75-fach zu groß und werden beim ersten Start einmalig korrigiert; die Sicherungsübersicht zeigt wieder die Zahl der Sitzungen.
- Automatische Aufstellung jetzt für alle Autos: Fahrerautos rollen per Autopilot im Formationstempo auf ihren Startplatz und werden dort gehalten, bis du startest (deine Bremse hat Vorrang). Der Motorsound wird nur noch in der Garage je gesteuertem Auto gewählt, die Zeile in den Optionen ist weg. Die Knöpfe ganz unten in der Garage (Foto, Blinken, Trennen) sind größer.
- Cockpit: Die Rundenzahl links oben ist so groß wie die Zeiten rechts, die Knöpfe darunter sind kleiner, die Schaltlichter sind rechteckig und größer. Rennübersicht (Schirm 3): größere Schrift, die Strecke nimmt rechts bis zur halben Breite ein. Die Ideallinie erscheint nur noch im Ghost-Menü und im Editor, wenn du sie anklickst. „Bringe die Autos in Position“: Strecke rechts auf halber Breite, viel größere Schrift, größere Knöpfe und neu „Automatisch aufstellen“ (experimentell): die Ghosts rollen langsam auf ihre Startplätze und halten dort.
- Frühstart: Neuer Schalter in den Renneinstellungen (ab Werk an) – wer vor Grün losfährt, bekommt 5 s auf seine erste Runde, auch Spieler 2 und 3 und im WLAN-Mehrspieler. Aus: wie bisher 2 s Ausbremsen. Die Ampel läuft weiterhin vor jedem Start außer im freien Training. Menü im Rennen: Optionen, Zurück-Pfeil oder Esc fragen jetzt „Ein Wechsel ins Menü beendet das Rennen.“ (Weiterfahren / Rennen beenden), solange die Frage offen ist, läuft das Rennen weiter.
- Crash: Schaden und Bremsen sind jetzt getrennte Schalter (Optionen → Tank & Schaden), dazu „Kein Bremsen bei Auffahrunfall“ (experimentell): wird von hinten aufgefahren, bremst nur der Auffahrende. Neu in den Renneinstellungen (experimentell): Strafe für Rammer (aus/nach 1–5× Rammen, 3–20 s). Die Strafe steht rot auf dem Boxenknopf, wird beim nächsten Stopp zusätzlich im Stand abgesessen („STRAFE“), sonst steht im Ergebnis [RAMMER]. Arcade: Tempo gedrosselt, Bremse auf Maximum, Crashs bremsen ohne Schaden. Derby: Tank und Reifenverschleiß aus, eigene Health groß, ab 50 % Schaden flackert das Licht, ab 75 % ist es aus und das Auto ruckelt.
- Challenges: Die Woche (X/20) steht nur noch einmal neben „Wöchentliche Challenges“, jede Strecke zeigt zusätzlich, wie viele Spieler sie gefahren sind. Das Histogramm der Bestenliste zählt wie die Tabelle nur eine Zeit je Gerät. Gold gibt es auf Balkonia ab 16 s je Runde, alle anderen Strecken sind daran kalibriert (Imolina jetzt ca. 5,0 s). Tabs: CHALLENGES steht jetzt vor WLAN MEHRSPIELER.
- 3-Spieler-Modus: Der Cockpit-Schirm „Beide“ zeigt mit Spieler 3 drei Spalten (Tempo, Gang, Tank, Zustand, Reifen, Reifen-/Tankwahl, eigener Motorsound-Knopf). Die Optionsseite heißt jetzt „Mehrspieler“, und Presets und Profile der Tastenbelegung speichern Spieler 3 mit.
- 3-Spieler-Modus (experimentell): In der Garage gibt es jetzt die Rolle „Spieler 3“. Das dritte Gamepad fährt Auto 3, mit eigener Tastenbelegung (Steuerung → Spieler 3), eigenem Tank, Schaden, Boxenstopp, Motorsound und Rundengong.
- Vorbereitung 3-Spieler-Modus: Tank, Boxenstopp, Schaden, Crash, Abseits, Autopilot, Frühstart, Knockout und Derby laufen jetzt über Spielerplätze statt fester Variablen für Spieler 2. Für dich ändert sich noch nichts, Spieler 2 fährt wie bisher.
- Streckeneditor: gezoomt lässt sich die Karte jetzt mit Finger oder Maus verschieben, im Vollbild zoomt das Mausrad; der Zoom bleibt gespeichert.
- Demolition Derby repariert: Rammen trifft einmal je Annäherung statt in jedem Takt (ein naher Ghost war nach 0,2 s raus), ein Auto bei 0 % bleibt wirklich stehen, Abschüsse werden dem richtigen Spieler gemeldet, Auto 2 wird nicht mehr nach dem Kreisel von Auto 1 gewertet. Knockout/Derby-Meldungen übersetzt, neue Selbsttests; geprüft, dass jede Gold-Zeit erreichbar ist.
- Zwei-Spieler-Modus repariert: Beim Abschalten hält Auto 2 jetzt an (fuhr vorher mit dem letzten Gas weiter), ein getrenntes Auto 2 wird freigegeben, das Licht von Auto 2 gilt für Auto 2, kein Drift-Gegenlenken nach den Daten von Auto 1, alte Tastenbelegungen von Spieler 2 werden aufgeräumt.
- Speichersystem (experimentell): Oben in jedem Menü (Allgemein, Fahrgefühl, Ton, Autonome Gegner, Controller, Renneinstellungen) eine Preset-Zeile ◀ Name ▶ mit Speichern, Speichern unter und Löschen; Werkspresets mit ★, „geändert“ zeigt Abweichungen. Profile unter Optionen > System: jedes Profil merkt sich alle Einstellungen, die Tastenbelegung und das Preset je Menü. Bisherige eigene Abstimmungen stehen im Fahrgefühl in der Liste.
- Zufallsstrecke: Die beiden Haarnadeln liegen jetzt meist getrennt statt immer direkt hintereinander, und mit Grundpackung + Haarnadel-Set entstehen deutlich öfter gültige Strecken. Meine Strecken: der Speichern-Knopf ist weg (gespeichert wird im Editor, der den Namen der geladenen Strecke vorschlägt).
- Garage neu (Variante A): links die Autos untereinander mit ihrer Rolle (◀ ▶, nur freie Rollen) und darunter die Aktionen, rechts die Einstellungen des gewählten Autos (Name, Farbe, Ghost-Tempo, Motorklang, Foto, Blinken, Trennen). Mit dem Steuerkreuz: hoch/runter wählt, links/rechts ändert, X springt nach rechts.
- Streckeneditor: Das Raum-Rechteck ist auch mit nur einer Grenze sichtbar und zeigt die Maße. Die Strecke lässt sich darin mit dem Finger oder der Maus verschieben, im Vollbild auch mit dem rechten Stick; rechten Stick drücken zentriert.
- Community-Strecken werden jetzt über das Online-Sheet mit allen geteilt (Strecken und Zeiten), jede Zeile zeigt ein Vorschaubild. Eigene, bisher nur lokale Strecken werden beim nächsten Abgleich eingereicht. Dauerrennen-Zeiten kommen jetzt auch in die Online-Bestenliste. Das Apps Script muss dafür neu bereitgestellt werden.
- Auswahlfelder mit wenigen Werten (Physik-Modus, Getriebe, Boxenstopp, Sprache …) sind jetzt „◀ Wert ▶“ zum Durchschalten statt Aufklapplisten.
- Alles bleibt gespeichert: Rolle und Ghost-Tempo je Auto, die Strecke im Editor (mit Drehung und Zoom) und die Tastenbelegung je Controller. In der App zusätzlich eine Sicherungsdatei in Dokumente/OmegaSim, die auch eine Neuinstallation übersteht; nach einer Neuinstallation bietet die App an, sie einzulesen (neue APK nötig). Garage: Spieler 1/2 lassen sich nur noch wählen, wenn kein anderes Auto sie hat. Presets enthalten Sprache, Entwickler- und Zwei-Spieler-Modus nicht mehr.
- Ghosts (experimentell): Regler „Tempo-Streuung“ (Vorgabe 0 %), Start je Startreihe versetzt (an, 200 ms je Reihe), und zu zweit in Kurven fährt das vordere Auto innen, das hintere in der Mitte (an).
- Streckenscan langsamer (auch in der Haarnadel), das Auto hält am Ende an; der Live-Scan erkennt das Rundenende selbst. Reiter wechseln per Wischen nach links/rechts. Kein Neuladen mehr durch Herunterziehen. Challenges zeigen „X Ergebnisse“. Cockpit: Rundenzeiten doppelt so groß, Sound- und Start-Knopf rechts entfernt.
- Obere Reiterleiste deutlich höher (PC 40 px, Handy 46 px), gut zum Tippen. Meine Strecken: Ton beim Laden, rundes Löschen-Kreuz mit Rückfrage. Ghosts halten wieder den gemessenen Abstand (1,2 Kacheln, mehr über „Feld-Abstand“). Knockout und Derby als experimentell gekennzeichnet, Texte übersetzt.
- Mehrspieler: „Rennen für alle“ repariert. Der Bereitschaftsschirm erscheint jetzt auf jedem Reiter, inaktive oder abgemeldete Telefone blockieren den Start nicht mehr, Abbrechen löscht nicht mehr die Wertung aller, und das angekündigte Wetter gilt auch beim Start. App: schnellerer, stabilerer direkter Steuerweg zum Auto (neue APK nötig).
- Zweite Kopie der App: Die Download-Links zeigen auf deren eigenes Release (mit Download-Zähler), sonst auf die APK im Repo.
0.8
- Challenges: Wochenstrecken. Vier Kategorien (A kurz, B lang, C Haarnadel, D 30°) mit je 20 Strecken, jeden Mittwoch um 0:00 Uhr (deutsche Zeit) kommt je Kategorie die nächste, nach 20 Wochen von vorn. Bestenlisten bleiben je Strecke erhalten. Die Kacheln zeigen, wann die nächste Strecke kommt.
- Rundenzeit-Ansage jetzt auch in der App: Dort fehlt die Sprachausgabe des Browsers, deshalb liest die App die Zeit aus Aufnahmen vor (Zahlen 0–60, erzeugt mit Piper TTS, Stimmen „Thorsten“ und „LJ Speech“).
- Mehrspieler (experimentell): „Rennen für alle starten“ zeigt auf allen Telefonen einen Bereitschaftsschirm. Jeder tippt „Bereit“; erst wenn alle anderen bereit sind, kann der Initiator starten. Dann übernehmen alle Renntyp, Länge und einen gemeinsamen Wetterplan, und die Ampel kommt überall gleichzeitig (Uhrabgleich mit dem Host). „Rennen starten“ fragt im Mehrspieler: für alle oder nur ich. Für den Telefon-Host braucht es die neue APK.
- Funk: ein Schloss je Auto mit Wachhund; ein hängender Befehl blockiert kein Auto mehr (Ursache für „Auto reagiert nach Mehrspieler-Beitritt nicht“). In der App: kurzes Timeout, erst senden, dann das Cockpit gedrosselt malen, weniger Arbeit je Meldung; Messanzeige „Funk-Rundlauf“ unter System. Steuerkreuz: Renntyp in den Renneinstellungen und im Cockpit direkt mit links/rechts, am Rand der Renntyp-Kachel schaltet es, Zurück und Rennen starten erreichbar, Info-Screen schließt mit ○. Ohne Zwei-Spieler-Modus fährt das zuletzt benutzte Pad; „Controller tauschen“ legt ein einzelnes Pad nicht mehr lahm. Controller ohne Standardbelegung: Hinweis und Anzeige der gedrückten Knöpfe.
- Gas-, Brems- und Lenkkennlinie ab Werk 2,45. Neu: „Voller Einschlag bei“ (Vorgabe 90 % Stickweg, experimentell), darunter lenkt der Stick schon, am Anfang schwächer als linear; Lenkkalibrierung verschiebt den Punkt nicht mehr. Wer noch auf den alten Vorgaben stand, bekommt die neuen einmalig; eigene Werte bleiben.
- Challenges: Einstellungen unter der Streckenkarte, Bestenliste rechts; Modus und Preset schaltet ✕ um. Frühstart bei allen Starts mit Ampel: kein Abbruch mehr, sondern kurz ausgebremst, sobald das Auto nach Grün fährt. Silverbrook-Rennen mit einem Pflichtstopp (Boxen-Minigame, egal wo).
- Titel-Glitch je Buchstabe zufällig blau oder rot, oben und unten getrennt. „Abseits“ erscheint jetzt groß in der Mitte des Cockpits. Autos-Kachel zeigt wieder den Namen statt „[object HTMLSpanElement]“. Boxen-Minigame: Tasten stehen 100 ms länger.
- Challenges gegen Schummeln: jede Runde wird gegen die Strecke geprüft (mindestens 90 % der Teile erkannt), eine plausible Mindestrundenzeit gilt in App und Bestenliste, und die Einstellungen sind während des Laufs gesperrt; wer sie doch ändert, bricht ab.
- Titelseite im Browser: Link zum Download der neuesten Android-App. Die APK-Release hängt dafür zusätzlich eine Datei mit festem Namen an; die Android-Schicht ist unverändert, neu installieren ist nicht nötig.
- Cockpit immer im Vollbild, der Menü-Knopf dort zeigt jetzt „Zurück“. Reiter oben: Fahren, Mehrspieler, Challenges, Optionen. Die Info-Kacheln stehen direkt in den Optionen unter einer eigenen Überschrift. Challenges: Strecken heißen Monzetta, Suzuna, Monte Carlito und Silverbrook, der Name für die Bestenliste lässt sich auf jeder Strecken-Seite festlegen, das Perzentil zählt je Spieler. Neue Kachel- und Hintergrundbilder im Fahren-Menü.
- Challenges: die Bestenliste kommt aus einem stündlichen Schnappschuss im Repo, dazu sofort die eigenen Zeiten; das Hochladen wiederholt bei Aussetzern.
- Challenges: gemeinsame Online-Bestenliste ab Werk eingetragen, für alle Kopien der App.
- Challenges (experimentell): vier feste Strecken, je beste Runde oder Rennen über feste Runden, im Pro-Preset. Das Auto muss stehen, dann Ampel, dann los; ohne Ghosts, danach sind die eigenen Einstellungen wieder da. Bestenliste mit Histogramm und Perzentil, lokal und online über ein eigenes Google Sheet.
- Logos aus den KI-Bildern entfernt, die Credits nennen die KI-Bilder (Gemini Flash). Reiter am Handy doppelt so hoch. Die Zurück-Taste des Handys führt zum Startbildschirm (in der App ab APK 0.8.29). Editor: Asphalt im Hintergrund, Teile nach Typ getrennt, Schalter für Ideallinie und Tastenkürzel.
- Strecke aufgeräumt: Editor, Scan, Laden, Meine Teile und Ausdruck haben je eine eigene Seite. Der Editor startet im Vollbild, mit Tutorial und Tastenübersicht: Teile anwählen, mittendrin einfügen und entfernen, rückgängig, in 45°-Schritten drehen, Länge in Metern und im Maßstab 1:50, Pfeile an den Kanten in Fahrtrichtung. Meine Teile (experimentell) zählt deinen Bestand und zeigt im Editor, was fehlt oder übrig ist. Challenges: Plan und Mock-up mit vier Strecken, je beste Runde und Rennen.
- Kopfzeile nochmals flacher, Omega oben links führt zum Startbildschirm, Info unter Optionen, neuer Reiter Challenges (WIP). Tutorial-Texte kürzer; Steuerung läuft auf dem Cockpit, zeigt gedrückte Tasten und fährt dabei nicht. Neue Stimmungsbilder (KI) für Titel, Rennoptionen, Start, Strecke, Optionen, Info und Challenges.
- Garage als Karten mit eigenem Foto je Auto (sonst seine Farbe), Rolle mit ◀ ▶, Einstellen klappt Farbe, Tempo und Charakter auf; ein Knopf startet und hält die Ghosts. Titel: ✕ startet, △ Tutorial, ○ neue Führung „Steuerung“ bis zur Controller-Belegung. Minigame: Fenster 0,1 s länger, falsche Taste kostet Zeit. Freies Training zeigt ∞. Mehrspieler-App wie Vorschlag A. App: Status- und Navigationsleiste werden zuverlässiger ausgeblendet.
- Tutorial auf dem Titelbildschirm (experimentell): führt in neun Schritten über die echten Schirme, mit Controller, Tastatur oder Finger.
- Boxen-Minigame (experimentell, ab Werk an, unter Optionen > Allgemein > Tank & Schaden): alles wird gewechselt, losfahren erst am Ende, acht Tasten □/○ in der Mitte kürzen den Stopp um 40 Prozent.
- Pacejka: Übersteuern spürbar – Vollgas in der Kurve bringt das Heck, der Vortrieb geht zurück, der Rutsch hält ohne Stick, bis man gegenlenkt oder vom Pedal geht, stärkere Vibration; mit dem Schalter „Übersteuern“ abschaltbar (experimentell).
- Menü: Kopf halb so hoch, flachere Knöpfe und Unterreiter, Kachelfotos als Hintergrund gut sichtbar, kleinere Titel, Erklärungen nur noch im ⓘ. Letzte Auswahl je Seite bleibt, nach dem Rennen „Nochmal“, in der Garage blinkt das Auto beim Darüberfahren. Weniger automatische Sprünge: Rennende im Menü nur als Einblendung, grüne Ampel und Vollbild-Ende behalten den Cockpit-Schirm, Options führt zurück auf die Seite, von der man kam.
- App: nach Schließen und Öffnen lässt sich das Auto wieder verbinden (es hing an der alten Verbindung fest); ab der nächsten APK trennt die App beim Schließen sauber.
- Kreuz tippen = Boxenstopp (halten bleibt gelbe Flagge), Options springt direkt ins Fahren-Menü und wieder zurück ins Cockpit. Motorsound statt Gegnerhärte im Fahren-Menü. Streckenfoto für den Ausdruck-Modus, neue eigene Fotos im Menü.
- Kachel Autos mit eigenen Knöpfen Verbinden und Garage.
- Menü aufgeräumt: ohne Tastenleiste und Hinweiszeile, kleinere abgedunkelte Bilder, gut lesbare Werte auf den Kacheln, Carrera-Hybrid-Blau statt Rot, oben nur das Omega, im Titel OMEGA blau und SIM rot. Im Cockpit keine Kopfzeile mehr.
- Android-App im Vollbild ohne Status- und Navigationsleiste. Reiter oben neben dem Logo statt Hauptmenü, Mehrspieler mit den Wegen PC und Android-App, „Trotzdem starten“ ohne Auto zum Ausprobieren (experimentell), rechter Stick rollt die Seite.
- Neues Menü passt sich jeder Bildschirmgröße an und füllt am Telefon quer genau den Schirm; die Android-App bleibt im Querformat.
- Neues Menü im Stil von Assetto Corsa Competizione (WIP): Titelbildschirm, Fahren-Schirm mit Autos, Strecke und Rennoptionen, PS5-Tasten (Kreuz, Kreis, L1/R1), Cockpit-Menü über Options halten.
- Android-App (experimentell): dieselbe App als APK, mit Bluetooth-Brücke, Host ohne PC und Updates ohne Neuinstallation.
- Info-Screen: ein Tablet oder Fernseher zeigt Strecke, alle Autos und die Rangliste, ohne eigenes Auto.
- Neuer Steuerungsmodus Pacejka (experimentell): Reifen mit Haftgrenze, am Limit Unter- und Übersteuern mit Vibration.
- Reifenquietschen lauter, Porsche-Aufnahme entfernt.
- Kennlinien: Gas, Bremse und Lenkung mit einer Formel, neue Bremskennlinie, Lenk-Plot zeigt die wirksame Kurve, Live-Punkt in allen Plots.
- Rennübersicht mit Rundenzeit-Diagramm und Sektortabelle (Bestwert grün, schlechtester rot).
- Doppel-Ausdruck-Box: die Box-Überfahrt zählt nicht und wird nicht angesagt, wählbar 1 oder 0 Runden.
- Zwei Spieler: Reifenwechsel für Auto 2, Wahlkacheln für Reifen und Tank, eigener Rundenton.
- Menüs: einzeilige Kacheln, Rennmodus und Rundenzahl im Cockpit exakt wählbar, D-Pad am DualShock 4.
- Wechselhaftes Wetter regnet jetzt wirklich, Schauer kürzer als Trockenphasen.
- Lichthupe lässt das Rücklicht an, simulierter Gyro-Punkt folgt der Kurve.
- Gemerkte Autos: nur geänderte Namen und Farben, Zuordnung per Klick.
- Ghosts stoppen beim Rennabbruch und nach einem Abflug.
- Startseite mit OMEGA-SIM-Schriftzug, Credits mit Quellen, Doku auf dem aktuellen Stand.
0.7
- Navigation aufgeräumt (Startseite, feste Kopfzeile), Auto-Verwaltung in der Garage.
- Zwei-Spieler-Modus: Licht, Boxensound und Tastenbelegung jetzt wirklich unabhängig.
- Renneinstellungen als eigene Kachel mit eigenem Cockpit-Screen, dazu ein Regler für Rennhärte und eine Recovery-Funktion nach einem Abgang.
- Cockpit-Balken (Tank/Schaden/Akku) jetzt vertikal, Gyro-Anzeige verbessert.
- Lenkkennlinie einstellbar, neuer GT7-Fahrmodus, zwei neue Motoren (Ford Tudor 1937, VW Käfer 1300) und ein Vergleichsprofil mit echter Anlasser-Aufnahme für den Porsche.
- Fünf neue NPC-Ideallinien-Modi, dazu die Luuke-Linie: ein neuer Modus, von Hand aus Beispiel-Streckenverläufen hergeleitet. NPC-Verhalten in der Einführungsrunde und beim Überholen verfeinert.
- Menüs komplett mit Gamepad/Tastatur navigierbar, inklusive Info-Popups und mehreren Feinschliffen an der Tastenbelegung (D-Pad-Fixes, Select schaltet jetzt den Bahn-Lesemodus).
- Info-Tab jetzt als Kacheln (Wozu, Danksagungen, Patchnotes).
- Regen-Übergang nachgemessen: kein Griff-Sprung, auch nicht beim erneuten Regenbeginn.
- Gedruckte Streckenmuster zum Auslegen (Gerade, 60°-Kurve in zwei Größen) - rein visuell, ohne Strichcode-Anspruch.
- Streckenscan überarbeitet, neu: Strecke aus einer Aufnahme lernen.
- Motorsound ist jetzt pro Auto einzeln wählbar, Funk-Ansagen haben Vorrang vor der Live-Stimme.
- Neu in den Entwicklertools: Binär-/Hex-Trainer.
Entwicklertools experimentell
Alles hier schreibt rohe Bytes zum Auto und liest rohe Bytes zurück. Das ist Werkbank und kein Merkmal: die Pakete tragen gültige Prüfsummen, aber was das Auto mit einem selbst zusammengesetzten Paket macht, ist nicht vorhersagbar. Zum Fahren wird nichts davon gebraucht.
Zahlensysteme WIP
Zwei kurze Trainer, kein Zeitdruck: eine vierstellige Zahl im jeweiligen Zahlensystem, du tippst die passende Dezimalzahl ein und bekommst sofort Bescheid, dazu eine laufende Trefferquote.
Binär-Trainer
Vier Stellen, nur 0 und 1 – also Werte von 0 bis 15.
Noch keine Antwort.
Hex-Trainer
Vier Stellen, 0–9 und A–F – also Werte von 0 bis 65535.
Noch keine Antwort.
Aufnahme-Modus WIP
Fahr die Strecke einmal manuell (Tab "Fahren", Joystick/Gas oder Pfeiltasten). Während der Aufnahme werden Lenk- und Gaswerte mit Zeitstempel mitgeschrieben. Bei der Wiedergabe sendet die App exakt dieselbe Sequenz erneut an die Ziel-Characteristic - egal ob dabei eine echte CH-Bahn oder nur ein Ausdruck unter dem Auto liegt.
Gespeicherte Fahrten
Aufnahmen werden in der App auf diesem Gerät gespeichert (nicht als Datei). Zum Verschicken: Fahrt laden, dann „Teilen / Kopieren“ – das öffnet das Teilen-Menü oder kopiert die Aufnahme in die Zwischenablage.
Wiedergabe-Log
Strecke aus der Aufnahme lernen WIP
Fährst du mehrere Runden in einer Aufnahme, kann die App daraus das Streckenlayout ableiten – derselbe Weg, den „Strecke beim Fahren lernen“ sonst live geht, nur diesmal aus der Wiedergabe statt aus der eigenen Hand. Braucht ein verbundenes Auto in der Rolle „Steuern“: die Wiedergabe fährt wirklich, das Auto meldet seine echten Streckencodes, und daraus entsteht die Karte unten. Ohne geschlossene Runde in der Aufnahme bleibt sie leer.
Streckenzeichnung aus der Aufnahme WIP
Rechnet die gefahrene Linie rein rechnerisch aus – über dieselbe Physik, die auch ein NPC bekommt, nicht aus echten Streckencodes. Funktioniert deshalb AUCH ohne CH-Bahn, nur mit einem Ausdruck darunter. Braucht trotzdem Start/Ziel- Überfahrten in der Aufnahme für Rundengrenzen und Rundenzeiten – ohne sie bleibt es bei einer einzigen offenen Linie. Eine Annäherung: ohne echte Ortsmessung kann die Linie über mehrere Runden hinweg abdriften, auch wenn das Auto real an dieselbe Stelle zurückkehrt.
Programmierschule
Zieh die Punkte in den beiden Kurven nach oben oder unten. Links legst du fest, wie stark das Auto über die Zeit Gas gibt oder bremst, rechts wie es lenkt. Dann Simulation fahren: und darunter siehst du, was das Auto daraus macht.
Das ist der ganze Trick: eine eckige Vorgabe führt nicht zu einer eckigen Bewegung. Das Auto hat Masse, die Reifen brauchen Zeit, die Lenkung hat eine Höchstgeschwindigkeit. Wer das einmal gesehen hat, versteht, warum geschmeidige Vorgaben besser fahren: und das gilt für Programme genauso wie für Daumen.
Noch nicht gefahren.
Gas und Bremse über die Zeit
Oben = Vollgas, Mitte = rollen, unten = Vollbremse.
Lenkwinkel über die Zeit
Oben = voll rechts, Mitte = gerade, unten = voll links.
Was das Auto daraus macht
Wird nach dem ersten Lauf gezeichnet: Geschwindigkeit und der tatsächliche Lenkeinschlag, nicht der verlangte.
Bedienung mit Maus oder Finger. Das Gamepad ist hier ausgebaut: es griff vorher auf jedem Tab und auf jedes Bedienelement, und daraus kamen Fehlbedienungen. Es steuert jetzt nur noch das Auto, den Streckeneditor im Vollbild und das Boxenstopp-Menü.
An ein echtes Auto senden
Erst simulieren, dann fahren. Der Knopf schickt die Kurven an ein verbundenes Auto und fährt sie einmal ab. Das ist bewusst ein zweiter Schritt: eine steil gezogene Gaskurve lässt ein Auto auf dem Tisch losschießen, und die Simulation kostet nichts.
Weiter gedacht: NPC-Autos selbst programmieren
Dieselbe Idee, eine Stufe größer. Ein autonomes Auto braucht keine Zeitkurve, sondern eine Ortskurve: was tue ich, wenn ich auf Kachel 3 bin? Aus dem Rennmitschnitt der Original-App wissen wir, dass genau das reicht: bei einem ihrer NPCs waren 85 % der Lenkvarianz allein aus Kachelindex und Position innerhalb der Kachel erklärt.
- Gegen die Referenz antreten. Zeichne den Lenkwinkel über den Kachelindex und lass den NPC damit fahren. Wie nah kommst du an die 85 %?
- Zwei eigene NPCs gegeneinander. Zwei Kurven, zwei Autos, dieselbe Strecke: und die Rundenzeiten sagen, welche Kurve die bessere war.
- Bremspunkte finden. Nur die Gaskurve ist einstellbar, die Lenkung macht das Auto selbst. Einzige Rückmeldung ist die Rundenzeit. Genau so haben Rennfahrer es immer gemacht.
Noch nicht gebaut, die drei Punkte stehen hier als Bauplan, damit klar ist, wohin das führt.
This is available in German only, at the moment.
Überblick
Carrera Hybrid mischt klassische Carrera-Rennbahn mit freiem Ferngesteuert-Fahren. Auf einer klassischen Bahn läuft das Auto in einer Schienenrille und kann nicht abkommen. Bei Carrera Hybrid fahren die Fahrzeuge frei, ohne Schiene. Die Streckenteile tragen eine Markierung, die ein Sensor im Auto liest, damit das Auto trotzdem weiß, wo es ist.
Gesteuert wird per Smartphone-App über Bluetooth, optional mit einem Controller-Aufsatz für das Handy.
Stand heute: was OmegaSim rechnet und was nicht
Die App bewegt das Auto nicht, sie schickt ihm zwei Befehle: Gas (Motorbyte) und Lenkwinkel (Byte 7, Servo). Alles, was in der Kurve seitlich passiert, entsteht an den echten Reifen auf der echten Bahn. Die App rechnet deshalb vor allem die Längsdynamik – Tempo, Schub, Bremse, Gänge, Tank, Reifenzustand – und formt daraus die zwei Befehle so, dass sich das Modellauto wie ein schwerer GT3 anfühlt.
| Steuerungsmodus | Was gesendet wird |
|---|---|
| Physik (Vorgabe) | Gas und Lenkung aus der vollen Kette: Kennlinien, Drehmoment, Gänge, Reibkreis, Reifen, Tank, Schaden. |
| Pacejka experimentell | Wie Physik, dazu Reifen mit Haftgrenze nach der Magic Formula: am Limit Unter- und Übersteuern, mit Vibration und Quietschen. Unterhalb der Grenze exakt wie Physik. |
| Aus | Rohe Stickstellung, keine Gänge – wie ein Fernsteuerungsauto. |
| Drift experimentell | Rohes Gas, dazu ein automatisches Gegensteuern gegen das gemessene Drehsignal aus Byte 3. |
Kennlinien. Gas, Bremse und Lenkung laufen durch eine Formel, y = sign(x) · |x|g. Vorgaben: Lenkung 1,15, Bremse 1,3 (am Anfang etwas weniger empfindlich). g > 1 heißt: kleine Ausschläge wirken schwächer als linear. Der Lenkplot zeigt die wirksame Kurve bis zum Servowinkel, also mit Lenkansprechen und Kalibrierung; ein Punkt darauf zeigt live Eingang und Ergebnis.
Reifenmodell. Ein Reibkreis je Auto: was die Kurve an Haftung verbraucht, fehlt beim Beschleunigen und Bremsen, und Bremsen nimmt Lenkhaftung. Darauf Lastverlagerung längs und quer, Lastempfindlichkeit, und je Rad Temperatur, Verschleiß und Druck, dazu vier Mischungen (weich, mittel, hart, Regen) und Aquaplaning. Eine Schräglauf-Kennlinie gibt es nur im Modus Pacejka.
Einspurmodell. Vorhanden, aber als Instrument: es rechnet Gierrate, Schwimmwinkel und Eigenlenkverhalten aus dem gesendeten Lenkwinkel und zeigt das im Cockpit. Es stellt die Lenkung nicht – das Auto dreht sich ohnehin selbst, und gegen eine zweite, gerechnete Drehung anzulenken hieße, die Wirklichkeit ein zweites Mal zu simulieren und gegen sie zu arbeiten.
Einspurmodell und Pacejka sind zwei Ebenen. Das Einspurmodell ist ein Fahrzeugmodell: aus den Seitenkräften beider Achsen, Masse, Trägheitsmoment und Achsabständen folgt, wie sich das Auto dreht. Pacejka ist ein Reifenmodell: wie viel Seitenkraft ein Reifen bei welchem Schräglauf trägt – erst fast linear, dann ein Scheitel, danach fällt sie ab. Der Abfall ist das Rutschen. Der Modus Pacejka nutzt diese Kurve je Achse, um den Lenkbefehl am Limit zu formen (Abschnitt „Das Einspurmodell“ unten).
Gyro-Punkt. Der rote, simulierte Punkt im G-Plot zeigt mit Streckenortung die Querbeschleunigung aus der Krümmung des aktuellen Streckenteils (v²/R); ohne Ortung die Querausnutzung des Reibkreises. Der grüne ist das echte Drehsignal.
Außerdem: NPCs mit Ideallinie und Überholen, Boxengasse mit Reifen- und Tankwahl (auch für Spieler 2), wechselhaftes Wetter mit Schauern, die kürzer sind als die Trockenphasen, Rennen mit Sektorzeiten und Rundenzeit-Diagramm, und ein Zwei-Spieler-Modus auf demselben Sendetakt.
Der Aufbau des Autos
- Motor: treibt die Hinterräder an.
- Lenkservo: dreht die Vorderräder.
- Akku: wiederaufladbar, im Fahrzeug.
- Bluetooth-Chip: hält die Verbindung zum Handy. Vermutlich Nordic nRF52.
- Sensor: liest die Streckenmarkierung. Kamera oder Infrarot ist nicht sicher bekannt.
- Lichter: mindestens Frontscheinwerfer. Ein Bremslicht ist nicht bestätigt.
Wie das Auto auf Gas und Lenkung reagiert, berechnet das Auto selbst. Die App schickt nur Zielwerte.
Streckenteile und Streckenscan
Jedes Streckenteil (Gerade, Kurve, Start-Ziel) trägt ein eigenes, für Menschen kaum sichtbares Muster. So erkennt das Auto den Teiltyp und ob es noch auf der Strecke ist. Die Teile liegen lose, also kann jede Strecke frei gebaut werden, und das Auto darf sie auch komplett verlassen.
Vor einem Rennen kann die App die Strecke einmal abscannen: Das Auto fährt sie ab, meldet jedes neu erkannte Teil per Bluetooth, und daraus entsteht Stück für Stück eine digitale Streckenkarte.
Der Streckenrandomisator (Zufallsknopf)
Der Zufallsknopf baut eine geschlossene Runde aus den Teilen, die als vorhanden eingetragen sind. Das Kernprinzip: Es entsteht ein „Rückgrat“ aus beliebigen Kurvenläufen, deren Drehungen sich zu +360 oder –360 addieren – also ein Rundkurs aus lauter Kurven. Die Lücken zwischen den Kurvenblöcken werden dann mit Geradenstücken aufgefüllt.
Warum das schnell geht: Die Endposition des Ringes ist linear in den
Geradenlücken. Jede Gerade verschiebt um einen festen Vektor (Kurs vor der Lücke),
Kurven verschieben unabhängig von den Lücken. Also gilt
Ende = C + Summe(lücke[g] · vg) mit festem C.
Ein kleines ganzzahliges Suchen über die Geradenlängen findet den Schluss, ohne für
jeden Kandidaten die teure Mittelpunktsrechnung auszuführen – die läuft erst bei der
Endabnahme.
Die Endabnahme prüft: die Strecke ist kein langweiliges Mini-Oval (SR3GR3 und sein Spiegelbild), Anfang und Ende liegen nah genug beieinander, der Ring ist wirklich geschlossen, und die Bahn kreuzt sich nicht. Passt die Strecke in einen angegebenen Raum, werden alle acht 45°-Lagen geprüft und die passende Drehung zurückgegeben. Zuletzt merkt sich die App die zuletzt gebauten Strecken, damit nicht dieselbe Form zweimal hintereinander kommt.
Der Barcode auf der Bahn
Jedes Streckenteil trägt ein gedrucktes Muster, das das Auto beim Überfahren liest und als Zahl meldet (Byte 12 der Statusmeldung). Das Muster ist ein Strichcode aus Balken und Lücken, quer über die ganze Fahrbahn: und genau weil er quer über die ganze Breite läuft, liest er sich an jeder Querposition gleich. Das ist der Grund, warum in diesem Code grundsätzlich keine Information darüber steckt, wo auf der Bahn das Auto fährt.
Eine Werkzeugfalle, die drei Anläufe gekostet hat
Nicht über das Auto, sondern über das Bauen: die Werkzeugkette, mit der
diese Datei geschrieben wird, frisst Backslashes. Aus
[^"\] wird [^"\], und das ist eine unabgeschlossene
Zeichenklasse: Syntaxfehler, die IIFE bricht ab, nichts lädt mehr. Aus
split('\n') wird ein echtes Zeilenende mitten in einem
String – derselbe Effekt.
Dreimal in einer Sitzung passiert, und die Lehre ist nicht „besser
aufpassen“. Sie ist: keine Escapes durch diese Kette schicken. Jede
Prüfung, die einen Regexp braucht, lässt sich auch als Zeichenschleife
schreiben, und die kommt ohne einen einzigen Backslash aus. Wo ein Zeilenende
gebraucht wird, steht String.fromCharCode(10).
Der Grund, warum das hier steht und nicht nur als Kommentar an der einen Stelle: der Fehler sieht jedes Mal anders aus – einmal ein kaputter Regexp, einmal ein String über zwei Zeilen – und man sucht ihn deshalb jedes Mal neu im JavaScript, wo er nicht ist.
Woher die Muster kommen, und was ihr Vorlauf ist
Stand 26.08., und der wichtigste Einzelbefund zur Kodierung.
Carrera Hybrid ist eine Kooperation von Carrera und Sturmkind, ursprünglich MODIPLAY, von denselben Leuten, die DR!FT gemacht haben. Ein gedrucktes Muster von Sturmkind DR!FT funktioniert nachgewiesen für beide Fahrzeugfamilien. Die Kodierung ist damit keine Carrera-Eigenheit, sondern das ältere DR!FT-Verfahren – und DR!FT ist die Seite mit mehr gedruckten Beispielen in der Welt.
Das ändert die Richtung der Arbeit. Bisher hieß sie: Muster zeichnen, drucken, überfahren, hoffen. Sie heißt jetzt: vorhandene DR!FT-Muster lesen, denn jedes davon ist ein beschriftetes Beispiel mit bekannter Bedeutung. Ein Dutzend solcher Paare entscheidet die Kodierregel, während ein Dutzend selbst erfundener Muster nur ein Dutzend unbekannte Zahlen liefert.
Der zweite Teil des Befunds ist strukturell: es gab eine Fassung des Musters, bei der die ersten drei dünnen Streifen fehlten, und sie wurde erkannt. Nachgerechnet am bekannten Muster, in Fahrtrichtung gelesen:
| Fassung | Balken | Lücken |
|---|---|---|
| vollständig | d d d d D d d D d |
l l l L l L L l |
| ohne drei dünne | d D d d D d |
L l L L l |
Das Muster beginnt also mit vier dünnen Balken, und ohne drei davon bleibt genau einer. Der Vorlauf ist damit kein Nutzdatum, sondern höchstwahrscheinlich die Strecke, an der sich der Leser auf die schmale Modulbreite einstellt – genau das, was ein selbstkalibrierender Strichcodeleser braucht, und es passt dazu, dass kurz und lang relativ gedeutet werden.
Was der Befund ausschließt: jede Regel, deren Wert sich beim Weglassen dieser drei Streifen ändert. Von den 22 durchgerechneten Schemata sind das acht – Balkenzahl, Lückenzahl, Zahl der dünnen Balken, Zahl der schmalen Lücken, und alle vier Schemata, die eine absolute Position zählen.
Was er nicht entscheidet: die zwei Regeln, die als einzige das bekannte Muster erklären, sind gegen das Weglassen führender Balken beide unempfindlich. Der Abstand der dicken Balken bleibt 3, und die Zahl der breiten Lücken bleibt 3. Der Befund stützt beide und trennt sie nicht.
Die Firmware hat sich geändert, mit unbekannter Auswirkung. Jedes Muster-zu-Code-Paar braucht deshalb eine Datumsangabe.
Hier stand eine falsche Schlussfolgerung, und sie ist berichtigt.
Ich hatte geschrieben, target_finish.pdf sei eine Vorlage einer
älteren Generation, und daraus erklärt, warum unsere Kopie einen anderen
Code meldet als das Original-Blatt. Das ist falsch: das PDF ist die aktuelle
Vorlage. Die ältere DR!FT-Fassung sieht genauso aus, nur ohne die drei
führenden dünnen Streifen.
Damit wird der Schluss einfacher, nicht komplizierter. Die Vorlage ist dieselbe, und unsere Kopie ist nachweislich zeichengleich – Balkenzahl, Höhen auf 0,000 mm, Lücken auf 0,001 mm, keine weiteren Formen im PDF. Wenn das Original gelesen wird und unser Ausdruck nicht, liegt der Unterschied im Druck: Maßstab, Strichbreite, Schwärze, Papier. Das ist eine viel gewöhnlichere Erklärung als eine zweite Generation, und eine, die man mit einem Lineal entscheiden kann.
Die drei Schritte dazu, in dieser Reihenfolge: erstens das 100-mm-Kontrollmaß auf unserem Ausdruck nachmessen – stimmt es nicht, war es der Maßstab und sonst nichts. Zweitens einen dünnen und einen dicken Balken auf beiden Blättern vergleichen; unsere sind 3,60 und 6,60 mm. Drittens das Vorlauf-1-Blatt drucken: es reproduziert die ältere DR!FT-Fassung zeichengenau, und von der ist bekannt, dass sie gelesen wird. Wird auch sie nicht gelesen, ist der Druck schuld und nicht das Muster.
Auf der Bahn oder ohne Bahn: Byte 14
Zwölf Aufzeichnungen lang hat diese App keine einzige Streckenlesung
bekommen: Byte 12 stand dauerhaft auf 0xff, Byte 11 zählte
keine Kachel, der Scan blieb leer. Die Ursache lag nicht an der Bahn, nicht am Druck
und nicht an der Verbindung, sondern in einem Bit, das wir selbst gesendet
haben.
Byte 14 wählt die Leseart. Bit 7 war in den frühen Erkundungsmitschnitten in jedem Paket gesetzt, und in genau diesen Sitzungen auf der echten Bahn wurde nie etwas gelesen: Bit 7 liest gedruckte Muster, und auf der Schiene gibt es keine. Die Schiene liest Bit 5 (Einzelheiten unten).
Gemessen innerhalb einer Aufzeichnung, und nur Meldungen gezählt, deren
zuletzt gesendetes Gas mindestens 12 Stufen von der Neutralstellung
0xdf abweicht, das Auto fuhr also in jeder Zeile:
| Byte 14 | Meldungen | Lesungen | Kachelschritte |
|---|---|---|---|
Bit 7 gesetzt (0x80 0x82 0x83) | 551 | 0 (0 %) | 0 (0 %) |
Bit 7 aus, Bit 5 aus (0x42) | 178 | 163 (92 %) | 12 (7 %) |
Bit 7 aus, Bit 5 gesetzt (0x22 0x32 0x72) | 1194 | 1103 (92 %) | 1033 (87 %) |
Gleiche Bahn, gleiches Auto, dieselbe Minute. Damit erklärt weder „das Auto stand“ noch „anderer Tag, andere Bahn“ den Unterschied: also keine der beiden naheliegenden Erklärungen.
Berichtigt am 26.08.: es sind zwei LESEARTEN, kein Sensorschalter.
0x20 (Bit 5) = Auf der Bahn: liest die Kodierung der
Kunststoffschiene, und das Auto hält sich selbst darauf. 87 % der
Meldungen bringen einen Kachelwechsel, gegen 7 % ohne dieses Bit.
0x80 (Bit 7) = Ohne Bahn: liest gedruckte Muster.
Auf der Schiene gibt es keine, deshalb kamen dort 0 Lesungen in 551 Fahrmeldungen.
0x40 (Bit 6) kommt in beiden Zuständen vor und gehört zu
etwas anderem; es bleibt hier auf 0.
Diese App sendet 0x20 und der Schalter in den Optionen sowie der Knopf
im Cockpit machen den Unterschied umschaltbar.
Was hier vorher stand und warum es falsch war. Bit 7 hieß hier „Sensor aus“. Am 26.08. wurde mit der Original-App gemessen, dass ein gedrucktes Muster nur in der Stellung Ohne Bahn erkannt wird, in der Stellung Auf der Bahn nicht. Beide alten Messungen waren richtig, sie wurden beide auf der echten Bahn gemacht: dort liest Bit 7 nichts, weil dort nichts gedruckt ist. Aus „liest auf der Bahn nichts“ wurde „Sensor aus“, und das war ein Schluss über die Fahrbahn hinaus, den die Daten nicht tragen.
Daraus folgt eine Einschränkung der Hardware, die sich nicht wegprogrammieren lässt: Bit 5 ist auch das Bit, mit dem sich das Auto selbst auf der Bahn hält. Wer gedruckte Muster lesen will, gibt die Selbstlenkung auf. Beides zugleich gibt es nicht.
Zwei Vermutungen, die vorher hier standen, und warum sie falsch waren. Erst hieß es, der Sensor brauche den Scheinwerfer (Licht an: 11 703 Codes in 40 075 Paketen; Licht aus: 0 in 422). Dann hieß es, die schwarze Druckfarbe sei infrarotdurchlässig. Beide beruhten auf Zahlen, die über Sitzungen zusammengeworfen waren, und beide Male steckte der wahre Unterschied in einem Byte, das sich zwischen den Sitzungen mitänderte. Erst die Bedingung „innerhalb einer Sitzung und nur während der Fahrt“ hat es freigelegt. Das ist die Lehre, nicht die Bitnummer.
Lang und kurz, nicht hell und dunkel
Kodiert wird über die Breite der Elemente, in zwei Stufen. Aus der Original-Druckvorlage für Start/Ziel exakt ausgemessen (Vektordatei, deshalb auf Hundertstelmillimeter):
| Element | schmal | breit | Verhältnis |
|---|---|---|---|
| Balken | 3,598 mm | 6,604 mm | 1 : 1,84 |
| Lücke | 3,514 mm | 6,520 mm | 1 : 1,86 |
Balken und Lücken tragen beide Information. Eine Nachbildung, die nur die Lückenfolge trifft, sieht auf dem Papier richtig aus und wird trotzdem nicht gelesen.
Das Beispiel Start/Ziel
Neun Balken, acht Lücken, zusammen 17 Elemente. In Leserichtung, mit
0 = schmal und 1 = breit:
Balken 0 0 0 0 1 0 0 1 0
Lücken 0 0 0 1 0 1 1 0
Jeder Balken (B1…B9) und jede Lücke
(l1…l8) mit ihrem Bit und ihrer gemessenen Breite in
Millimetern. Blau ist ein breiter Balken,
gelb eine breite Lücke, grau ist schmal. Das
Bild ist maßstäblich und wird aus derselben Datei erzeugt wie die
Druckvorlage, hier steht keine abgeschriebene Zahl.
Was hier nicht steht: welche Zahl das Auto aus diesen 17 Bits bildet und wie es sie auf die Streckenart abbildet, ist nicht entschlüsselt. Bekannt ist nur, was am Ende in Byte 12 ankommt – und das hängt am Modus: im Bahn-Modus 0x01 Start/Ziel, 0x02 Gerade, 0x03 Linkskurve, 0x04 Rechtskurve, 0x0a Engstelle, im Ausdruck-Modus 0x0a (Originalblatt) oder 0x01 (Blätter der App) für Start/Ziel. Das Bild zeigt die Geometrie, nicht die Bedeutung.
Das ganze Muster ist 75,5 mm lang in Fahrtrichtung, die Balken sind
275,9 mm breit: also fast die volle A4-Breite quer zur Fahrbahn.
Erzeugt wird das Blatt von tools/make_pattern.py direkt aus der
Original-PDF, damit keine Zahl abgeschrieben wird; die größte Abweichung
zum Original beträgt 0,0004 mm.
Warum die Richtung zählt
Ein Strichcode ist eine Folge, und eine Folge rückwärts gelesen ist
eine andere Folge. 0 0 0 0 1 0 0 1 0 von hinten ist
0 1 0 0 1 0 0 0 0: ein anderes Muster, also ein anderer Code oder
gar keiner. Deshalb trägt die Druckvorlage einen Richtungspfeil, und
deshalb muss das Blatt richtig herum ausgelegt werden. Beim Ausdrucken gilt dasselbe
für den Maßstab: „an Seite anpassen“ verkleinert um mehrere
Prozent und macht das Muster unlesbar, weshalb auf dem Blatt eine
100-mm-Maßstabsprobe mitgedruckt wird.
Was wir nicht wissen
Die belegten Codes im Bahn-Modus sind 0x01 Start/Ziel,
0x02 Gerade, 0x03 Linkskurve, 0x04
Rechtskurve, 0x05 Haarnadel links, 0x06 Haarnadel rechts,
0x0a Engstelle und 0x00 abseits der Bahn; im Ausdruck-Modus ist
0x0a Start/Ziel auf dem Originalblatt und 0x01 auf den Blättern der App. Die Kodierungsregel selbst kennen wir nicht. Aus
einem exakt ausgemessenen Muster lässt sich nicht ableiten, wie die 17
Elemente in die Zahl 0x01 übersetzt werden, dafür
bräuchte es die Muster der anderen Kacheln, senkrecht von oben fotografiert und
mit Maßstab. Bis dahin gilt: wir können Start/Ziel exakt reproduzieren,
aber kein neues Muster erfinden.
Die Bluetooth-Verbindung
Handy und Auto sprechen über Bluetooth Low Energy (BLE), den stromsparenden Standard, den auch Kopfhörer oder Fitness-Tracker nutzen. Der Kanal heißt Nordic UART Service, eine Art virtuelle serielle Leitung über Bluetooth, die viele kleine Elektronikgeräte verwenden.
Die App schickt nicht nur einmal ein Kommando: Sie sendet etwa 20 bis 45 Mal pro Sekunde den aktuellen Gas- und Lenkwert. Bleibt dieser Strom aus, geht das Auto vermutlich in einen sicheren Stillstand über. In die andere Richtung meldet das Auto laufend Statuspakete: Akkustand, erkanntes Streckenteil, Off-Track-Status und rohe Bewegungssensordaten.
Protokoll: was gesendet wird
20 Byte, geschrieben auf das Nordic-UART-Merkmal (Handle 0x11 im Mitschnitt),
alle 45 ms. Rekonstruiert aus HCI-Snoop-Aufzeichnungen der Original-App.
Grün = aus Mitschnitten belegt,
gelb = plausibel abgeleitet,
rot = unbekannt.
| Byte | Inhalt | Bedeutung | Status |
|---|---|---|---|
| 0 | 0xAF | Rahmenkennung, in jedem Paket gleich | belegt |
| 1–5 | 0x00 | ungenutzt | belegt |
| 6 | 0xDF + d | Gas. d von −64 bis +127, umlaufend gerechnet: kein um 0x80 zentriertes Byte | belegt |
| 7 | int8 | Lenkung, positiv = rechts. Voller Bereich ±127 | belegt |
| 8 | 0x80 | konstant | belegt |
| 9 | int8 | Lenkung, identische Kopie von Byte 7 | belegt |
| 10 | 0x60 | konstant | belegt |
| 11–13 | 00 01 00 | konstant | belegt |
| 14 | Bitfeld | Licht und Betriebsart. Bit 1 (0x02) = Standlicht, Bit 0 (0x01) = Bremslicht | belegt |
Bit 5 0x20 | Auf der Bahn: Streckensensor an, Auto hält sich selbst auf der Bahn. 87 % Kachelwechsel gegen 7 % ohne | belegt | |
Bit 7 0x80 | Ohne Bahn: Sensor AUS, Byte 12 bleibt 0xff. 0 Lesungen in 551 Fahrmeldungen | belegt | |
Bit 2 0x04 | Blinklicht. Am Auto erprobt (Paketvarianten-Prüfstand, Entwicklertools): mit gesetztem Standlicht-Bit lässt dieses Bit den Scheinwerfer BLINKEN statt dauerhaft zu leuchten. Keine Helligkeitsstufe – eine eigene Betriebsart des Lichts | belegt | |
Bit 3 0x08, Bit 4 0x10 | am Auto erprobt: kein sichtbarer Unterschied zum normal leuchtenden Licht. Keine zweite Helligkeitsstufe gefunden | erprobt, ohne sichtbare Wirkung | |
Bit 6 0x40 | kommt in beiden Betriebsarten vor. Am Auto erprobt: kein sichtbarer Unterschied zum normal leuchtenden Licht. Wir lassen es auf 0 | erprobt, ohne sichtbare Wirkung | |
| 15 | 0x04 | konstant | belegt |
| 16–18 | 0x00 | ungenutzt | belegt |
| 19 | CRC-8 | Polynom 0x31, Startwert 0xFF, über Byte 0–18 | belegt |
Die Lichtbits stammen aus einem Mitschnitt, in dem nacheinander Licht aus, Licht an und
Bremse gedrückt wurde: 0x80, 0x82, 0x83. Der Beweis, dass
die Lesart stimmt, ist die Prüfsumme: unsere CRC-Berechnung liefert für diese drei
Bytes genau 0xA4, 0x33 und 0xE0, also exakt die aufgezeichneten
Werte.
Was dieser Mitschnitt nicht hergab, und was uns lange gekostet hat: er wurde
im Modus „Ohne Bahn“ aufgenommen, deshalb war Bit 7 in allen drei
Zuständen gesetzt. Aus „in jedem Paket gesetzt“ wurde eine Konstante
LIGHT_BASE = 0x80: und damit hat diese App zwölf
Aufzeichnungen lang den Streckensensor abgeschaltet. Eine Konstante, die aus
einem Mitschnitt kommt, trägt dessen Betriebsart mit, ob man will oder
nicht.
Protokoll: was das Auto meldet
19 Byte als Benachrichtigung (Handle 0x13), etwa alle 45–60 ms.
| Byte | Bedeutung | Status |
|---|---|---|
| 0 | 0xAF, Rahmenkennung | belegt |
| 1, 3 | ändern sich nur, wenn das Auto fährt; vorzeichenbehaftet. Wir zeigen sie als grünen Punkt im G-Diagramm, als rohe Sensorwerte, nicht als gemessene G-Kräfte | unbestätigt |
| 2 | schwankt um 0x9C | unbestätigt |
| 4–8 | 0x00 | belegt |
| 9 | freilaufender Paketzähler, 0–255, ändert sich in jedem Paket | belegt |
| 10 | Akkustand | belegt |
| 11 | Zähler der Musterüberfahrten. Erhöht sich um 1, sobald das Auto ein gedrucktes Muster überfährt, die Rundenzählung passiert also in der Hardware | belegt |
| 12 | Mustercode. 0x01 Start/Ziel (Bahn; im Ausdruck-Modus 0x0a), 0x02 Gerade, 0x03 Linkskurve, 0x04 Rechtskurve, 0x05 Haarnadel links, 0x06 Haarnadel rechts, 0x00 abseits der Bahn. 0xFF heißt „noch nie eins gesehen“. Der Wert bleibt stehen, er zeigt das zuletzt gelesene Muster | belegt |
| 13 | 0x00 | belegt |
| 14 | rollender Zähler (läuft über). Nicht zu verwechseln mit Byte 14 der Senderichtung, das ist das Licht | belegt |
| 15 | 0x08, solange das Auto körperlich über einem Muster steht (~1 s bei Fahrt), sonst 0x00 | belegt |
| 16–17 | 0x00 | belegt |
| 18 | Prüfsumme | angenommen |
Byte 15 meldet nicht „abseits der Strecke“: es steht auf
0x08 in genau dem Paket, in dem auch der Überfahrtszähler springt,
also beim Passieren von Start/Ziel. Abseits der Bahn erkennt die App an Byte 12.
Ein einziger Schreiber
Alle Bluetooth-Schreibvorgänge laufen über einen Takt von 45 ms mit einer Sperre, die immer nur einen Schreibvorgang gleichzeitig zulässt. Das ist keine Stilfrage: vorher schrieben fünf Quellen unabhängig voneinander, Gamepad, Tastatur, Zeigegerät, Neigungssensor und die Fahrphysik. Überlappende Schreibvorgänge quittiert der Browser mit „GATT operation already in progress“, verwirft sie stillschweigend, und das Auto ruckelt.
Praktische Folge für Weiterentwicklungen: eine neue Funktion darf niemals selbst senden. Sie setzt einen Zustand, den der Takt beim nächsten Paket mitnimmt. Die Lichtsteuerung ist dafür das Musterbeispiel, sie schreibt kein eigenes Paket, sie setzt Byte 14.
Ebenso gibt es eine Eingabeschlichtung: jede Quelle meldet sich pro Achse an und darf nur schreiben, solange sie ausgelenkt ist, plus genau einmal beim Loslassen. Sonst überschreibt ein mit 60 Hz laufendes Gamepad ständig die Tastatur mit Nullen.
Zwei Spieler auf demselben Takt
Der 2-Spieler-Modus ist der Beweis dafür, dass die Regel trägt: das zweite Auto bekommt
keinen eigenen Takt, sondern wird im selben 45-ms-Herzschlag direkt nach dem ersten
beschickt. Jedes Auto hat seine eigene Sperre (writeInFlight), ein langsamer Funkweg
lässt also nur beim eigenen Auto einen Takt aus und hält das andere nicht auf –
genau das Verhalten, das die NPCs schon haben.
Der Eingang von Spieler 2 geht bewusst nicht durch die Eingabeschlichtung. Sie verteilt ein Wertepaar unter mehreren Quellen – Spieler 2 hätte darin keine zweite Achse, sondern würde Spieler 1 überschreiben. Er schreibt deshalb auf sein eigenes Wertepaar, und die Tastenbelegung teilen beide Controller.
Auto 2 hat inzwischen fast alles, was Auto 1 hat: eine eigene Fahrphysik samt eigener Gänge und Temperaturen, eine eigene Ortung auf der Strecke (davon hängen das Ausweichen der NPCs, die Fahrhilfe und der Leitplanken-Modus ab), eigenen Schaden, eigenen Tank, eine eigene Motorstimme auf der anderen Stereoseite, die Rundenzählung und einen eigenen Cockpit-Schirm. Die Gangtabelle wird beim Anschalten kopiert und nicht geteilt, sonst schriebe ein Schaltvorgang von Auto 2 in die Gänge von Auto 1.
Dazu die Rennleitung – gelbe Flagge und Einführungsrunde gelten für beide – und ein schmaler Boxenstopp, der voll tankt und ganz repariert. Was fehlt: die Vorwahl und der Reifenwechsel in der Box (die Reifenwahl ist eine globale Einstellung), die Zusatzkette am Motorklang (Turbopfeifen, Knaller, Begrenzer-Takt – 75 Fundstellen auf einem gemeinsamen Bus) und der Makro-Mitschnitt. Die Liste samt Messwerten und Aufwandszahlen steht in CARRERA_HYBRID.md.
Mehrere Autos, NPCs, Mustererkennung
Garage und Rollen
Jedes Auto braucht eine eigene Nutzergeste zum Verbinden, Web Bluetooth
verlangt das je requestDevice(), das ist nicht umgehbar. Klick auf eine
Zeile lässt die Lichter dieses Autos blinken (Byte 14 wechselweise
0x82/0x80), damit Liste und Tisch zuzuordnen sind.
Die Architektur ist absichtlich unsymmetrisch. Das Spielerauto
behält den bestehenden Pfad vollständig: sendControlValue(),
den einen 45-ms-Takt, Optionen, HUD. Dieser Zustand steckt in etwa 20
Modulvariablen mit über hundert Verwendungen; ein Umbau auf ein Fahrzeugobjekt
hätte jede davon angefasst. NPCs sind stattdessen Objekte mit eigener
Verbindung, eigener Schreibsperre und eigener
CarreraPhysicsEngine-Instanz. Letzteres erledigt
„gleich stark beschleunigen wie das Spielerauto“ von selbst,
gleiche Klasse, gleiche Kalibrierung: und bringt Gangschaltung,
Byte-Herleitung und Bremslicht mit, statt sie nachzubauen.
Wie ein NPC fährt
Byte 12 sagt Kurve, aber nicht in welche Richtung, und das Vorzeichen von Byte 3 hängt an der Fahrtrichtung über das Streckenteil. Ein falsch geratenes Vorzeichen lenkt den NPC sofort von der Bahn. Die Richtung kommt deshalb aus dem Streckenlayout im Strecke-Tab, wo Links- und Rechtskurven unterschieden sind; Byte 11 sagt, auf welchem Teil man ist. Ohne Layout kann ein NPC nur geradeaus halten und wird an der ersten Kurve von der Abschaltregel gestoppt. Das ist eine echte Grenze, kein Fehler.
| Verhalten | Quelle | Gemessen |
|---|---|---|
| Lenkrichtung | Layout (Links-/Rechtskurve) | Gerade 0, rechts +112, links −114 |
| Lenkfeinkorrektur | Byte 3 (Drehrate) | Regelverstärkung noch nicht am Auto kalibriert |
| Kurvendrosselung | Byte 12, mit Layout vorausschauend | vor der Kurve 0,36 statt 0,55 Solltempo |
| Bremslicht | Byte 14 Bit 0 | beim Bremsen 0x83 |
| Abschaltung | Byte 12 = 0xff > 1,5 s | Gasbyte exakt 0 |
Die 1,5 s sind aus den Mitschnitten begründet: auf der Strecke folgt Code
auf Code ohne 0xff dazwischen, und ein Teil liegt 0,4 bis 2,7 s
unter dem Sensor. Länger als 1,5 s ohne Code heißt also wirklich
„nicht auf der Strecke“. Nur NPCs halten dann an:
das vom Spieler gesteuerte Auto fährt weiter, wohin gelenkt wird.
Mustercode entprellen
Zwei Regeln gegen Fehllesungen. Erstens Bestätigung: ein Code muss zweimal hintereinander kommen, bevor er geglaubt wird. Das kostet ein Paket Latenz und nichts weiter, bei 8 bis 60 Paketen je Streckenteil ist eine echte Lesung nie ein Einzelpaket. Zweitens keine Sofortwiederholung: nach einem Start/Ziel- oder Boxengassen-Code wird derselbe Code für 1 s ignoriert. Vorher war der Teilzähler der einzige Schutz, und ein stotternder Zähler ergab Doppelrunden.
Regen und Blitz auf dem Dash
Bewusst CSS und kein Canvas: ein Canvas mit hunderten Tropfen bräuchte eine
rAF-Schleife auf demselben Hauptthread, der alle 45 ms das Steuerpaket
schreibt: dort sind die zwei schlimmsten Regressionen dieses Projekts
entstanden. Drei Schichten mit translate3d laufen auf der GPU und
kosten den Sendetakt nichts.
Zwei Fehlversuche, und der Grund ist ein Einheitenfehler, kein
Geschmacksfehler. repeating-linear-gradient malt Bänder über
die ganze Fläche, also Streifen. Der zweite Versuch mit
background-size: 1.6px 13px ergab wieder Streifen, weil
background-size die Kachel bemisst und nicht den
Tropfen: eine 1,6 px breite Kachel heißt ein Strich alle 1,6 px, rund
50 % der Fläche bemalt. Tropfen entstehen erst durch eine große
Kachel mit einer kleinen Ellipse aus radial-gradient:
0,9×7 px in 24×46 px bemalt 1,8 % statt
50 %. Die drei Blätter bemalen 1,79 %, 1,18 % und 0,70 %.
Die Drehung steht vor der Verschiebung, damit jeder Tropfen entlang seiner
eigenen Längsachse fällt.
Der Blitz ist echtes Gamma (feComponentTransfer type="gamma"), nicht
brightness(): eine Multiplikation brennt die Lichter aus, Gamma hebt
die Mitten und lässt Schwarz schwarz, das sieht nach kurzem Fremdlicht
aus statt nach Weißblitz. Zwei Blitze, der zweite schwächer, dann der
Donner 200 ms später. Der Blitz hängt am Wetter, nicht
an der Lautstärke: eine stumme Ambience darf kein unsichtbares Gewitter ergeben.
Eine verlorene Formatierung
Ehrlichkeitsvermerk, weil es erklärt, warum das Optionsmenü
längere Zeit unbrauchbar aussah: Commit 7cd71e6 hat einen
CSS-Block zwischen zwei Markern ersetzt und dabei die Regeln für
.opt-row, .opt-label, .opt-val und
.tgl mitgelöscht. Markup und JavaScript blieben, deshalb liefen
alle Funktionstests weiter durch, während der Tab gar keine Formatierung
hatte: ohne Zeilenraster stapeln sich Beschriftung und Bedienelement
einfach untereinander. Lehre: Tests, die nur Verhalten prüfen, bemerken
verlorene Darstellung nicht.
Autonome Autos: was die Original-App wirklich sendet
Zwei Mitschnitte tragen das hier. Der vom 20.08. zeigt den Leitplanken-Modus (67 s Verkehr zum Auto; die 2755 s Dateispanne gehören zum gesamten Bluetooth-Verkehr des Telefons). Der vom 21.08. ist ein Rennen auf „az2108“ mit drei Autos: einem gesteuerten, das wegen eines nicht verbundenen Gamepads stand, und zwei von der App selbst gefahrenen. Das macht ihn wertvoll, bei den NPCs ist die App der Fahrer, die Schreibpakete sind also die Ausgabe des Original-Reglers und nicht die eines Daumens. Erkennbar ist das sofort: die NPC-Lenkung hat 119 bis 126 verschiedene Werte und nur 2,7–3,6 % Vollausschlag, während in den handgefahrenen Aufnahmen 196 von 235 Befehlen genau ±127 waren.
Der Vorausblick: die nächsten drei Streckenteile
In Bytes 16–18 schickt die App dem Auto die Typen der kommenden drei Kacheln, als Schiebefenster über das eingescannte Layout; das Fenster rückt bei jedem Kachelwechsel weiter. Im Leitplanken-Mitschnitt begannen diese Bytes auf die Millisekunde genau mit Bit 5 von Byte 14 (552 Pakete, beide Merkmale zugleich, in keinem anderen Mitschnitt vorhanden). Im Rennen umfasste der Vorausblick 11 verschiedene Fenster, deren kürzester erklärender Ring die Länge 11 hat, genau die 11 Module, die die App für „az2108“ angibt.
Das Code-Alphabet ist vollständig
| Code | Bedeutung | Beleg |
|---|---|---|
0x01 | Start/Ziel im Bahn-Modus, also von der Kunststoffschiene (von seVen bestätigt, seit v0.6.14 so gelesen); im Ausdruck-Modus melden die Blätter der App ebenfalls 0x01 | belegt |
0x0a | Start/Ziel im Ausdruck-Modus auf dem Originalblatt (gemessen 25.08.); im Bahn-Modus dagegen die Engstelle. Dieselbe Zahl, zwei Bedeutungen – deshalb liest die App sie je nach Modus | belegt |
0x02 | Gerade | belegt |
0x03 | Linkskurve | belegt (21.08.) |
0x04 | Rechtskurve | belegt |
0x05 | Haarnadel links | belegt (24.08.) |
0x06 | Haarnadel rechts | belegt (24.08.) |
0x00 | abseits der Bahn | belegt |
0xff | noch nie ein Muster gesehen | belegt |
0x05 und 0x06 kamen am 24.08. hinzu, unmittelbar nachdem
Byte 14 richtig gesetzt war (siehe „Auf der Bahn oder ohne Bahn“).
Die Haarnadel trägt also einen eigenen Code und ist von einer normalen Kurve
unterscheidbar. Die Codes ordnen sich paarweise: gerade Zahl rechts, ungerade links,
und die Enge steigt mit dem Wert.
0x03 war der letzte Unbekannte. Die gemeldete Codefolge lautete in
allen 16 Runden identisch S R G R ? R, und über den
Kachelzähler aufgelöst ist die Runde 11 Kacheln lang:
S R2 G2 R3 L R2. Das einzelne 0x03 pro Runde sitzt genau
dort, wo die einzelne Linkskurve liegt. (Die Strecke war als
SR2G2R2LR2 notiert, die Daten zeigen an dieser Stelle drei
Rechtskurven, nicht zwei.)
Die Modus-Bytes für eigene Autos
Bei beiden NPCs konstant über 2496 bzw. 2457 Pakete: Byte 10 =
0x20 und Byte 15 mit Bit 3
(0x0c/0x0e). Das gesteuerte Auto bekam dagegen
0x60 und 0x04. Bit 1 von Byte 15 folgt dem
Fahren und nicht dem Modus (Gas in 100 % der Pakete mit gesetztem Bit gegen
69,8 % ohne) und wird deshalb nicht nachgebildet. 0x30 gehört
zur handgefahrenen Leitplanken-Sitzung, nicht zum Autonom-Modus.
Byte 15 Bit 3 ist kein Kantensignal
Es sieht aus wie die lange gesuchte Querlage („Auto am Bahnrand“), ist es
aber nicht. Drei Messungen zeigen das: die Blockdauer ist praktisch konstant (Median 0,91
und 0,94 s, 10.–90. Perzentil 0,84–1,01 s), was ein
Zeitglied ist und kein Kontakt; es gibt 17 Blöcke bei 16 Runden; und
jeder einzelne beginnt auf Kachelindex 0 mit Code 0x01
(16 von 17 und 17 von 17). Es ist der Start/Ziel-Riegel, genau wie die
Protokolltabelle weiter oben immer schon sagte.
Die Korrelation mit dem nächsten Lenkbefehl der App (r = −0,40 und −0,32, der stärkste Wert aller 19 Meldebytes) war ein Ortsartefakt: der Riegel markiert immer dieselbe Stelle der Strecke, und dort lenkt die App eben konsistent. Wer nach Regelung sucht, muss den Ort herausrechnen: das ist die Lehre daraus.
Es geht auch ohne Querlage, die App macht es vor
| NPC | Reststreuung der Lenkung je (Kachelindex, Phase) | ohne Positionswissen | erklärter Anteil |
|---|---|---|---|
| 0x201 | 21,7 | 56,7 | 85 % |
| 0x202 | 39,2 | 58,6 | 55 % |
Bei einem der beiden NPCs sind 85 % der Lenkvarianz allein aus der Streckenposition erklärt. Die App fährt ihre autonomen Autos also weitgehend als Vorsteuerung aus Kachelindex und Phase innerhalb der Kachel, nicht aus einer Rückmeldung, denn sie hat genauso wenig eine wie wir. Im Rest steckt das gegenseitige Reagieren; der zweite NPC mit 55 % war der stärker verwickelte.
Das ist die Antwort auf „dann ist keine Ideallinie möglich?“ Möglich ist sie, als offene Bahnkurve über (Kachelindex, Phase), und genau so weit, wie die Original-App auch kommt. Was nicht möglich ist, ist nachzuweisen, dass das Auto die Linie einhält. Dafür bräuchte es zusätzliche Sensorik, eine Kamera von oben: und keine weitere Analyse des Funkverkehrs.
Gegenprobe zum Ganzen: aus Kachelzähler und Start-Kachel rekonstruiert ergibt das Rennen 16 Runden je NPC, nach der Anfangsphase stabil bei 7,07–7,31 s, die beiden Autos im Median 0,03 s auseinander: was zwei gleich eingestellte NPCs auch tun sollten.
Mehrspieler, Updates, offene Fragen
Laut Hersteller können mehrere Spieler gleichzeitig fahren, jedes Handy über Bluetooth mit seinem eigenen Auto verbunden. Für die Renn-Organisation zwischen den Handys (Rundenzeiten, Startreihenfolge) wird vermutlich zusätzlich WLAN zwischen den Handys genutzt: zwei getrennte Funkwege, Bluetooth zum eigenen Auto und WLAN zu den anderen Handys.
Das Auto kann seine Firmware auch per Bluetooth aktualisieren ("Over-the-Air-Update"), über ein Standardverfahren von Nordic Semiconductor.
Noch nicht sicher bekannt: der genaue Streckensensor-Typ und die Bedeutung einiger Protokoll-Bytes (siehe die Tabellen weiter unten). Das Bremslicht ist seit dem 19.08.2026 entschlüsselt und wird angesteuert. Das Grundprinzip bleibt davon unberührt: Sensor liest Strecke, Funkchip verbindet Auto und Handy, Fahrphysik läuft im Auto.
Wer bestimmt das Fahrverhalten?
Beide, aber an verschiedenen Stellen. Die App formt zuerst den Fahrerwunsch: Gänge, Drehmoment und eine simulierte Geschwindigkeit, und sendet dann das Ergebnis. Der entscheidende Punkt dabei: der Gaswert wird aus der simulierten Geschwindigkeit abgeleitet, nicht aus der Pedalstellung. Bekommt das Auto einen Vollgas-Wert, ist es fast sofort auf Höchsttempo; deshalb zieht es nur dann realistisch hoch, wenn die App den Wert über die Zeit hochrampt.
Danach greifen noch drei Multiplikatoren an derselben Stelle: Geschwindigkeitsbegrenzung, Akku-Ausgleich sowie Tank und Schaden. Was das Auto aus dem fertigen Wert macht, wie es einlenkt, wie es Grip findet: entscheidet weiterhin seine eigene Firmware.
Im Modus Pacejka formt die App zusätzlich den Lenkwinkel am Haftlimit. Im Modus „Aus“ sendet sie nur die rohe Stickstellung und ist eine reine Leitung.
Was ist echt gemessen, was rechnet die App?
Echt aus dem Auto gemessen
- Akkustand: Byte 10 (Schätzung, nicht kalibriert)
- Teile-Zähler: Byte 11, erhöht sich bei jedem neuen Streckenteil
- Typ des Streckenteils: Byte 12 (Start/Ziel, Gerade, Rechtskurve)
- Off-Track-Flag: Byte 15
- Rohe Bewegungswerte: Bytes 1 und 3, verrauscht, Bedeutung unbestätigt
Nur in der App gerechnet
- km/h, Drehzahl und Gangwahl: das Auto meldet keine Geschwindigkeit zurück
- Lenkverhalten: Lenkansprechen, Dämpfung, Kennlinie, Reibkreis, im Modus Pacejka Unter- und Übersteuern
- Einspurmodell: Gierrate und Schwimmwinkel, nur als Anzeige
- Reifen: Temperatur, Verschleiß, Druck und Mischung je Rad
- ABS, Tank, Schaden und die Crash-Erkennung (Schwellwert auf Bytes 1/3, deren Bedeutung unbestätigt ist)
- Boxengasse: Tempolimit und Service, der mit der Standzeit wächst
- Akku-Leistungsausgleich, Motorsound und alle Töne
- Rundenzeiten: ausgelöst vom echten Byte 12, gestoppt aber im Gerät
- Position auf der Minikarte: aus dem Teile-Zähler geschätzt (keine echte Ortung)
Die Kennlinien des simulierten Antriebs
Alle vier Bilder werden beim Öffnen dieses Tabs aus den aktuell eingestellten Werten berechnet, sie können also nicht von dem abweichen, was das Auto gerade tut.
Das Drehmoment steigt spät an und erreicht sein Maximum erst bei rund 6200/min, typisch für einen hochdrehenden Saugmotor. Unten heraus zieht er deutlich schwächer.
Radzugkraft je Gang. Jeder höhere Gang zieht schwächer, weil die Übersetzung kleiner wird: deshalb beschleunigt der 1. Gang brachial, endet aber schon bei rund einem Viertel der Höchstgeschwindigkeit. Als relativer Faktor beschriftet, nicht in Newton: das Modell kennt weder Masse noch Radradius, eine Newton-Achse wäre erfundene Physik.
Dieselben Kurven abzüglich Roll- und Luftwiderstand, das ist die Beschleunigung, die tatsächlich übrig bleibt. Sie flacht nach oben hin ab. Die graue Linie ist der Verlauf ohne Gas.
Der Anfahrtsverlauf, gezeichnet aus demselben Integrator, der auch den „0 → Vollgas"-Regler löst. Die rote Linie ist die Drehzahl: ihr Sägezahn sind die Schaltvorgänge, die man in den Hörbeispielen oben hört.
Wie die Bremskraft gerechnet wird
Die Verzögerung ist geschwindigkeitsabhängig, weil ein GT3 bei hohem Tempo durch Abtrieb deutlich stärker verzögert als kurz vor dem Stillstand:
aBrems = (0,627 + 0,64 · v/vmax) · Bremspedal · Reibungskreis · Fahrbahn · Einfedern
Die beiden Zahlen sind an eine reale GT3-Bremstabelle angepasst: 50 km/h in ~1,0 s, ansteigend auf 280 km/h in ~4,3 s. Nachgemessen 1,02 und 4,18 s: innerhalb von 3 %. Aus Höchstgeschwindigkeit bis Stillstand sind es 4,25 s.
Die Beiwerte 0,627 und 0,64 treffen die Tabelle: aus Höchstgeschwindigkeit rund 4,3 s bis zum Stand, nachgerechnet mit der blanken Formel und in der laufenden Schleife (beim geraden Bremsen auf trockener Bahn ist jeder Multiplikator 1,0). Der Regler Bremskraft (Standard 1,0) bleibt für den Geschmack.
- Reibungskreis: ein Reifen kann seine Haftung nur einmal vergeben.
Längs bleibt
√(1 − quer²), also kostet Lenken beim Bremsen Verzögerung und umgekehrt. - Fahrbahn: eine 2×2-Matrix aus Wetter und Reifen: trocken auf Slicks 1,00, trocken auf Regenreifen 0,88, Regen auf Regenreifen 0,80, Regen auf Slicks 0,45.
- Einfedern: die Radlast wandert beim Bremsen nach vorn. Wichtig ist die Normierung: der Faktor ist auf den eingefederten Zustand bezogen, nicht auf 50/50. Er kann also nur während des Einnickens Bremskraft wegnehmen, nie welche hinzuerfinden: sonst wäre die an echten Daten gefittete Verzögerung nicht mehr das, was sie verspricht.
Die Radlastverlagerung hat zwei Zeitkonstanten: die Karosserie nickt in 80 ms ein, der Kraftaufbau am Reifen folgt in 450 ms. Genau diese Differenz erzeugt den kurzen Einlenkvorteil zu Beginn eines Bremsvorgangs. Gemessene Lenkwirkung bei vollem Einschlag, 170 km/h Anzeige, 2. Gang, trockene Bahn: Vollgas 0,76 · Ausrollen 1,02 · Bremse nach 45 ms 1,06 · nach 135 ms 1,18 · Dauerbremsung 0,46. Der Ausschlag nach oben und der tiefe Endwert sind dieselbe Ursache: die Karosserie ist schon vorn, der Reifen baut die Bremskraft aber erst auf: und sobald er sie aufgebaut hat, ist sie im Reibungskreis für das Lenken verbraucht.
Geradeausfahren ohne Zustandswissen
Das Auto meldet keine Ist-Geschwindigkeit. Es gibt kein Byte, aus dem hervorginge, wie schnell es gerade fährt. Das Gasbyte ist ein Sollwert, kein Regelkreis: es gibt keine Rückmeldung, gegen die geregelt werden könnte.
Daraus folgt der zentrale Kunstgriff dieser App: das gesendete Byte wird aus der simulierten Geschwindigkeit abgeleitet, nicht aus der Pedalstellung. Würde man das Pedal direkt durchreichen, säße bei Vollgas sofort der volle Wert an und das Auto schießt los. Stattdessen läuft im Handy ein Fahrzeugmodell mit Motorkennlinie, Getriebe, Roll- und Luftwiderstand; dessen Geschwindigkeit wird auf den Bytebereich abgebildet. Das Auto bekommt also laufend den Wert, den ein echtes Fahrzeug in diesem Moment hätte.
Zwei Feinheiten, die aus dem fehlenden Rückkanal folgen: erstens braucht ein stehendes Auto
eine Mindestansteuerung (minMoveThrottle), um überhaupt loszubrechen: ohne
sie wäre der erste Moment einer Beschleunigung zu schwach, um sich zu bewegen. Zweitens gibt es
unterhalb von 10 km/h Anzeige kein Mittelding: entweder wird bewusst über der
Losbrechschwelle gefahren, oder das Byte geht sauber auf 0. Dazwischen liegt genau der Bereich,
in dem das Auto kriecht, stehenbleibt und wieder anruckt.
Tankgewicht und Reifen
Beide Modelle hängen an je einem Regler in den Optionen, dessen linkes Ende sie vollständig abschaltet, nicht „ein bisschen“, sondern rechnerisch exakt auf den Faktor 1, also auf das Verhalten ohne Simulation. Das ist Absicht: nur so lässt sich beurteilen, was das Modell überhaupt beiträgt.
Tankgewicht
Ein voller Tank ist totes Gewicht und kostet Beschleunigung und Bremsleistung
gleichermaßen: Massefaktor = 1 + Regler · 0,30 · Füllstand.
Bei vollem Regler und vollem Tank ist das Auto also 30 % träger; gemessener Bremsweg aus
Höchstgeschwindigkeit 3,46 s statt 2,70 s.
Wichtig für alle, die den Code weiterentwickeln: der Faktor wird auf die
fertige Beschleunigung in update() angewandt, nicht innerhalb
von thrustAt(). Die Startkalibrierung integriert durch thrustAt() und
müsste sonst bei jedem Tankfüllstand neu gelöst werden. Die kalibrierte Zeit gilt
damit für das leere Auto, und Sprit macht es langsamer: die ehrliche
Richtung, denn erfinden darf ein Zusatzmodell nichts.
Reifentemperatur
Wärme entsteht aus der Arbeit, die die Reifen tatsächlich leisten: Querkraft plus
Längskraft, beides nur solange das Auto rollt. Die Kühlung wächst mit dem Abstand zur
Umgebungstemperatur, deshalb pendelt sich eine Temperatur ein statt davonzulaufen:
T = 20 °C + 65 · (5,0/3,4) · Arbeit, Zeitkonstante etwa 19 s.
| Fahrweise | bei 80 °C nach | Beharrungstemperatur | Verschleiß nach 10 min |
|---|---|---|---|
| sanft | nie | 49 °C, bleibt kalt | 33 % |
| zügig | 48 s | 85 °C: Betriebsfenster | 74 % |
| Vollattacke | 19 s | 116 °C, überhitzt | 100 % (nach 6,5 min) |
Dass sanftes Fahren die Betriebstemperatur gar nicht erreicht, ist kein Fehler, sondern genau der Zielkonflikt: wer schont, hat weniger Grip. Der erste Versuch mit anderen Raten lief bei ganz normalem Fahren auf 171 °C ein, dauerhaft im roten Bereich, was das Modell wie einen Defekt hätte aussehen lassen.
Grip und Verschleiß
Kalte Reifen rutschen, überhitzte rutschen, abgefahrene rutschen. Unterhalb des Betriebsfensters ist die Kennlinie quadratisch, damit die letzten Grad weniger zählen als die ersten. Gemessene Griffigkeit bei vollem Regler: kalt (20 °C) 0,65 · Betrieb (85 °C) 1,00 · überhitzt (110 °C) 0,70 · abgefahren 0,70.
Der Verschleiß läuft mit derselben Arbeit und beschleunigt sich, sobald die Reifen heiß sind: ein harter Stint kostet also doppelt. Zurückgesetzt wird beim Boxenstopp und beim Rennstart, also genau dann, wenn ein echtes Auto auf neuen oder ausgekühlten Reifen losfährt. Der Grip wirkt auf Antrieb, Bremse und Lenkung.
Auf dem Racing-Display zeigt der Reifenring die Temperatur: blau kalt, grün im Betriebsfenster, rot zu heiß. Bei abgeschaltetem Modell bleibt er grau und die Anzeige sagt „aus“, eine Anzeige soll keine Simulation vortäuschen, die gar nicht läuft.
Leerlauf, Schaltvorgang, Boxengasse
Der Startzustand ist N. Der Antriebsstrang kennt drei Zustände,
neutral, forward, reverse: und die
Schaltkette ist R ← N ← 1 ← 2 … ← 6. N ist bei jeder
Geschwindigkeit wählbar, weil Auskuppeln und Rollen normal ist; R nur im Stand.
In N ist der gesendete Gaswert exakt 0: nachgemessen, und die Drehzahl hängt nicht mehr an der Radgeschwindigkeit, sondern folgt dem Pedal mit einer Verzögerung von 0,22 s. Ein Motor ist kein Schalter.
Eine Falle, die eigens abgefangen ist: im Automatikmodus muss N von selbst verlassen werden, sobald Gas kommt. Ohne diese Regel startet die App im Leerlauf und die Automatik käme nie heraus, dieselbe Fehlerklasse, die den Rückwärtsgang schon einmal unentrinnbar gemacht hat. Gemessen: Gang 1 kommt im ersten Sendetakt.
Rückwärts ist doppelt gebremst: der simulierte Deckel liegt bei 11 % der Höchstgeschwindigkeit (gemessen 31 angezeigte km/h) und das gesendete Byte wird zusätzlich halbiert. R ist zum Rangieren da, nicht zum Fahren.
Schaltgeräusch
Selbst synthetisiert, keine Aufnahme. Ein pneumatischer GT3-Schaltvorgang ist nicht ein Geräusch, sondern drei innerhalb von etwa 80 ms, und das Ohr erkennt das Getriebe an ihrer Reihenfolge, nicht an der Klangfarbe: erst greift die Schaltklaue (harter, hoher Schlag mit unharmonischen Teiltönen), unmittelbar danach entlüftet der Steller (breitbandiges Zischen), und zuletzt nimmt der Antriebsstrang die Last auf (dumpfer Anteil um 128 Hz). Genau diese getrennte zeitliche Platzierung macht daraus einen Schaltvorgang statt eines allgemeinen Klickens.
Hoch- und Runterschalten sind zwei verschiedene Dateien: beim Runterschalten muss der Steller gegen Motormoment halten, also ist der Luftauslass länger und alles sitzt tiefer. Fehlen die Dateien, springt ein Zweiklang ein: lieber ein Ersatz als Stille.
Boxengasse
Ein Zustandsautomat, zwei Wege hinein (Knopf oder Musterüberfahrt):
off → limited → servicing → off. Der Knopf verlangt keinen
Stillstand mehr, er schaltet den Limiter ein; das Anhalten löst den Service aus, das
Losfahren beendet ihn. Der Limiter hält 80 angezeigte km/h
(Faktor 0,2807), der Wert eines echten Boxengassen-Limiters.
Zustand statt Schaden: der Balken startet voll und grün, jeder Crash
nimmt ein Stück weg. Intern zählt damage weiter von 0 nach oben,
nur die Darstellung ist gedreht, damit keine Crash-, Reparatur- oder Boxenstopp-Rechnung
angefasst werden musste. Ein Balken, der wächst, während es schlechter wird, liest
sich auf einen Blick falsch.
Beim Notlauf steckte ein echter Fehler: leerer Tank und Totalschaden
multiplizierten sich zu 0,0525, während die Losbrechschwelle bei
0,16 liegt. Das Auto fuhr dort nicht langsam, es zuckte: dieselbe Totzone
wie beim Kriechen kurz vor dem Stillstand, nur an anderer Stelle. Der Notlauf hat jetzt eine
Untergrenze statt nur Multiplikationen nach unten: gemessen 0,168.
Streckengeometrie und Ideallinie
Gemessene Maße: ein Streckenteil ist 25 cm breit und 43 cm lang; eine Gerade plus eine 60°-Rechtskurve nehmen zusammen 37×86 cm ein. Löst man den Fußabdruck nach dem Kurvenradius auf, ergibt sich 37 cm: das reproduziert 37,2×85,9 cm. Die Zeichenkonstanten sind daraus abgeleitet, nicht gewählt. Der zuvor per Hand gesetzte Radius von 34 Einheiten entspricht 36,5 cm und liefert 37,0×85,5 cm, war also bereits richtig; er steht jetzt in Zentimetern da, damit er nachprüfbar bleibt.
Die Ideallinie entsteht durch Krümmungsglättung: jeder Punkt wandert wiederholt in Richtung der Mitte seiner Nachbarn, aber nur quer zur Fahrtrichtung, und wird nach jedem Durchlauf auf die Fahrbahn geklemmt. Sie kann die Bahn also nicht verlassen, nachgemessen: größte Abweichung 9,3 cm bei 12,5 cm Halbbreite.
Ein Abbruchkriterium über die Schrittweite war hier falsch, und die Messung zeigte es: bei 14 Abtastpunkten je Teil liegen die Nachbarn 2,9 Einheiten auseinander, die Mitte liegt fast auf dem Punkt selbst, und ein Durchlauf verschiebt um Bruchteile eines Millimeters. Eine 0,5-mm-Schwelle meldete deshalb nach einer Iteration Konvergenz, und die fertige „Ideallinie“ nutzte 1,1 cm einer 25 cm breiten Bahn, war also die Mittellinie mit einer Delle. Der Versatz baut sich erst über viele Durchläufe auf, also wird eine feste Anzahl gerechnet, und ausgegeben wird nicht ein Restwert, sondern wie viel Versatz die Linie tatsächlich nutzt: die Zahl, an der man sieht, ob die Rechnung etwas getan hat.
Was die Linie nicht ist: eine Vorgabe, deren Einhaltung die App prüfen kann. Kein Byte meldet die Querlage des Autos. Die Linie sagt, wo gefahren werden sollte; ob es geschieht, weiß niemand.
Die SIMULATOR-Linie (Standard seit 1.0.15). Die Linienmodelle oben rechnen eine Linie aus einer Regel (Krümmung, Rundenzeit im Punktmassenmodell, Scheitelvorschriften). SIMULATOR fährt stattdessen Linien und behält die schnellste. Ausgangspunkt sind die acht vorhandenen Modelle; daraus entstehen bis zu 200 Kandidaten durch zwei Arten von Abwandlung: die Beule (ein glatter Buckel, der ein Kurvenstück seitlich verschiebt) und die Sehne (ein Stück von bis zu knapp drei Teilen wird durch die gerade Verbindung seiner Endpunkte ersetzt, solange die in der Bahn bleibt – so entsteht die gerade Diagonale durch ein S statt zweier Lenkbewegungen).
Gefahren wird jeder Kandidat drei Runden mit einer stummen Kopie der Fahrphysik deines Autos: Getriebe (Automatik), Reifen und Temperatur, Masse und Tank wie eingestellt. Gas und Bremse folgen dem Tempoplan der Linie; der Lenkeinschlag folgt aus der Krümmung beim Radstand des Autos und kostet über den Reibkreis Zug – eine weitere Linie beschleunigt also früher heraus. Gewertet wird der Schnitt der Runden 2 und 3 (Runde 1 hat den stehenden Start).
Die Schranken der NPCs gelten mit: wo der Tempoplan unter die Leseschwelle (35 %) fallen müsste, fährt ein NPC trotzdem 35 % – das kostet die Linie eine halbe Sekunde je Runde. Und keine Linie darf schneller quer wechseln als die steilste der vorhandenen, die die NPCs schon fahren.
Wann gerechnet wird: gleich nach jeder Änderung an einer geschlossenen Strecke, im Hintergrund (ein drehendes Teil am Rand zeigt „Ideallinie wird berechnet“), in wenigen Sekunden, pausiert während eines Rennens. Das Ergebnis wird je Strecke und Fahrzeug gespeichert; bis es da ist, gilt die Luuke-Linie. Auf offenen Strecken gilt immer die Luuke-Linie.
Was sie nicht ist: eine bewiesene Bestlinie. Die Physik kennt keine Querbeschleunigung (kein Byte meldet sie); wie schnell eine Kurve geht, bleibt die Annahme aus den Fahrwerten. SIMULATOR ist die beste von bis zu 200 gefahrenen Linien – ein getestetes Beispiel. Ob es auf dem Teppich stimmt, sagen Rundenzeit und Abgänge.
Welche Stelle der Linie gilt gerade? Das Auto meldet nur, dass es eine neue Kachel betreten hat – nicht, wo darauf. Die Phase darin kam deshalb aus der verstrichenen Zeit, geteilt durch die gemessene mittlere Dauer dieses Kacheltyps. Eine Dauer vermischt aber Länge und Tempo: beim Anbremsen dauert die Kachel länger als ihr Mittel, die Phase läuft voraus – genau am Kurveneingang, wo sie Ideallinie und Bremsprofil indexiert.
Jetzt kommt sie aus dem Weg: das Tempo wird über die Kachel aufintegriert und durch den gleitenden Mittelwert des wirklich gefahrenen Wegs dieses Kacheltyps geteilt. Der Weg zwischen zwei Zählersprüngen ist eine geometrische Konstante und hängt nicht am Gas. Gegen die wahre Phase der Rennsimulation gemessen: mittlerer Betragsfehler 0,097 → 0,073, Anteil der Takte am Phasendeckel 6,2 → 0 Prozent, je Kachel erreichte Höchstphase 0,86 → 0,95. Solange ein Kacheltyp noch keine zwei Messungen hat, gilt weiter die Uhr; das Fahrerauto bleibt dauerhaft bei ihr, weil es keinen gerechneten Motor hat.
Der Streckencode (z. B. SG2R3G2R3B@90) ist ein Buchstabe
je Element mit Wiederholungszahl, dazu die Ausrichtung: S Start, G Gerade,
R rechts, L links, B Boxengasse. Absichtlich kein Base64: einen Code,
den man nicht lesen kann, kann man auch nicht prüfen.
Wie ein NPC überholt
Vier Phasen: ansage (570 ms, zwei Lichthupenimpulse, das Auto bewegt sich noch nicht) → raus (400 ms zur Seite) → vorbei (volle Seite, mit Schub) → rein (700 ms zurück auf die Linie). Ein Verfolger, der 1,3 Kacheln oder näher heranrückt, klebt 900 ms und würfelt dann alle 1200 ms mit 45 Prozent – im Mittel ein Versuch alle 2,7 s.
Erfolg misst der Fortschritt, nicht die Uhr: vorbei ist, wer den anderen um 0,45 Kacheln Streckenfortschritt überholt hat – nicht nach einer festen Zeit. Klappt es in 5 s nicht, bricht das Manöver ab und sperrt sich selbst für 6 s. Die Seite ist die, auf der der andere nicht ist, gelesen aus dessen gemeldeter Querlage.
Während eines Manövers ersetzt der Versatz die Ideallinie, er addiert nicht. Vorher stand der Versatz des Angreifers gegen die volle Linie des Vorausfahrenden, beide hoben sich auf – die gemeldete Folge war „die Autos haben sich ewig gegenseitig angeschoben“. Jetzt: Angreifer voll auf seine Seite, Vorausfahrender voll auf die andere, die Mitte bleibt leer, die Ideallinie ist währenddessen nicht abgeschwächt, sondern gar nicht zuständig. Gesperrt ist eine Attacke in eine Haarnadel oder Engstelle hinein sowie unter gelber Flagge.
Warum die Abstandsregel in Zeit rechnet und nicht in Kacheln: der Kachelabstand hat unterhalb einer Fahrzeuglänge praktisch keine Auflösung – in 276 gemessenen Fällen darunter meldete er jedes Mal genau 1,0 Kacheln. Ein Sweep der Zeitlücke (90 s, vier Autos):
| Zeitlücke | Überholt/min | Berührt/min | Zeit in Berührung |
|---|---|---|---|
| 0,35 s | 25,8 | 53,5 | 86 % |
| 1,2 s (heute) | 22,5 | 32,5 | 61 % |
Alle Zahlen aus der Rennsimulation, nicht vom Teppich – kein Byte meldet die wirkliche Querlage eines echten Autos. Ausführlich mit allen Konstanten in CARRERA_HYBRID.md.
Wie der simulierte Antrieb klingt
Ein kompletter Fahrzyklus: Anlasser, Leerlauf, Vollgas-Start durch alle sechs Gänge, dann Anbremsen mit fünf Rückschaltungen und zurück in den Leerlauf, rund 10 Sekunden. Beim Hochschalten fällt die Drehzahl, beim Runterschalten springt sie hoch, weil der kürzere Gang den Motor bei gleicher Geschwindigkeit schneller dreht. Das kurze Bellen dabei ist Zwischengas: echte GT3-Getriebe gleichen die Drehzahl beim Runterschalten an.
Alle Motoren und alle Effekte oben sind vollständig synthetisch: Zündimpulse, gefaltet mit der Resonanz des Auspuffkrümmers, nach dem Vorbild von ange-yaghi/engine-sim (MIT). Der Unterschied zwischen den Fahrzeugen kommt nicht aus der Tonhöhe, sondern aus den Zündabständen: ein gleichmäßig zündender Sechszylinder zündet alle 120°, der Cross-Plane-V8 dagegen ungleichmäßig innerhalb jeder Bank, daher das Blubbern. Der Crash ist bewusst dumpf gehalten: ein GT3-Kontakt ist Carbon, das den Stoß schluckt, kein splitterndes Glas.
Nicht jeder Klang in der App ist das. Die Strecken-Ambience und die sechs Hupen sind
aus lizenzfreien Pixabay-Aufnahmen geschnitten, nicht gerechnet: die Pixabay-Lizenz
erlaubt das, und es gab keinen Grund, nachzubauen, was eine gute Aufnahme schon liefert. Die
unbearbeiteten Quelldateien sind nicht Teil des Repos, nur die geschnittenen Ableitungen.
Die Motoren dagegen sind alle gerechnet, keiner ist eine Aufnahme.
Vollständige Aufschlüsselung, Datei für Datei: audio/CREDITS.md.
Die einzelnen Effekte, Bremse, Crash, Schlagschrauber, Anlasser: stehen vollständig und mit Herkunftsangabe unter Töne weiter unten.
Töne
Jeder Ton der App, zum Anhören, mit seiner Herkunft. Der Unterschied ist wichtig: das eine ist gerechnet, das andere ist Aufnahmematerial.
Ereignisse
vollständig synthetisiert, Anstieg 8–14 ms, damit es klunkt statt zu klicken
vollständig synthetisiert
vollständig synthetisiert, als Schleife nach Bremsdruck eingeblendet
Aufnahme aus Speed Dreams 2.4: Bidone, Freesound 66048 (CC0), als Schleife nach Tempo eingeblendet
vollständig synthetisiert, als Schleife nach Reibkreis-Ausnutzung eingeblendet. Eine Größenordnung tiefer und breiter als das Bremsenquietschen: Schwerpunkt 1473 statt 3382 Hz
vollständig synthetisiert: vier Varianten, weil dieselbe Aufnahme bei mehreren Berührungen als Fehler klingt
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
Aufnahme aus Speed Dreams 2.4 (CC0), ersetzt die gerechneten Varianten, wenn geladen (WIP)
Aufnahme aus Speed Dreams 2.4 (CC0), ersetzt die gerechneten Varianten, wenn geladen (WIP)
Aufnahme aus Speed Dreams 2.4 (CC0), ersetzt die gerechneten Varianten, wenn geladen (WIP)
Aufnahme aus Speed Dreams 2.4 (CC0), ersetzt die gerechneten Varianten, wenn geladen (WIP)
Aufnahme aus Speed Dreams 2.4, Free Art License 1.3; bei den Schubknallern statt des Rauschstoßes, leicht verstimmt (WIP)
vollständig synthetisiert, gleichmäßiger Hammerzug um 26 Hz
vollständig synthetisiert, Schleife
vollständig synthetisiert, Abklingzeit 1,9 ms im Median, also Dämpfer statt Note
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
Hupen für die Lichthupe
Wählbar in den Optionen, Standard aus. Alle fünf sind auf dieselbe Lautheit gebracht und nicht auf dieselbe Spitze: bei Spitzennormalisierung verschwindet der kurze Furz gegen die durchgehend laute Schiffshupe. Und geschnitten wird auf das laute Ereignis, nicht auf die erste Nicht-Stille: die Ziege meckert in der Quelldatei erst nach 3,3 Sekunden.
aus einer Pixabay-Aufnahme geschnitten
aus einer Pixabay-Aufnahme geschnitten
aus einer Pixabay-Aufnahme geschnitten
aus einer Pixabay-Aufnahme geschnitten
aus einer Pixabay-Aufnahme geschnitten
aus einer Pixabay-Aufnahme geschnitten (freesound community). Die Rohdatei hatte 0,24 s Vorlaufstille; gemessen liegt die gesamte Energie zwischen 0,244 und 0,41 s, der Schnitt auf 0,163 s enthält also alles davon
Warntöne
Diese beiden liegen als Code vor, nicht als Datei: sie werden aus zwei Sinusschwingungen und einer Hüllkurve gerechnet, was weniger Platz braucht als eine Datei und ohne Laden funktioniert. Die Knöpfe spielen genau denselben Pfad wie das Spiel.
Gebaut wie ein Gurtwarner im Auto: feste Tonhöhe (660 Hz, eine Quinte leise darüber), zwei kurze Impulse von 75 ms mit weichen Flanken. Die vorherige Fassung war eine fallende Rutsche, und eine fallende Tonhöhe liest sich als „etwas läuft aus“, falsch für einen Stand, der weiter sinkt, bis man etwas tut. Die Anzahl trägt die Dringlichkeit, damit man zum Unterscheiden nicht hinsehen muss.
Motoren
Je Motor vier Drehzahlbänder, die nach Drehzahl überblendet werden, und eine Schubschleife, die parallel dazu nach Last eingeblendet wird. Die Drehzahl in Klammern ist die Basis: dort klingt die Schleife unverstimmt. Es sind vier und nicht drei Bänder, und der Grund ist gemessen: die Abspielrate ist auf eine Oktave nach jeder Seite begrenzt, Leerlauf und Mittelband lagen aber 2,2 Oktaven auseinander. Im unteren ersten Gang war deshalb immer mindestens eine hörbare Schleife am Anschlag und damit verstimmt – bei 5000/min trug das Leerlaufband noch 12 Prozent Gewicht bei einer Rate, die auf ein Drittel des Verlangten geklemmt war. Das neue Band liegt beim geometrischen Mittel, damit beide Sprünge gleich groß werden; gemessen ist danach kein hörbares Band mehr geklemmt.
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
Aufnahme des Nutzers (photos/25648.mp4), Drehzahl aus der Video-Anzeige
Aufnahme des Nutzers (photos/25648.mp4), aus dem Mittelband abwaerts gerechnet
Aufnahme des Nutzers (photos/25648.mp4), Drehzahl aus der Video-Anzeige
Aufnahme des Nutzers (photos/25648.mp4), Drehzahl aus der Video-Anzeige
Aufnahme des Nutzers (photos/25648.mp4), aus dem Mittelband abgedunkelt
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, nicht nach Gehör geprüft
vollständig synthetisiert, Geometrie recherchiert statt aus einer Tabelle uebernommen, nicht nach Gehör geprüft
vollständig synthetisiert, Geometrie recherchiert statt aus einer Tabelle uebernommen, nicht nach Gehör geprüft
vollständig synthetisiert, Geometrie recherchiert statt aus einer Tabelle uebernommen, nicht nach Gehör geprüft
vollständig synthetisiert, Geometrie recherchiert statt aus einer Tabelle uebernommen, nicht nach Gehör geprüft
vollständig synthetisiert, Geometrie recherchiert statt aus einer Tabelle uebernommen, nicht nach Gehör geprüft
vollständig synthetisiert, Geometrie recherchiert statt aus einer Tabelle uebernommen, nicht nach Gehör geprüft
vollständig synthetisiert, Geometrie recherchiert statt aus einer Tabelle uebernommen, nicht nach Gehör geprüft
vollständig synthetisiert, Geometrie recherchiert statt aus einer Tabelle uebernommen, nicht nach Gehör geprüft
vollständig synthetisiert, Geometrie recherchiert statt aus einer Tabelle uebernommen, nicht nach Gehör geprüft
vollständig synthetisiert, Geometrie recherchiert statt aus einer Tabelle uebernommen, nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v8_formula.wav): Heigh-hoo, Freesound 128611 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v8_formula.wav): Heigh-hoo, Freesound 128611 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v8_formula.wav): Heigh-hoo, Freesound 128611 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v8_formula.wav): Heigh-hoo, Freesound 128611 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v8_formula.wav): Heigh-hoo, Freesound 128611 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v10_raw.wav): kevp888, Freesound 649889 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v10_raw.wav): kevp888, Freesound 649889 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v10_raw.wav): kevp888, Freesound 649889 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v10_raw.wav): kevp888, Freesound 649889 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v10_raw.wav): kevp888, Freesound 649889 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v10_raw.wav): kevp888, Freesound 649889 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v8-ears68.wav): Ears68, Freesound 260445 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v8-ears68.wav): Ears68, Freesound 260445 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v8-ears68.wav): Ears68, Freesound 260445 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v8-ears68.wav): Ears68, Freesound 260445 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v8-ears68.wav): Ears68, Freesound 260445 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v8-ears68.wav): Ears68, Freesound 260445 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v8-cr4sht3st.wav): cr4sht3st, Freesound 157144 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v8-cr4sht3st.wav): cr4sht3st, Freesound 157144 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v8-cr4sht3st.wav): cr4sht3st, Freesound 157144 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v8-cr4sht3st.wav): cr4sht3st, Freesound 157144 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v8-cr4sht3st.wav): cr4sht3st, Freesound 157144 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v8-cr4sht3st.wav): cr4sht3st, Freesound 157144 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v12_raw.wav): cheesepuff, Freesound 112075 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v12_raw.wav): cheesepuff, Freesound 112075 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v12_raw.wav): cheesepuff, Freesound 112075 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v12_raw.wav): cheesepuff, Freesound 112075 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v12_raw.wav): cheesepuff, Freesound 112075 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v12_raw.wav): cheesepuff, Freesound 112075 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v12_smooth2.wav): cheesepuff, Freesound 112075 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v12_smooth2.wav): cheesepuff, Freesound 112075 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v12_smooth2.wav): cheesepuff, Freesound 112075 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v12_smooth2.wav): cheesepuff, Freesound 112075 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v12_smooth2.wav): cheesepuff, Freesound 112075 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/v12_smooth2.wav): cheesepuff, Freesound 112075 (CC0), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/toro-rgt.wav): Speed-Dreams-Team, Free Art License 1.3 (artlibre.org/licence/lal/en), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/toro-rgt.wav): Speed-Dreams-Team, Free Art License 1.3 (artlibre.org/licence/lal/en), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/toro-rgt.wav): Speed-Dreams-Team, Free Art License 1.3 (artlibre.org/licence/lal/en), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/toro-rgt.wav): Speed-Dreams-Team, Free Art License 1.3 (artlibre.org/licence/lal/en), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/toro-rgt.wav): Speed-Dreams-Team, Free Art License 1.3 (artlibre.org/licence/lal/en), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/sound/toro-rgt.wav): Speed-Dreams-Team, Free Art License 1.3 (artlibre.org/licence/lal/en), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/cars/models/ls1-vulture-v5r/v5r-v8.wav): Speed-Dreams-Team, GPL-2.0 oder später, nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/cars/models/ls1-vulture-v5r/v5r-v8.wav): Speed-Dreams-Team, GPL-2.0 oder später, nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/cars/models/ls1-vulture-v5r/v5r-v8.wav): Speed-Dreams-Team, GPL-2.0 oder später, nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/cars/models/ls1-vulture-v5r/v5r-v8.wav): Speed-Dreams-Team, GPL-2.0 oder später, nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/cars/models/ls1-vulture-v5r/v5r-v8.wav): Speed-Dreams-Team, GPL-2.0 oder später, nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/cars/models/ls1-vulture-v5r/v5r-v8.wav): Speed-Dreams-Team, GPL-2.0 oder später, nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/cars/models/sc-lynx-220/sc-lynx-220.wav): Speed-Dreams-Team, Free Art License 1.3 (artlibre.org/licence/lal/en), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/cars/models/sc-lynx-220/sc-lynx-220.wav): Speed-Dreams-Team, Free Art License 1.3 (artlibre.org/licence/lal/en), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/cars/models/sc-lynx-220/sc-lynx-220.wav): Speed-Dreams-Team, Free Art License 1.3 (artlibre.org/licence/lal/en), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/cars/models/sc-lynx-220/sc-lynx-220.wav): Speed-Dreams-Team, Free Art License 1.3 (artlibre.org/licence/lal/en), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/cars/models/sc-lynx-220/sc-lynx-220.wav): Speed-Dreams-Team, Free Art License 1.3 (artlibre.org/licence/lal/en), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/cars/models/sc-lynx-220/sc-lynx-220.wav): Speed-Dreams-Team, Free Art License 1.3 (artlibre.org/licence/lal/en), nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/cars/models/sc-fmc-gt4/sc-fmc-gt4.wav): Speed-Dreams-Team, GPL-2.0-or-later, nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/cars/models/sc-fmc-gt4/sc-fmc-gt4.wav): Speed-Dreams-Team, GPL-2.0-or-later, nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/cars/models/sc-fmc-gt4/sc-fmc-gt4.wav): Speed-Dreams-Team, GPL-2.0-or-later, nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/cars/models/sc-fmc-gt4/sc-fmc-gt4.wav): Speed-Dreams-Team, GPL-2.0-or-later, nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/cars/models/sc-fmc-gt4/sc-fmc-gt4.wav): Speed-Dreams-Team, GPL-2.0-or-later, nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/cars/models/sc-fmc-gt4/sc-fmc-gt4.wav): Speed-Dreams-Team, GPL-2.0-or-later, nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/cars/models/sc-boxer-96/sc-boxer-96.wav): Speed-Dreams-Team, GPL-2.0-or-later, nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/cars/models/sc-boxer-96/sc-boxer-96.wav): Speed-Dreams-Team, GPL-2.0-or-later, nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/cars/models/sc-boxer-96/sc-boxer-96.wav): Speed-Dreams-Team, GPL-2.0-or-later, nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/cars/models/sc-boxer-96/sc-boxer-96.wav): Speed-Dreams-Team, GPL-2.0-or-later, nicht nach Gehör geprüft
Aufnahme aus Speed Dreams 2.4 (data/cars/models/sc-boxer-96/sc-boxer-96.wav): Speed-Dreams-Team, GPL-2.0-or-later, nicht nach Gehör geprüft
Aufnahme des Nutzers (photos/newaudio/amg_gt3.mp4), Drehzahl aus der Video-Anzeige
Aufnahme des Nutzers (photos/newaudio/amg_gt3.mp4), Drehzahl aus der Video-Anzeige
Aufnahme des Nutzers (photos/newaudio/amg_gt3.mp4), Drehzahl aus der Video-Anzeige
Aufnahme des Nutzers (photos/newaudio/amg_gt3.mp4), Drehzahl aus der Video-Anzeige
Aufnahme des Nutzers (photos/newaudio/amg_gt3.mp4), aus dem Mittelband abgedunkelt
Aufnahme des Nutzers (photos/newaudio/huracan_gt3_evo.mp4), Drehzahl aus der Video-Anzeige
Aufnahme des Nutzers (photos/newaudio/huracan_gt3_evo.mp4), Drehzahl aus der Video-Anzeige
Aufnahme des Nutzers (photos/newaudio/huracan_gt3_evo.mp4), Drehzahl aus der Video-Anzeige
Aufnahme des Nutzers (photos/newaudio/huracan_gt3_evo.mp4), Drehzahl aus der Video-Anzeige
Aufnahme des Nutzers (photos/newaudio/huracan_gt3_evo.mp4), Drehzahl aus der Video-Anzeige
Aufnahme des Nutzers (photos/newaudio/huracan_gt3_evo.mp4), aus dem Mittelband abgedunkelt
Vollständige Herkunftsangaben in audio/CREDITS.md.
Audio-Engine
Alle zehn Motoren sind vollständig synthetisch: es wird keine Aufnahme wiedergegeben. Modelliert nach dem Ansatz von ange-yaghi/engine-sim (MIT-Lizenz):
- Zündereignisse statt Klangfarbe: pro Arbeitstakt ein Druckimpuls. Beim V8 mit ebener Kurbelwelle zünden die Bänke ungleichmäßig, daraus entsteht das typische Blubbern von selbst, es wird nicht nachgebaut.
- Faltung mit einer Auspuff-Impulsantwort. Die Faltung ist zyklisch gerechnet, damit die Schleife am Ende exakt wieder auf den Anfang passt.
- Ventiltriebgeräusch im Nockenwellentakt, mit Streuung in Zeit und Stärke, plus weiche Sättigung und Fehlzündungen im Schiebebetrieb.
In der App laufen drei Schleifen (Leerlauf, Mitte, hoch) gleichzeitig und werden überblendet;
die Tonhöhe kommt aus playbackRate, die Gewichte summieren sich exakt auf 1,
damit die Lautstärke beim Überblenden nicht atmet.
Corvette C6, Strecken-Ambience, Regen und Donner sind dagegen aus lizenzfreien Pixabay-Aufnahmen
geschnitten. Welche Datei woher stammt, steht in audio/CREDITS.md.
Das Einspurmodell und der Modus Pacejka
Das Einspurmodell fasst je Achse beide Räder zu einem zusammen und rechnet aus Lenkwinkel und Tempo Gierrate, Schwimmwinkel und die Schräglaufwinkel beider Achsen, halbimplizit im Sendetakt. Eingang ist der Winkel, der wirklich gesendet wird. Die Proben laufen als Selbsttests: der Kleinwinkel-Grenzfall trifft die reine Geometrie auf 0,01 bis 1,07 Prozent, der Sprungversuch schwingt ein und nicht auf (auch mit vierfach überhöhter Schräglaufsteifigkeit), und der Eigenlenkgradient fällt aus der stationären Kreisfahrt genau heraus.
Was die Anzeige zeigt, und warum nicht mehr
Der BETRAG der gerechneten Querbeschleunigung taugt nicht als Anzeige. Gemessen bei 120 km/h und 28,8 Grad Einschlag: 212 m/s², also 21 g – richtig gerechnet, denn 28,8 Grad bei 120 km/h sind ein Radius von fünf Metern. Der Widerspruch steckt in den Eingängen: der Lenkbereich bis 45 Grad gehört zu einem Modellauto, die angezeigten km/h zu einem echten.
Das Cockpit zeigt deshalb die Gierrate in Grad je Sekunde und ihr Verhältnis zum stationären Wert: 100 % heißt eingeschwungen, mehr heißt „dreht noch ein“, weniger „schiebt“. Ein Verhältnis zweier Modellgrößen ist vom Skalenwiderspruch unberührt. Im Modus Pacejka steht dahinter, ob gerade unter- oder übersteuert wird.
Die Schräglaufsteifigkeit wächst unterlinear mit der Achslast. Wäre sie strikt proportional, kürzte sich der Eigenlenkgradient für JEDE Verteilung weg, und jedes Layout wäre als neutral gemeldet worden.
Instrument, nicht Aktor
Im Modus Physik stellt das Einspurmodell die Lenkung nicht. Es rechnet den Kurvenschräglauf, also das Wegdriften aus Seitenkraft – das echte Auto macht diese Bewegung selbst, und die App bekäme sie nur als zweite, gerechnete Kopie. Wo das Modellauto wirklich ausbricht (Vollgas aus dem Stand auf glattem Boden), sind es durchdrehende Räder und keine Kurvendrift. Der Drift-Modus regelt deshalb gegen das gemessene Drehsignal des Autos und nicht gegen dieses Modell. Das Reifenquietschen läuft über die Querausnutzung des Reibkreises und setzt bei 60 Prozent ein.
Pacejka: die Reifenkennlinie experimentell
Die Magic Formula (Pacejka & Bakker, 1992) beschreibt die Seitenkraft eines Reifens über seinem Schräglauf. Hier normiert, sodass der Scheitel bei u = 1 liegt:
y(u) = sin(C · atan(B·u − E·(B·u − atan(B·u)))), C = 1,3, E = −0,5
u ist die Ausnutzung einer Achse, geteilt durch die einstellbare Haftgrenze (Vorgabe 70 %). Sie kommt aus der gefahren kalibrierten Querausnutzung des Reibkreises und nicht aus dem Einspurmodell, weil dort der Skalenwiderspruch jeden Reifen weit hinter den Scheitel legen würde. Je Achse verschieben Achslast und Antrieb die Grenze: Gas entlastet vorn und kostet hinten Seitenhalt, Bremsen entlastet hinten, Regen und kalte Reifen senken beide. Das Heck hat 20 % Reserve – ab Werk leicht untersteuernd, wie fast jedes Auto.
| Zustand | Was mit dem Lenkbefehl passiert | Rückmeldung |
|---|---|---|
| unter der Grenze | nichts, exakt wie Physik | – |
| Untersteuern (vorn jenseits) | Winkel gekürzt auf y(u)/u: mehr Einschlag bringt nichts, jenseits des Scheitels sogar weniger | leises Brummen, Quietschen |
| Übersteuern (hinten weiter jenseits als vorn) | bis 0,35 Einschlag in die Kurve dazu; Gegenlenken fängt es, der Zuschlag klingt ab | kräftiger Stoß, Quietschen |
Was Pacejka am Fahrgefühl ändert: Im Modus Physik endet das Limit weich – der Reibkreis nimmt Gas und Bremse weg, aber der Einschlag kommt an. Mit Pacejka hat das Limit eine Kante: überfahrene Kurven schieben geradeaus, Anbremsen in die Kurve lässt das Heck kommen. Die Haftung des echten Modellautos ändert sich dabei nicht, nur was es befohlen bekommt. Haftgrenze und Heckreserve sind geschätzt und am echten Auto abzustimmen; das Übersteuern hat einen eigenen Schalter.
Unverändert geblieben ist der Modus Physik: ein Selbsttest vergleicht Servo- und Temposummen einer festen Fahrt mit den Werten vor dem Einbau von Pacejka.
Die Gleichungen
Der stationaere Lenkwinkel setzt sich aus dem geometrischen Anteil und dem Eigenlenkanteil zusammen. L ist der Radstand, R der Kurvenradius, ay die Querbeschleunigung und Ku der Eigenlenkgradient:
δ = L / R + Ku · ay
Ku ist positiv beim untersteuernden Auto, null beim neutralen, negativ beim uebersteuernden. Er folgt aus den Achslasten und den Schraeglaufsteifigkeiten:
Ku = mv / Cv − mh / Ch
Die Gierdynamik ist das Momentengleichgewicht um die Hochachse. Iz ist das Traegheitsmoment, r die Gierrate, lv und lh die Abstaende der Achsen vom Schwerpunkt:
Iz · ṛ = Fy,v · lv − Fy,h · lh
Die Achsquerkräfte kommen im Einspurmodell linear aus den Schräglaufwinkeln (F = Cα · α). Den Bereich jenseits des Maximums beschreibt die Pacejka-Kennlinie darüber.
Die drei Layouts
Die Zahlen sind Schaetzungen aus der Fahrzeugklasse und keine Messungen. Sie stehen hier, damit die Wahl nachvollziehbar ist – und weil ein Modell mit drei Bauformen mehr zeigt als eines mit einer.
| Fahrzeug | Motorlage | Achslast v/h | Iz |
|---|---|---|---|
| BMW M4 GT3 | Frontmotor | 50 : 50 | ≈ 2500 kg·m² |
| Ferrari 296 GT3 | Mittelmotor | 44 : 56 | ≈ 1800 kg·m² |
| Porsche 911 GT3 R | Heckmotor | 39 : 61 | ≈ 2200 kg·m² |
Der Heckmotor hat die groesste Hinterachslast und damit den kleinsten Eigenlenkgradienten: er dreht leichter ein und wird am Kurvenausgang unruhig. Der Mittelmotor hat das kleinste Traegheitsmoment und reagiert am schnellsten auf einen Lenkbefehl. Beides zeigt der Gierratenzeiger im Cockpit.
Schrittweite und Stabilitaet
Gerechnet wird im Sendetakt, also mit 45 Millisekunden. Das ist grob: die Gierdynamik eines Fahrzeugs hat Zeitkonstanten um 0,2 bis 0,5 Sekunden, und ein explizites Euler-Verfahren wird bei 45 ms an der Grenze instabil, sobald die Schraeglaufsteifigkeit hoch wird. Gerechnet wird deshalb halbimplizit: der Schritt bleibt bei jeder Steifigkeit stabil. Die Physik kostet gemessen 6,7 Mikrosekunden je Takt, also 0,015 Prozent des Sendeintervalls – Rechenzeit ist hier keine Grenze, und deshalb waere ein Sparen an der Schrittweite falsch begruendet.
Womit man es prueft
Das ist der Teil, der bei einem Physikblock am haeufigsten fehlt. Die Probe ist eine stationaere Kreisfahrt: festes Tempo, fester Radius, warten bis sich die Gierrate nicht mehr aendert. Dann gilt die erste Gleichung, und der Eigenlenkgradient faellt aus zwei Messpunkten heraus:
Ku = (δ2 − δ1) / (ay,2 − ay,1)
Kommt der herausgerechnete Wert nicht auf den eingestellten heraus, ist irgendwo ein Vorzeichen oder eine Achslast falsch – und zwar messbar, nicht nach Gefuehl. Die zweite Probe ist der Sprungversuch: Lenkwinkel schlagartig anlegen, Gierrate mitschreiben. Sie muss auf ihren stationaeren Wert einschwingen und nicht aufschwingen; tut sie das, ist die Schrittweite zu grob.
Und eine dritte, die nichts kostet: bei sehr kleinem Lenkwinkel und niedrigem Tempo muss das Modell dasselbe sagen wie die reine Geometrie, also L / R. Ein Modell, das im einfachsten Fall von der Schulformel abweicht, ist an einer Stelle falsch, die man ohne diese Probe lange nicht findet.
Mustererkennung: Paketvarianten testen
In sieben aufgezeichneten Fahrten hat das Auto keinen einzigen Streckencode gemeldet, während der Mitschnitt der Original-App voll davon ist. Das Schreibpaket im Moment des ersten Codes dort ist byteweise die Form, die wir senden: im Dauerbetrieb unterscheidet uns also nichts. Was die Original-App aber zusätzlich gesendet hat und wir nie:
keine Variante aktiv
So testen: Variante wählen, dann langsam über ein Muster fahren:
Start/Ziel, ein Streckenteil oder den Boxengassen-Ausdruck. Die Anzeige
zählt, ob Byte 12 den Wert 0xff verlässt. Sobald irgendwo eine
Zahl größer null steht, ist die Ursache gefunden. Jede Variante behält eine
gültige Prüfsumme, ein Fehlschlag ist also ein echtes Ergebnis und kein
verworfenes Paket.
Die vier Varianten „Licht an + Bit …“ sind anders zu prüfen: nicht mit Byte 12, sondern mit dem Auge. Scheinwerfer einschalten, eine Variante wählen, aufs Auto schauen – wird das Vorderlicht heller, dunkler, oder ändert sich nichts? Byte 14 hat nach heutigem Stand genau ein Scheinwerfer-Bit; diese vier probieren aus, ob eines der bisher unbeobachteten Bits eine zweite Helligkeitsstufe auslöst. Ohne Auto ist hier nichts zu sehen.
Telemetrie aufzeichnen
Zeichnet jedes Paket in beiden Richtungen auf, was das Auto meldet und was die App sendet: mit Zeitstempel, und exportiert es als CSV. Damit ist kein btsnoop nötig: die Datei ist bereits beschriftet und entschlüsselt.
Abschnitt markieren: vor jedem Manöver den passenden Knopf drücken. Taste M setzt den nächsten Abschnitt.
Mapping
Wähle die Characteristic, an die Lenk-/Gas-Kommandos geschrieben werden sollen (wird beim Verbinden automatisch auf NUS RX gesetzt).
Verbindung
Web Bluetooth erlaubt standardmäßig nur Zugriff auf Services, die vorab bekannt sind. Da wir das genaue Carrera-Protokoll noch nicht kennen, versuchen wir es unten mit einer Liste gängiger Custom-Service-UUIDs (Nordic UART, HM-10/FFE0, FFF0 etc.): falls dein Auto eine andere UUID benutzt, füge sie manuell hinzu.
Tipp: Öffne in Chrome chrome://bluetooth-internals/#devices: dort siehst du alle Services/Characteristics deines Autos ohne diese Einschränkung. Wenn du mir die dort angezeigten UUIDs (Service + Characteristics + Eigenschaften: read/write/notify) gibst, kann ich die Steuerung direkt korrekt verdrahten.
GATT-Baum
Eigener Verbindungsweg, nur zum Erkunden. Er legt kein Auto in der Garage an und wird zum Fahren nicht gebraucht.
Noch keine Verbindung.
Protokoll-Labor (NUS RX/TX)
Schreibt frei konfigurierbare Byte-Pakete an NUS RX (6e400002) und zeigt gleichzeitig alle
Notify-Werte von NUS TX (6e400003) an, damit du live sehen kannst, was das Auto zurückmeldet,
während du Kombinationen ausprobierst.
Bekannt (aus einer unabhängigen Reverse-Engineering-Runde zum selben Auto, per BLE-Sniffer ermittelt):
echte Kommando-Pakete sind 20 Byte lang (2 Byte Präfix + 17 Datenbytes + 1 Prüfsumme), gesendet alle
~45ms. Byte-Offset 6 = Gas/Bremse (0xDF=Leerlauf, größer=Gas, kleiner=Bremse). Die Prüfsumme
ist noch nicht geknackt, deshalb unten zuerst das echte, garantiert gültige Leerlauf-Paket laden
und unverändert wiederholt senden (reproduziert dieselbe gültige Prüfsumme, ohne sie berechnen zu müssen).
80 80
ms
Live-Log
Querablage messen
Die Ideallinie schickt einen Lenkanteil hinaus und nimmt an, dass das Auto dadurch weiter aussen oder innen sitzt. Wieviel das ist, meldet kein Byte. Diese Messung ersetzt das Raten: sie schickt einen festen Lenkanteil und erhöht ihn in Stufen, bis das Auto die Bahn verlässt. Der letzte Wert, der noch hielt, ist der brauchbare Bereich: und der Wert, bei dem es kippt, sagt, wie viel Lenkanteil einer halben Bahnbreite entspricht.
Ablauf: Auto in der Garage verbinden, unten auf „Messung starten“ drücken. Das Auto fährt mit festem, langsamem Gas und hält jede Stufe so lange, wie unten eingestellt ist. Verlässt es die Bahn, wird die Stufe festgehalten und die Messung endet. Wenn du es siehst, bevor die App es merkt: „runtergefahren“ drücken.
Haltedauer je Stufe: 4 s
- Eine möglichst lange Gerade aufbauen, mindestens vier Teile. In einer Kurve misst du die Kurve mit und nicht den Lenkanteil.
- Genug Platz neben der Bahn lassen: das Auto soll abfliegen dürfen, ohne gegen ein Tischbein zu fahren.
- In der Garage genau ein Auto auf „NPC“ stellen. Bei zwei Autos mischen sich Ausweichversatz und Messung.
- Sonst nichts abschalten. Der Messstand sendet mit eigenem Takt, also sind Tempo, Ideallinie und Würze der NPCs während der Messung ohne Wirkung.
- Auf „Messung starten“ drücken. Nach jeder Stufe fährt das Auto weiter und der Lenkanteil steigt; beim ersten Abflug ist die Messung fertig.
- Kommt es bis zum Anschlag, ohne abzufliegen, ist das auch ein Ergebnis: dann hält das Auto jeden Lenkanteil, und der Deckel darf auf den höchsten gehaltenen Wert.
- Zwei- oder dreimal wiederholen. Ein einzelner Abflug kann ein Staubkorn gewesen sein.
0.00
0
–
0
| Lenkanteil | von 127 | Kacheln gehalten | Ergebnis |
|---|---|---|---|
| noch nichts gemessen | |||
Was die Zahl bedeutet und was nicht. Sie sagt, welcher Lenkanteil das Auto gerade noch auf der Bahn hält, nicht, um wie viele Zentimeter es dabei versetzt liegt. Der Zusammenhang zwischen beiden ist nicht gemessen und wird hier nicht behauptet. Brauchbar ist sie trotzdem: die Ideallinie und die Überholmanöver dürfen nie mehr als etwa die Hälfte des Kippwerts anfordern, und das ist eine Grenze, die vorher nicht bekannt war.
Lenkmessung NPCs die offene Frage
Wertet das Auto im Bahn-Modus einen gesendeten Lenkbefehl überhaupt aus?
Davon hängt ab, ob NPC-Ideallinie und Querversatz je mehr als Zierde werden. Sie erreichen zusammen gemessen höchstens 22 von 127 Lenkschritten, und der Kommentar im Code sagt selbst, dass sich das Auto im Bahn-Modus selbst auf der Strecke hält. Die Kippwert-Messung darüber beantwortet das nicht: sie sagt, wann es zu viel ist, nicht ob wenig etwas tut.
Der Versuch: dieselbe Strecke, dieselben NPCs, seitlicher Versatz einmal auf 0 % und einmal auf 100 %. Gezählt werden zwei Zahlen und nicht der Eindruck – Abgänge, also Byte 12 wechselt auf 0x00, und Rundenzeiten. Ändert sich keines von beiden, ignoriert die Firmware die Lenkung.
| Phase | Auto | Runden | Mittel | Beste | Abgänge |
|---|---|---|---|---|---|
| noch nichts gemessen | |||||
Was der Knopf prüft, bevor er startet: mindestens drei Streckenteile, mindestens zwei NPCs, und Bahn-Modus. Unter drei Kacheln liefern die Linienfunktionen null, mit einem NPC bleibt der Querversatz null, und im Ausdruck-Modus hält sich das Auto nicht selbst auf der Bahn. Wer den Versuch so führt, misst garantiert „keine Wirkung“ – aus Gründen, die mit der Frage nichts zu tun haben.
Automatischer Kalibrierungslauf
Sendet eine feste Testsequenz (Lenkung im Stand 0/25/50/75/100% links & rechts, dazu 3 sehr kurze Mini-Vorwärtsschübe bei niedrigem Tempo, eine sanfte Bremse) und wertet parallel die Notify-Bytes 1-3 aus, um zu prüfen, ob das wirklich Gier-/Beschleunigungsdaten vom Auto sind. Läuft komplett automatisch, ohne Physik-Engine (direkte Werte). Passt in ca. 50×20cm, am besten das Auto mittig auf die Fläche stellen oder aufbocken, falls möglich.
Direktsteuerung mit der Maus
Aus dem Cockpit hierher gezogen. Am Telefon wird geneigt oder ein Pad benutzt, am Rechner reichen die Pfeiltasten: aber ohne Pad und ohne Tastatur ist das hier die einzige Mausbedienung, deshalb ist sie nicht gelöscht.
Tastatur: ↑/↓ Gas/Bremse, ←/→ Lenkung, Leertaste Nothalt.
Targets lesen
Zum Herausfinden, was ein Streckenteil wirklich sendet: zum Beispiel die 180-Grad-Haarnadel. Auto verbinden, hier auf Zählen starten, dann langsam von Hand über genau dieses Teil schieben und ablesen, welcher Wert dabei auftaucht.
–
0
–
0
0
–
–
Letztes Paket, Byte für Byte. Byte 11 ist der Kachelzähler, Byte 12 die Kachelart: wenn hier etwas anderes steht als erwartet, liegt der Fehler nicht bei der Auswertung, sondern beim Aufbau des Pakets.
| Byte 12 | bekannt als | Pakete | Anteil |
|---|---|---|---|
| noch nichts gezählt | |||
Wenn hier nur 0xff steht: zuerst den Schalter
Auf der Bahn in den Optionen prüfen. Er setzt Bit 5 in
Byte 14; steht er aus, geht Bit 7 hinaus und das schaltet den
Streckensensor ab, gemessen 0 Lesungen in 551 Fahrmeldungen. Genau dieses
Bit hat diese App zwölf Aufzeichnungen lang gesendet, siehe Doku,
„Auf der Bahn oder ohne Bahn“.
Wie das Uebrige zu lesen ist. Steht Musterkontakt auf 0, hat der Sensor
während der ganzen Messung kein gedrucktes Blatt gesehen, dann liegt es
nicht an der Entschlüsselung, sondern daran, dass nichts zu lesen war. Zählt
der Kachelzähler hoch, obwohl Byte 12 nur 0xff zeigt,
erkennt das Auto Teile, meldet aber ihre Art nicht. Und wenn sich
Byte 3 in Kurven deutlich bewegt, lässt sich eine Kurve daran
erkennen, ganz ohne Barcode.
0xff heißt „gerade keine Lesung“ und ist der
häufigste Wert von allen, das ist normal und kein Fehler.
0x00 heißt „kein Muster erkannt“.
Interessant ist alles andere.
Womit dieses Werkzeug die Haarnadel gefunden hat. Hier stand die Vermutung,
sie melde 0x03 oder 0x04 wie eine normale Kurve und habe
gar keinen eigenen Code. Am 24.08. wurde sie überfahren und meldete
0x06 rechts und 0x05 links, sie hat sehr wohl
eigene Codes, und sie fügen sich in das Muster der anderen:
0x03/0x04 links/rechts für die 60-Grad-Kurve,
0x05/0x06 links/rechts für die Haarnadel. Ein Wert
in dieser Farbe heißt: den kennen wir noch nicht.
Garage
Jedes Auto einzeln per Klick verbinden – Web Bluetooth verlangt das so. Zeigst du auf eine Karte, blinkt das Auto, damit du siehst, welches welches ist.
Eigene Autofotos: am besten quer, z. B. 4:3 oder 16:9.
WLAN Mehrspieler experimentell
Mehrere Telefone, jedes mit eigenem Auto, eine gemeinsame Rangliste. Host ist entweder ein PC mit einem kleinen Python-Programm oder ein Telefon mit der Android-App.
Mehrspieler ist aktuell noch in der Entwicklung und funktioniert nicht fehlerfrei.
Über PC mit Python
- Auf dem PC starten.
Am einfachsten mit einem Doppelklick auf die Startdatei. Sie sucht Python, startet
den Host und schreibt die Adresse hin, unter der er erreichbar ist.
Mehrspieler-Host starten.bat
Wer lieber selbst tippt, öffnet im Projektordner ein Fenster für die
Eingabeaufforderung oder das Terminal und führt diesen Befehl aus:
python tools/omegasim_host.py --port 8080Das Programm selbst liegt im Projekt und ist von hier aus direkt zu öffnen. tools/omegasim_host.py - Die Adresse an die Telefone geben. Sie gehört unten in das Feld „Host-Adresse“ und hat die Form, die dort als Beispiel steht. Alle Geräte müssen im selben WLAN sein.
- Namen eintragen und auf Mitmachen drücken. Der Name steht danach in der Rangliste. Jedes Telefon behält seinen eigenen Namen und seine eigene Kennung, auch nach einem Neuladen.
- Die Übersicht auf den Fernseher.
Der Host liefert dafür eine eigene Seite in großer Schrift:
http://192.168.1.50:8080/mp-overview.htmlSie zeigt die Rangliste und hat einen Knopf zum Zurücksetzen. Sonst nichts: sie ist zum Ansehen aus zwei Metern gedacht und nicht zum Bedienen.
Warum es dafür keinen Knopf in der App gibt. Eine Webseite darf kein Programm auf dem Rechner starten. Das ist keine fehlende Schnittstelle, sondern die Grenze, auf der die Sicherheit des Browsers beruht, und sie fällt auch dann nicht, wenn man die App installiert: eine installierte App bekommt Dateizugriff und Offline-Betrieb, aber niemals das Recht, ein beliebiges Programm auszuführen. Die Startdatei oben ist das Nächste, was daran herankommt – einmal herunterladen, danach genügt ein Doppelklick.
Zwei Dinge, an denen es scheitern kann, und beide liegen nicht an der App. Wird die App über eine verschlüsselte Verbindung geladen – etwa von der Projektseite –, blockiert der Browser jede Verbindung zu einer unverschlüsselten Adresse im WLAN; dann muss die App vom Host selbst geladen werden. Und bis Fassung 0.6.19 fehlten dem Host die Kopfzeilen für fremde Herkunft: Mitmachen ging nur, wenn die App vom Host kam. Wer eine ältere Fassung des Programms laufen hat, holt sie neu.
Warum es experimentell ist, und der Grund ist eine Browserregel und kein Wackeln im Code: Web Bluetooth verlangt einen secure context. Das sind https, http://localhost und file. Eine Adresse wie http://192.168.1.50:8080 ist keiner – die App laedt dort, aber „Auto verbinden“ bleibt ohne Wirkung. Einmal je Telefon muss man in Chrome unter chrome://flags/#unsafely-treat-insecure-origin-as-secure die Adresse des Hosts eintragen und Chrome neu starten. Damit erklaert man diesen einen Ursprung fuer vertrauenswuerdig; im eigenen WLAN mit dem eigenen PC ist das vertretbar, aber es ist eine Ausnahme von einer Sicherheitsregel und keine Einstellung.
Der Ueberblicksschirm fuer den PC liegt beim Host unter /mp-overview.html. Er braucht kein Bluetooth und deshalb auch keine Freigabe: auf http://localhost ist er ohnehin ein secure context.
Über Android-App
Nur in der Android-App: dieses Telefon wird Host, die anderen finden es im WLAN. Im Browser geht das nicht – dort den Weg über den PC nehmen. Wer im Browser mitspielen will, braucht für das Auto die App (Web Bluetooth verlangt einen secure context; das APK hat das eingebaut).
Host experimentell
Ohne PC: ein Telefon ist Host. Die anderen Telefone suchen ihn im WLAN oder tragen die Adresse ein. Ein Tablet oder Fernseher öffnet die Adresse mit /?info im Browser und wird Info-Screen, ganz ohne App.
Beitreten und Rangliste
| Fahrer | Runden | Letzte | Beste | |
|---|---|---|---|---|
| keine Daten | ||||
Ueber die Leitung gehen Rundenzahl, Rundenzeiten und Abgaenge. Keine Physik, keine Lenkwerte: jedes Telefon rechnet seine eigene Physik und haelt seine eigene Bluetooth-Verbindung. Reisst das WLAN ab, faehrt jeder weiter, nur die Rangliste steht still.
Gezaehlt werden GEMESSENE Runden, genau wie in der Rundenliste im Cockpit: die erste Ueberfahrt startet die Uhr, erst die zweite ergibt eine Zeit. Nach drei Ueberfahrten stehen also zwei Runden da. Bei Gleichstand fuehrt, wer zuerst dort war.
OMEGA SIM
Noch keine Strecke gemeldet.
| Fahrer | Runden | Letzte | Beste |
|---|
Rennmodus WIP
Eine Runde zählt, sobald das Auto das Start/Ziel-Muster auf der Strecke überfährt (dasselbe Signal, das auch der Streckenscanner ausliest): kein eigener Sensor in der App.
Aktuell keine Ergebnisse verfügbar. Nach einem Rennen stehen sie hier.
Gefahrene Sitzungen
Nach jedem beendeten Rennen abgelegt, auf diesem Gerät. Gespeichert werden Rundenzeiten, Datum, Streckencode, Modus, die verwendete Abstimmung und die gefahrene Strecke – und zwar zweimal: als simulierte Kilometer, die zum Tacho passen, und als echte Meter, die das Modellauto auf dem Teppich zurückgelegt hat. Nur eine der beiden zu speichern wäre eine willkürliche Wahl.
Die Zuordnung läuft über die Bluetooth-Gerätekennung, damit dasselbe Auto bei anderer Verbindungsreihenfolge dieselben Kilometer behält. Genau deshalb gibt es den Löschknopf.
Einstellungen
Allgemein
Neben der Strecke: der Stopp wird von Hand angefordert und beginnt erst, wenn das Auto neben der Bahn steht (Byte 12 = 0x00). Der Knopf sagt also, DASS ein Stopp kommt, die Bahnkante sagt, WO er anfängt. Nur auf der CH-Schiene sinnvoll – ohne Schiene meldet das Auto ständig „abseits“.
Doppelter Start-Ausdruck: zwei Ausdrucke im Abstand von 50 cm. Kommt der zweite Musterkontakt innerhalb des Zeitfensters (darunter einstellbar, mindestens 1 s nach dem ersten), ist er eine Boxeneinfahrt: keine Runde, keine Zeitansage. Danach piept es, das Tempolimit von 60 km/h gilt 4 s, und ein Anhalten in dieser Zeit startet den Service.
Fahrgefühl
Querlage: das Auto hält sich selbst auf der Bahn, so wie ein autonomer NPC. Dein Lenk-Input bestimmt dabei nur noch, wo auf der Bahn – nach rechts heißt weiter rechts, nicht „mehr einschlagen“.
Voll: wie Querlage, aber das Auto bestimmt auch die Querlage selbst. Lenken tut dann nichts mehr, Gas und Bremse bleiben bei dir.
Beide brauchen eine eingescannte Strecke und die Bahn-Stellung (nicht Ausdruck). Ohne beides steuerst du normal weiter – auch in Voll, denn ohne die Streckendaten würde ein Auto mit gerade gestellten Rädern in die Bande fahren.
Und sobald das Auto keinen Streckencode mehr liest – weil es neben der Bahn liegt –, bekommst du die volle Kontrolle zurück, damit du selbst zurückfahren kannst. Das gilt auch bei gelber Flagge: dort bleibt nur das Tempo gedrosselt, gelenkt wird von dir. Die Umschaltung braucht die Entprellzeit aus „Abseits: Verzögerung“ (ab Werk eine Sekunde), weil ein einzelner Aussetzer beim Überfahren einer Kachelkante sonst als Abflug gelesen würde.
Bei gelber Flagge oder in der Einführungsrunde hält sich das Auto unabhängig von dieser Einstellung selbst – das braucht die Regelung dort, damit sie greifen kann.
Zum Weitergeben: der Text unten enthält alle Regler, auch die, die keine Voreinstellung anfasst. Kopieren, verschicken, einfügen, Übernehmen.
Oder auf diesem Gerät ablegen. Bleibt im Browser, wird nicht mitgeschickt.
noch kein Signal
0 heißt sofort. Am Lenkrad und an der RC-Funke ist das richtig: dort gibt die Hand die Rate vor, und eine zweite Begrenzung dahinter fühlt sich wie Verzögerung an. Am Gamepad ist ein Daumen in etwa 150 ms von der Mitte am Anschlag, und ohne Dämpfung wird daraus ein Sprung am Servo.
Die Vorgabe ist 0 (sofort). Die früheren 83 ms waren nicht gewählt, sondern der alte Wert nachgerechnet: 6,0 Anschläge je Sekunde mal dem kalibrierten Lenkansprechen von 200 % sind 12 je Sekunde. Bis v0.5.40 hing die Zeit zusätzlich am Lenkansprechen – wer es auf 240 % stellte, machte unangekündigt auch die Lenkung schneller, 69 statt 83 ms. Jetzt macht jeder der beiden Regler genau eine Sache.
Ein Fahrzeugwechsel weiter oben setzt diesen Regler mit: das Trägheitsmoment ist die einzige Stelle, an der sich ein leichteres Auto zeigen kann, und es ergibt 56 ms beim Formelwagen bis 125 ms beim Frontmotor-GT3. Danach kannst du frei darüber verfügen.
Ton
Motorwerkstatt
Dieselben elf Größen, aus denen die mitgelieferten Motoren gerechnet sind, nur direkt zum Drehen. Das Modell läuft hier im Browser, also hörst du jede Änderung sofort, ohne dass eine Datei erzeugt werden muss.
Der Klangcharakter kommt aus den Zündabständen, nicht aus einem
Filter: ein gleichmäßig zündender Reihensechser klingt anders als
ein V8 mit Cross-Plane-Kurbelwelle, dessen beide Bänke ungleich zünden.
Und die Resonanz ist keine Einstellung, sondern folgt aus der Rohrlänge:
c / (4 L).
Was aus den Daten kommt und was nicht.
Zylinderzahl, Bauart, Kurbelwelle und Drehzahl stehen in den technischen Angaben, ebenso die Bankaufteilung, die aus der Zündfolge folgt. Hubraum, Bohrung und Hub gehen in dieses Modell nicht ein: es synthetisiert Zündereignisse und rechnet keine Gasdynamik. Rohrlänge, Impuls, Abfall, Sättigung, Klappern, Streuung und Ansauganteil sind nach Gehör gewählt, nicht abgeleitet.
Drei der sieben sind aufgeladen. Dieses Modell hat keinen Lader: Geometrie, Kurbelwelle und Zündfolge stimmen, der Ladedruck fehlt. Der Charakter der Bauart bleibt, das Pfeifen nicht.
Jeder Strich eine Zündung, obere Reihe die eine Bank, untere die andere. Beim Cross-Plane bleibt der Gesamttakt gleichmäßig, die einzelne Bank wird lumpig, und weil jede Bank ihren eigenen Krümmer hat, entsteht daraus das Blubbern. Beim Reihenmotor gibt es nur eine Reihe. Die Zahlen zwischen den Strichen sind die Abstände derselben Bank in Grad.
Ein einzelner Druckimpuls, durch das Rohr geschickt und gesättigt. Seine Breite kommt vom Regler Impulslänge, sein Abklingen vom Regler Abfall, und die gekappten Spitzen sind die Sättigung. Grau der rohe Impuls, orange derselbe nach Rohr und Sättigung.
Das Frequenzbild des Rohrs. Die blaue Marke ist die Viertelwellenresonanz
c/(4L), die rote die Zündrate bei der eingestellten Drehzahl.
Liegen sie nah beieinander, dröhnt es.
Nicht im Bild, weil man sie nur hört: Klappern, Ansauganteil und Last.
Speichern und austauschen
Ablegen speichert im Browser, bleibt also auf diesem Gerät. Zum Weitergeben der Text unten, kopieren, verschicken, einfügen, Übernehmen.
Vibration
v1.1.42 BESTELLT: jede Vibration soll etwas über das Renngeschehen sagen. Darum ein Schalter je Auslöser – leicht heißt Hinweis (Quietschen, Untersteuern, Box), stark heißt Ereignis (Aufprall, Heck kommt).
Ansagen
NPCs
Teilweise im Aufbau. Kurvendrosselung, Ideallinie und Linienmodell wirken nur, wenn eine Strecke mit mindestens drei Teilen vorliegt – entweder im Editor gebaut oder beim Fahren gelernt. Ohne Streckenlayout rechnen sie mit einer Null.
Seit v0.5.44 auch in Kurven, und die Erlaubnis hängt nicht an der Kachelart, sondern am freien Platz: 1 minus dem Anteil des Anschlags, den die Ideallinie hier schon belegt. Unter 30 % passt kein zweites Auto daneben, und die Wahrscheinlichkeit wächst mit dem Platz. Gemessen in 1500 Takten: bei 0,70 Platz 34 Versuche, bei 0,14 keiner – egal ob Gerade oder Haarnadel. Auf deiner Vorgabestrecke haben 11 von 13 Kacheln genug Platz. Nur in eine Haarnadel hinein wird nicht angesetzt: ein Versuch dauert bis zu 5 s, eine Kachel rund 0,7 – wer davor ausholt, ist beim Einlenken noch daneben.
Die Seite ist die, auf der der andere nicht ist. Vorher war es die andere Seite als die eigene Linie; auf einer Geraden ist das dasselbe, in einer Kurve nicht. Wer viel Bahnbreite für die Ideallinie ausgibt (Regler „Kurven öffnen“), lässt weniger für Überholmanöver übrig – das ist derselbe Platz.
Nachgeben bleibt Pflicht unter gelber Flagge, in der Boxengasse und beim Überrundet-Werden. Das Fahrerauto verteidigt nie: es lässt sich nicht steuern, das entscheidest du selbst.
Es ist kein neues Verhalten, sondern das vorhandene unterschiedlich eingestellt. Das Tempo bleibt ausdrücklich draußen: dafür gibt es den Regler je Auto in der Garage. Angezeigt wird der Charakter dort ebenfalls, sobald das Rennen läuft.
Bei 0 entscheidet die Zielfunktion allein, und dann kommt fast die Mittellinie heraus. Das ist kein Fehler, sondern die Geometrie einer Carrera-Kurve: sie ist ein Bogen mit festem Radius von 37 cm. Nachgemessen an einer reinen Rechtskurve, mittlerer Bahnradius bei konstantem Versatz: Mittellinie 34,7 Einheiten, 4 nach außen gibt 38,8, 4 nach innen nur 30,7. Auf einer echten Strecke wählt man mit dem Scheitel den Radius – hier ist er vorgegeben, und Eintauchen macht ihn kleiner. Die zeitschnellste Linie hat deshalb gar keinen Scheitel.
Der Preis, gemessen für Late Apex gegen die Mittellinie: bei 0 ist die Linie 1,0 bis 1,5 % schneller und nutzt 7 % der Breite; bei 0,4 kostet sie 0,7 bis 1,9 % und nutzt 33 bis 48 %; bei 0,8 kostet sie 4,9 bis 5,3 % und nutzt 68 bis 91 %. Wer eine Linie sehen will, die aussieht wie eine Ideallinie, bezahlt sie hier – und die Modellzeit in der Vorschau nennt den Betrag.
Die Wirkung skaliert mit der Bogenlänge des Kurvenzuges: eine einzelne 60-Grad-Kachel hat 36 von 80 Einheiten Bezugslänge und bekommt 45 % davon, eine Haarnadel den ganzen Wert. Ohne das verlangte der Regler auf einer einzelnen Kachel über 12 cm Querbewegung innerhalb von 43 cm Weg. An einer Schikane fällt die Schranke ganz weg: dort sind Ausgang und Eingang derselbe Punkt, und der kann nicht für beide Kurven außen sein.
Eine Ratenbegrenzung und kein Tiefpass: sie hat eine feste Höchstgeschwindigkeit und erreicht den Sollwert exakt, während ein Tiefpass sich ihm nur nähert und dabei umso schneller läuft, je weiter er weg ist. 2,0 sind bei 25 cm Bahnbreite 50 cm/s.
Die Vorgabe stand bis v0.5.39 auf 1,2 – das war für die alte Linie kalibriert, die an einer Bahnseite klebte. Seit die Linie von außen anfährt und nach außen ausfährt, verlangt sie bis zu 2,9 Bahnbreiten je Sekunde; gemessen kappte 1,2 die Spitze des Lenkbytes auf 67 von 127, während 2,0 auf 95 kommt. Weniger sieht ruhiger aus und folgt der gezeichneten Linie schlechter – hier liegt der Tausch.
Nachrechenbar: bei 1,0 braucht voller Gasbefehl 0,63 s, ein Trigger etwa 0,15 s – der NPC ist also rund viermal langsamer im Aufbau, und genau das sieht man am Kurvenausgang. Bei 4,0 liegt er bei 0,16 s und damit dort, wo ein Trigger liegt.
1,0 ist der gemessene, stabile Zustand: alle Tempoprüfungen dieser App sind damit gefahren. Die Ratenbegrenzung ist auch der Schutz davor, dass ein zurückgestelltes Auto aus der Hand gerissen wird – wer sie hochdreht, nimmt diesen Schutz zurück.
Die anderen weichen auf der Boxenkachel nach links aus, und ihre Querlage ist dort nach rechts gesperrt. Dein eigenes Auto ist nicht steuerbar; es gibt eine Meldung und den Punkt auf der Karte, mehr geht nicht.
Was der Stopp nicht kann: wissen, wo der Rand ist. Das Auto meldet seine Querlage nicht, voller Ausschlag ist ein Befehl und keine Messung.
Regenreifen: setzt Regen ein, kommt jeder NPC so früh wie möglich herein und rüstet um – und beim Wechsel zurück auf trocken genauso. Solange die falschen Reifen drauf sind, fährt er langsamer: 0,64 gegen 0,85 mit Regenreifen im Regen, abgeleitet aus derselben Grifftabelle, die dein Auto benutzt. Bei leichtem Regen ist der Slick noch vorn – der Nachteil kommt mit dem Wasser, nicht mit der Meldung. Ist dieser Schalter aus, können NPCs keine falschen Reifen haben, sonst kröchen sie nach dem ersten Regen ohne Ausweg.
Krümmung minimiert die Krümmungsenergie und braucht keine Annahme über Beschleunigungen. Rundenzeit minimiert die Modellzeit, Scheitel frei. Late Apex minimiert dieselbe Zeit, hält den Scheitel aber hinter 55 % des Kurvenwegs – eine engere Suche kann eine Zeit nur verfehlen, nie verbessern, der Unterschied ist also der Preis der späten Linie.
Vorher optimierten die ersten zwei jeden der rund 180 Abtastpunkte frei und legten dabei Ausschläge hin, die ein Fahrer nie fährt: gemessen sprang die Querlage in Kurven um bis zu 16,0 Einheiten von 8,6 möglichen zwischen zwei benachbarten Punkten. Jetzt sind es höchstens 2,4.
Die Zeiten kommen aus den eingestellten Fahrwerten – Spitze, Zug und Bremse aus der aktiven Simulationsklasse; nur die Querbeschleunigung bleibt eine Annahme, weil kein Byte sie meldet. Ob es auf dem Teppich stimmt, sagen Rundenzeit und Abgänge.
SIMULATOR (WIP) fährt bis zu 200 Linien je drei Runden mit derselben Fahrphysik wie dein Auto und behält die schnellste – ein getestetes Beispiel, keine bewiesene Bestlinie. Die Suche läuft im Hintergrund (pausiert im Rennen); bis sie fertig ist, gilt die Luuke-Linie.
Was das nicht ersetzt: Reibung, Staub, ein Auto, das aus der Kurve fliegt. Wer hier vorne ist, ist es im Modell – nicht auf dem Teppich.
Safety Car
Das Safety Car ist eine Rolle in der Garage (eines je Rennen). Hier steht alles, was es tut: unter Gelb, beim Parken und beim Losfahren. Beim Losfahren macht es immer einen kurzen Links-Rechts-Impuls, damit es wieder auf die Bahn kommt, falls es am Rand ein Stück daneben steht.
Controller
Verbinde einen Controller per USB/Bluetooth und drücke einen Knopf, damit der Browser ihn erkennt (Web-Gamepad-API meldet sich erst nach der ersten Eingabe).
Standard: rechter Trigger = Gas, linker Trigger = Bremse, linker Stick = Lenkung, X (links) = runterschalten, B (rechts) = hochschalten: wie bei einem Xbox-Controller. Klicke "Neu zuweisen" und betätige dann den gewünschten Knopf/Stick/Trigger am Controller.
| Aktion | Belegung |
|---|
Tastenbelegung
Controller-Belegung
Was gerade auf welcher Taste liegt. Zuweisen lässt sich das in den Optionen unter „Gamepad“; die Grafik zieht sofort nach.
Weiß ist zuweisbar, gedecktes Grau ist festverdrahtet und nicht zuweisbar (das Steuerkreuz), kursives Grau heißt „nicht belegt“. Touchpad und PS-Taste bleiben ab Werk frei, weil das System beide selbst abgreift: ein Tippen aufs Touchpad löst zugleich einen Klick in der Seite aus. Im Streckeneditor und auf dem Boxenschirm bedient das Steuerkreuz erst diese, danach gilt wieder das Gezeigte. Dasselbe gilt für die Flaggentaste: auf dem Boxenschirm wählt sie dort aus, und die gelbe Flagge gibt es nach dem Zurückblättern.
System
Sicherung
Alles, was diese App sich merkt, in einer Datei: Fahreinstellungen und Renneinstellungen, Autonamen und Farben, Streckenlayouts, die vollständige Rundenzeit-Historie, Motorwerkstatt, Aufnahmen und die Tastenbelegung des Gamepads.
Gemerkt werden nur Autos mit geändertem Namen oder gewählter Farbe. Der Browser erkennt ein Auto nicht immer wieder – dann einen Eintrag antippen und dem verbundenen Auto zuordnen. Mit × entfernen.
Der Browser darf diesen Speicher jederzeit leeren – diese Datei ist die Rückversicherung. Laden führt zusammen statt zu ersetzen: nichts Neueres geht verloren, auch eine ältere Sicherung lädt noch.
Telemetrie WIP
Statistiken
OmegaLab WIP
Mehrspieler
–
–
Drücke an jedem Controller einmal einen Knopf – der Browser meldet ein Pad erst nach der ersten Eingabe. Jeder Spieler hat seine eigene Tastenbelegung (Kachel „Controller“, oben Spieler 1/2/3 wählen).
Ehrlicher als es zu verschweigen – jeder Punkt hängt an einem Zähler oder einer Ortung, die es nur einmal gibt:
Was Auto 2 hat: eine eigene Fahrphysik mit eigenen Gängen, eigener Drehzahl, eigenem Tempo und eigenen Temperaturen. Die Einstellungen aus „Fahrgefühl“ werden bei jedem Anschalten übernommen – außer, in der Garage ist für diesen Spieler unter „Fahrgefühl“ ein eigenes gewählt (seit v1.2.4, z. B. Spieler 1 Pacejka, Spieler 2 Arcade); dann fährt er mit seinem.
Und ein Vergleichsschirm: blättere im Cockpit mit dem Pfeil oben links oder dem Steuerkreuz auf „Beide“. Dort stehen beide Autos nebeneinander – Tempo, Schaltlichter, Gang, Tank, Zustand, Reifen- und Bremsentemperatur und Akku, in beiden Spalten in derselben Reihenfolge, damit das Auge waagerecht springen kann. Dazu die Boxenknöpfe beider Autos und je ein eigener Motor-Knopf – Auto 2 darf einen anderen Motor fahren als Auto 1, muss aber nicht. Ist der Modus aus, wird der Schirm beim Blättern übersprungen.
Und ein Boxenstopp, unabhängig vom anderen Auto: während eines in der Box steht, verbraucht das andere weiter. Beide Knöpfe stehen auf dem Vergleichsschirm „Beide“, links für Auto 1 und rechts für Auto 2. Anfordern, bremsen und anhalten, warten, losfahren; nochmal drücken bricht ab. Der Service beginnt erst im Stillstand – das Auto rollt mit über 200 km/h aus, deshalb steht in der Fußzeile, wie weit es noch ist. Getankt wird mit denselben 22 %/s wie bei Auto 1 und repariert mit derselben Rate; ungleiche Raten wären schlimmer als kein Stopp.
Und die Rennleitung gilt für beide: bei gelber Flagge regelt Auto 2 auf dasselbe Tempo herunter wie das ganze Feld – gemessen 100 von 103 km/h Zieltempo, gegen einen Daumen auf Vollgas –, und in der Einführungsrunde rollt es in der Kolonne mit, auf seiner eigenen Seite und mit eigener Schlängelphase. Jedes Auto hat dabei seinen eigenen Regler: der hat einen I-Anteil, und ein geteilter würde die Abweichung des einen Autos in das Gas des anderen tragen.
Dazu zählt Auto 2 seine Runden mit: es steht in der Rundenübersicht, in der Rangliste während des Rennens und im Ergebnis samt CSV. Das war keine Arbeit, sondern ein Irrtum in meiner Schätzung – die Rundenzählung lief schon immer je Auto, für jedes verbundene, egal welche Rolle. Die Zielflagge wartet jetzt auf beide Fahrer statt nur auf einen.
Dazu eine eigene Motorstimme, und die sitzt auf der anderen Stereoseite – links Auto 1, rechts Auto 2. Das ist keine Kosmetik: zwei Motoren im selben Drehzahlband aus einem Lautsprecher klingen wie ein verstimmter Motor und nicht wie zwei Autos. Auch der Schaltklang kommt von der Seite des Autos, das geschaltet hat. Beide fahren mit derselben Vorgabe los, dürfen aber verschiedene Motoren spielen – je ein eigener Knopf auf dem Vergleichsschirm „Beide“.
Dazu einen eigenen Tank: Verbrauch nach Gas und Zeit mit demselben Regler wie Auto 1, das Tankgewicht in seiner Fahrphysik, die Warnstufen als Meldung und den Notlauf des leeren Tanks – und der geht über eine Rampe zu, nicht in einem Takt.
Die globalen Einstellungen gelten für alle Autos: Tank, Schaden, Reifenverschleiß, Wetter, die Höchstgeschwindigkeit und die Batteriekompensation wirken auf alle gleichermaßen. Die Abstimmung aus „Fahrgefühl“ wandert bei jeder Änderung sofort herüber, solange der Spieler „wie Spieler 1“ fährt; mit eigenem Fahrgefühl (Garage) behält er seine Abstimmung und seine Reifenmischung.
Dazu einen eigenen Schaden: Crasherkennung aus seinen eigenen Sensorbytes, Leistungsverlust mit dem Schaden, Notlauf im Totalschaden und ausgefallene Lampen – und die Kontrollleuchten des einen sagen nichts mehr über das andere Auto.
Dazu eine eigene Ortung auf der Strecke, und daran hängt mehr, als es klingt: die NPCs weichen Auto 2 aus und wählen ihre Überholseite nach seiner Querlage, es erscheint auf der Streckenkarte, die Fahrhilfe und der Leitplanken-Modus gelten auch für ihn, und neben der Bahn wird sein Gas gedrosselt und sein Controller brummt – sein eigener, nicht der von Auto 1.
Selbsttest
Messungen an der laufenden App. Sie ersetzen keine Fahrt, aber sie sagen, ob eine Änderung etwas kaputt gemacht hat, das man nicht sofort sieht: eine Physik, die nicht mehr trifft, eine Ideallinie mit einem Sprung, eine Tonschleife mit einer Naht, ein deutscher Satz im englischen Modus.
Jede Zeile nennt ihr Maß, nicht nur ihr Urteil. Ein Test, der nur
grün oder rot sagt, ist beim nächsten Grenzfall wertlos, weil man nicht
sieht, wie knapp es war. Ein ? heißt: hier ist nichts kaputt, es war
nur nicht prüfbar – zum Beispiel Töne über
file://, wo der Browser das Laden von Dateien verbietet.
| Prüfung | Ergebnis | Maß |
|---|---|---|
| noch nicht gelaufen | ||
Strecke
Streckeneditor
Bau deine Strecke aus Teilen: auswählen, einfügen, entfernen, drehen. Gebaut wird im Vollbild, mit Controller, Tastatur oder Maus.
Die Hex-Codes stimmen noch nicht für alle Streckenteile. Die Schikane zum Beispiel scannt das Auto nicht richtig.
Schwarz ist die Fahrbahn, weiße Striche trennen die Streckenteile. Randsteine in Fahrtrichtung: links blau-weiß, rechts rot-weiß: die Boxengasse liegt deshalb rechts. Ihre Breite ist 9,5 % der Fahrbahnbreite, ausgemessen aus den Streckenkarten der Original-App. Die dünne farbige Linie ist die berechnete Ideallinie, krümmungsärmster Verlauf innerhalb der Fahrbahn. Ihre Farbe zeigt, ob dort gebremst würde: grün am Gas, rot beim Bremsen, mit fließendem Übergang. Gebremst wird dort, wo die Krümmung voraus ansteigt: eine Kurve, die schon mit festem Radius gefahren wird, braucht keine Bremse mehr. Beides ist eine Rechnung, keine Messung: dass ein Auto die Linie einhält, kann die App nicht prüfen, weil kein Byte die Querlage meldet.
Der Code beschreibt die Reihenfolge der Teile und die Ausrichtung. Damit stellst du auf einem anderen Gerät dieselbe Strecke ein, ohne sie neu zu klicken.
Meine Strecken
Meine Teile
Trag ein, was du im Karton hast. Der Editor zeigt dann, was übrig ist und was fehlt. Leer lassen heißt: nicht gezählt.
Raum experimentell
Der Platz, auf dem deine Bahn liegt: Größe, Form und Möbel. Zufallsstrecken aus dem Editor passen dann hinein. 0 heißt: keine Grenze.
Gespeicherte Räume
Streckenscan
Das Auto fährt mit mittlerem Tempo über die Bahn und hält an, sobald ein geschlossener Rundkurs gemessen ist. Die Strecke steht danach im Editor.
Druckvorlagen
Muster zum Ausdrucken und Auslegen. Wichtig beim Drucken: Skalierung 100 % / „Tatsächliche Größe“, auf keinen Fall „an Seite anpassen“ – sonst stimmen die Balkenabstände nicht mehr und der Sensor liest gar nichts. Der Pfeil zeigt in die Fahrtrichtung.
Auf jedem Blatt steht ein 100-mm-Kontrollmaß. Nachmessen ist der einzige Weg, den Druckmaßstab zu prüfen, denn eine Druckvorschau sagt dazu nichts.
Ausdruck und Schiene haben verschiedene Codetabellen.
Im Ausdruck-Modus meldet das Start/Ziel-Blatt je nach Vorlage 0x01 oder 0x0a. Im Bahn-Modus melden die Schienen 0x02 Gerade, 0x03 Linkskurve, 0x04 Rechtskurve, 0x05 und 0x06 Haarnadel, 0x01 Start/Ziel, 0x0a Engstelle, 0x00 abseits der Bahn. Dieselbe Zahl bedeutet je Modus etwas anderes – wer Codes vergleicht, muss den Modus mitnennen.
Wieviel Anlauf der Leser braucht, ist gemessen und keine Vermutung mehr.
Die drei führenden dünnen Striche lassen sich abschneiden, das Blatt wird weiter gelesen: der Vorlauf ist kein Nutzdatum. Und eines der beiden wiederholten Muster genügt. Die kleinste tragende Nutzlast ist damit ein Wort ohne Vorlauf, etwa 54 mm in Fahrtrichtung. Deshalb sind die Vorlauf- und Probeblätter aus dieser Seite verschwunden.
Nach einem Erkennen bleibt der Leser etwa eine Sekunde stumm. Bei 4 km/h Maßstabstempo sind das 1,1 m Fahrweg, also gut zweieinhalb Kachellängen: ein Muster öfter als etwa jeden Meter zu wiederholen bringt nichts. Dieselbe Sperre ist der Grund für den Mindestabstand von einer Sekunde bei der Boxengasse per Doppel-Ausdruck.
Start / Ziel
Zählt Runden und löst die Rundenzeit aus. A4 quer, direkt aus der Original-Vorlage erzeugt und nicht nachgemessen: neun Balken, dünn 3,598 mm und dick 6,604 mm, Lücken 3,514 und 6,530 mm.
Schneidebogen: vier Marken je Blatt
A4 hochkant, vier vollständige Start/Ziel-Muster übereinander mit Schnittlinien. Das ist die sparsame Fassung: weil ein Wort ohne Vorlauf genügt, sind es 54,2 statt 75,5 mm je Marke, und davon passen vier auf ein Blatt. Die Balken sind 176 mm breit; das Kontrollmaß steht senkrecht im linken Rand.
Bahn zum Auslegen experimentell
Durchgehend bedruckte Streckenteile: die Gerade als zwei A4-Blätter quer (je 202 mm Fahrweg), die 30-Grad-Kurve als zwei Blätter mit je 15 Grad. Die Kurvenbalken laufen radial mit konstanter Bogenlänge auf der Mittellinie – nicht mit konstantem Winkel, sonst wäre das Modulmaß am äußeren Rand größer als am inneren und der Sensor läse je nach Linie eine andere Folge. Genau so sehen die Infrarot-Aufnahmen der echten Kurve auch aus.
Warum experimentell, in zwei Punkten.
Erstens tragen diese Blätter das Wort von „Start/Ziel“. Die Wörter für Gerade und Rechtskurve sind nicht entziffert – der Versuch, sie aus Infrarot-Videobildern der echten Schiene zu lesen, ist gescheitert. Eine so ausgelegte Bahn meldet also überall Start/Ziel und ist als Strecke falsch; sie ist ein Versuchsblatt. Zweitens ist nicht entschieden, ob eine Papierbahn überhaupt wie die echte gelesen wird: das hängt an der Infrarot-Rückstrahlung von Toner und Papier. Ein Blatt, das gedruckt aussieht wie die Bahn, ist noch keine Bahn.
Trapez-Muster, randlos, ohne Strichcode experimentell
Zum Auslegen und Fotografieren, ohne jede Behauptung, maschinenlesbar zu sein - anders als die Blätter oben, die trotz ihrer Warnung noch ein (falsches) Strichcode-Wort tragen. Senkrechte Trapez-Balken, randlos bis zum Blattrand: oben (bzw. innen in der Kurve) schmal, unten (aussen) breit, mit einer Lücke dazwischen, die genau dieselbe Form kopfueber hat. Die genaue Folge ist ERFUNDEN - das echte Wort ist weder für die Gerade (Byte 12 = 0x02) noch die Rechtskurve (0x04) entziffert, und ein bereits gemachter Messversuch an Infrarot-Fotos wie diesen ist dokumentiert gescheitert (CARRERA_HYBRID.md, Fluchtpunkt-Fit, 31.08.) - nur ein Flachbett-Scan gäbe echte Millimeter. Die Zahlen hier (5/20 mm) sind daher eine grobe Ausseneinschätzung, direkt übernommen, keine Messung.
Gerade experimentell
12 Trapeze nebeneinander, randlos über die ganze Seite, oben 5 mm und unten 20 mm breit.
Code-Sonde
Was das Auto gerade unter sich liest, ungefiltert. Die Anzeige zeigt den ROHEN Code und nicht das, was die Rundenlogik daraus macht – genau darin liegt ihr Zweck: sie soll die Fehler sichtbar machen, die jene Logik verdeckt.
Jede Zeile ist ein Codewechsel: der Wert, wie viele Pakete er gehalten hat und wie lange. Ein echter Lesevorgang ist ein Bündel gleicher Codes während der Überfahrt. Ein Einzelpaket zwischen Nullen ist Rauschen. In einer Anzeige, die nur den letzten Wert zeigt, sieht beides gleich aus.
| Code | Pakete | Dauer | Kachelzähler |
|---|---|---|---|
| noch nichts | |||