OmegaSim Wiki

OmegaSim Wiki – die Idee dazu stammt von Gnen54. Hier stehen die offenen Artikel von Nutzer Luuke42 unter der Lizenz CC BY-SA 4.0.

Rennarten

Stand dieses Artikels: OmegaSim 1.2.45 vom 29.10.2026 · Firmware des Autos: nicht bekannt (OmegaSim liest die Firmware-Version nicht aus)
Dieser Text wurde mithilfe von KI erstellt (Claude) und ist nicht in jedem Punkt von Menschen geprüft. Fehler bitte direkt verbessern oder auf der Diskussionsseite melden, siehe Mitmachen. Die öffentliche Fassung auf luuke42.github.io/omegasim kann älter sein als der hier beschriebene Stand.

Das Cockpit während eines Rennens

Die Rennarten (in der App „Renntyp“) von OmegaSim legen fest, wie eine Sitzung abläuft, wann sie endet und wie gewertet wird. Es gibt sieben Renntypen: Training, Time Attack, Qualifying, Runden, Endurance, NPC Knockout und Demolition Derby. Alle benutzen dieselbe Rennmaschine in src/70-race.js: Startaufstellung, Startampel, Rundenzählung über das Start/Ziel-Muster der Strecke, Zielflagge und Ergebnis. Bis zu zehn Rennen lassen sich zu einer Meisterschaft mit Punktewertung verbinden. Welche Renntypen wählbar sind, hängt seit 1.2.4 davon ab, ob das Auto die Kunststoffschiene liest („Auf der Bahn“) oder gedruckte Muster („Ausdruck“).

Auf einen Blick

Merkmal Wert
Menüpfad FAHREN → Kachel Renntyp; Optionen → Renneinstellungen; FAHREN → Kachel Meisterschaft (unten links)
Renntypen Training, Time Attack (experimentell), Qualifying, Runden, Endurance, NPC Knockout (experimentell), Demolition Derby (experimentell)
Vorgabe Training, Grenze 0 (ohne Ende)
Start stehend mit Ampel (5 Lampen im Sekundentakt, dann 1 bis 3 s Pause) oder fliegend (experimentell)
Frühstart ab Werk +5 s auf die erste Runde; sonst 2 s Ausbremsen
Meisterschaft bis 10 Events, Punkte F1, klassisch oder linear, +1 für schnellste Runde
Status Rennfunktion WIP; Time Attack, Knockout, Derby, fliegender Start, Sektoren, automatisches Aufstellen, Rennpause, Rennintro und Rennstand-Ansage experimentell
Quelldateien src/70-race.js, src/73-meisterschaft.js, src/90-ghosts.js, src/71-rammen.js, src/50-drive.js

Grundlagen

Renntyp und Rennzustand

Der Renntyp (raceMode) beschreibt die Regeln: wann ist Schluss, und wer gewinnt. Der Rennzustand (raceState) beschreibt, wo das Rennen gerade steht. Er ist eine Zustandsmaschine mit diesen Werten:

Zustand Bedeutung Übergang
idle kein Rennen Start → countdown (Training ohne Ampel: sofort racing)
countdown Ampel läuft Lampen aus → racing
racing Rennen läuft Grenze erreicht → finishing; bei Runden mit Zielrunde direkt → finished
finishing letzte Runde nächste Überfahrt des Fahrers → finished
finished Ergebnis neuer Start → countdown

Bei fliegendem Start gibt es innerhalb von racing zusätzlich die Einführungsrunde (raceFormationLap), in der keine Runden zählen.

Rundenzählung

Eine Runde ist die Zeit zwischen zwei Überfahrten des Start/Ziel-Musters. Das Auto meldet in jedem Paket den Code des Teils unter sich (Byte 12) und einen Zähler (Byte 11); seit 0.9.39 setzt es beim Lesen des Startmusters außerdem rund eine Sekunde lang Bit 3 von Byte 15. Die steigende Flanke dieses Bits ist der Zielstrich. Eine Flanke ist der Moment, in dem ein Bit von 0 auf 1 wechselt. Doppelte Meldungen innerhalb von 1000 ms (TILE_REPEAT_BLOCK_MS) werden ignoriert. Einen eigenen Rundensensor gibt es nicht.

Zufall am Start

Die Pause zwischen der fünften roten Lampe und dem Start ist zufällig, damit niemand den Start vorhersehen kann: 1000 ms + Zufall · 2000 ms. Im Mehrspieler gibt das startende Telefon diesen Wert vor, damit alle gleichzeitig losfahren.

Punkteschema

Ein Punkteschema ist eine Tabelle „Platz → Punkte“. Das bekannte F1-Schema vergibt 25 Punkte für den Sieg, 18 für Platz 2 und so weiter bis 1 Punkt für Platz 10.

Bedienung

Ein Rennen fahren

  1. In FAHREN die Kachel Renntyp wählen und die Grenze (Minuten, Runden oder Kills) eintragen.
  2. Unter Optionen → Renneinstellungen bei Bedarf Wetter, Pflichtstopps, fliegenden Start, Sektoren, Frühstartstrafe und Tank beim Start einstellen.
  3. Rennen starten (Kachel in FAHREN oder Knopf im Cockpit; am Controller ist ab Werk keine Taste belegt).
  4. Außer im Training erscheint der Schirm Bringe die Autos in Position mit der Startaufstellung und den Knöpfen Abbrechen, Automatisch aufstellen (nur „Auf der Bahn“) und Start. Steuerkreuz wählt, X bestätigt, vorausgewählt ist Start.
  5. Autos von Hand auf ihre Plätze stellen oder automatisch aufstellen lassen.
  6. Ampel abwarten: fünf rote Lampen, dann gehen alle aus. Das ist der Start.
  7. Zum Beenden das Rennen fahren, bis die Grenze erreicht ist, oder abbrechen. Ein Abbruch verwirft die laufende Runde.

Eine Meisterschaft fahren

  1. Kachel Meisterschaft in FAHREN öffnen.
  2. Je Zeile ein Event festlegen: Strecke, Format, Umfang, Wetter, Start, Aufstellung, Pflichtstopps.
  3. Darunter Fahrgefühl, Aufstellung des ersten Events, Punkte, schnellste Runde und Teilnehmer wählen.
  4. Meisterschaft starten; nach jedem Event erscheint der Zwischenstand mit der nächsten Startaufstellung. Die Meisterschaft kann pausiert und über die Kachel fortgesetzt werden.

Einstellungen

Name in der App Bereich Standard Wirkung (aus dem Code) Interne ID → Variable
Renntyp 7 Typen Training Regeln und Ende race-mode → raceMode
Minuten / Runden / Kills 0 bis 120 0 Grenze; Training und Time Attack: 0 = ohne Ende; Derby: Kill-Ziel race-limit → raceLimit
Sektoren (experimentell) 1 (aus) bis 4 1 Überfahrten je Runde; auf der Bahn bestimmt die Strecke die Zahl sector-count
Fliegender Start (experimentell) an/aus aus Einführungsrunde im Formationstempo, Autopilot fährt race-flying → raceFlying
Frühstart: +5 s auf die erste Runde an/aus an aus: 2 s Ausbremsen nach Grün race-fruehstart-zeit
Gelbe Flagge deaktivieren an/aus aus Knopf und Halten der Boxentaste rufen kein Gelb mehr aus race-gelb-aus
Weiche Reifen verboten (WIP) an/aus aus siehe Boxenstopp race-weich-verboten
Einparken in der Aufstellung (WIP) Aufnahme, Lenkimpuls Aufnahme Einparkfolge bei automatischer Aufstellung race-einpark-art
Einparken: Gas der Safety-Car-Folge (WIP) 40 bis 100 % 70 % Gasfaktor auf die Safety-Car-Einparkfolge race-einpark-sc-gas → AUFSTELL_SC_GAS
Einparken: Einlenkstärke, Dauer, Tempo (WIP) 0 bis 100 %; 10 bis 300 ms; 15 bis 60 % 100 %; 100 ms; 30 % nur beim Lenkimpuls race-einpark-staerke, -ms, -tempo
Time Attack: NPCs als Challenger (WIP) Gegen meine Bestzeit, Gegen den Rekord, Gummiband Gegen meine Bestzeit Fahrweise der NPCs in Time Attack race-challenger
Gummiband: Schritt je Runde (WIP) 2 bis 10 % 4 % Tempoänderung je Durchfahrt race-gummiband-schritt
Wetter zu Beginn trocken, Regen, wechselhaft trocken siehe Verschleiß#Wetter und Regen race-wx-start
Wetter ändert sich an/aus aus ein zufälliger Wechsel race-wx-change
Pflichtboxenstopps keine bis 3 keine siehe Boxenstopp race-pit-required
Strafe je verpasstem Stopp (s) 0 bis 300 10 Zeitstrafe am Ende race-pit-penalty
Strafe für Rammer (experimentell), Länge aus, 1 bis 5; 3 bis 20 s nach 2; 5 s Zusatz-Standzeit in der Box race-ramm-ab, race-ramm-strafe
Tank beim Start (l) 5 bis 110 110 Startmenge aller Spielerautos race-fuel-start
Startampel, Optionen → Allgemein Bild und Ton, nur Ton, nur Bild Bild und Ton Darstellung der Ampel setting-ampel
Auf der Bahn, Optionen → Allgemein an/aus an Sensormodus; bestimmt die erlaubten Renntypen setting-ontrack → trackMode

Funktionsweise

Die Renntypen

Renntyp Grenze Ende Wertung Besonderheiten
Training (practice) Minuten, 0 = ohne Ende nach der Zeit oder von Hand keine Platzierung, Tabelle nach Runden ohne Ampel und ohne Startschirm
Time Attack (bestzeit) Minuten, 0 = ohne Ende nach der Zeit oder von Hand Bestzeit je Strecke, Medaillen nur gesteuerte Autos; NPCs fahren als Challenger
Qualifying (qualifying) Minuten nach der Zeit, laufende Runde zählt schnellste Einzelrunde
Runden (laps) Runden wer die Zahl erreicht, ist im Ziel mehr Runden, dann kürzere Gesamtzeit
Endurance (endurance) Minuten nach der Zeit, laufende Runde zählt mehr Runden, dann kürzere Gesamtzeit
NPC Knockout (knockout) 3 Leben alle NPCs oder alle Menschen raus Menschen oder NPCs gewinnen braucht einen NPC, schaltet auf „Auf der Bahn“
Demolition Derby (derby) Kill-Ziel Kill-Ziel erreicht oder höchstens ein Teilnehmer fährt meiste Kills, dann mehr Health kein Boxenstopp, nur im Ausdruck-Modus

Ende eines Rennens

raceLimitReached() wird viermal je Sekunde geprüft (raceClockTick(), 250 ms):

Training, Time Attack: Grenze > 0 und vergangene Zeit ≥ Grenze · 60 000 ms
Runden:                irgendein Auto hat ≥ Grenze Runden
Qualifying, Endurance: vergangene Zeit ≥ Grenze · 60 000 ms

Ist die Grenze erreicht, wird der Zustand finishing, das Cockpit zeigt „Letzte Runde“, und eine Glocke klingt. Die laufende Runde zählt noch; mit der nächsten Überfahrt des Fahrers fällt die Zielflagge. Im Renntyp Runden ist der Fahrer, der die Zielzahl selbst erreicht, sofort im Ziel. Fährt kein gesteuertes Auto, holt der erste NPC die Flagge. NPCs dürfen ihre angefangene Runde noch zu Ende fahren, höchstens 20 s nach dem Sieger (GHOST_AUSLAUF_MAX_MS).

Die Uhr startet nicht mit Grün, sondern mit der ersten Bewegung eines gesteuerten Autos (über 3 km/h, raceMoveErkannt()), damit die Reaktionszeit nicht in die erste Rundenzeit eingeht. In Challenges läuft die Uhr dagegen ab Grün.

Wertung

renderRaceResults() sortiert:

Qualifying:       nach bester Runde (aufsteigend)
alle anderen:     nach Rundenzahl (absteigend), bei Gleichstand nach Gesamtzeit (aufsteigend)

Je Auto stehen Runden, beste, mittlere und schlechteste Runde sowie die Streuung in der Tabelle, darunter alle Einzelrunden. Eine Runde unter der kürzest möglichen Zeit zählt nicht als Bestzeit:

Mindestrunde = max(1500 ms ; Streckenlänge / 2,5 m/s)     (rundeMinMs)

Time Attack

Time Attack braucht „Auf der Bahn“ und eine eingescannte Strecke mit mindestens 3 Teilen (bestzeitBereit()). Jede gültige Runde eines gesteuerten Autos wird je Strecke gespeichert (omegasim-bestzeiten); eine gespiegelte Strecke gilt als dieselbe (Schlüssel ist der kleinere der beiden Streckencodes). Medaillen vergibt dieselbe Gold-Formel wie bei den Challenges (Beste Runde, eine Runde). Am Startschirm stehen die Medaillenzeiten, bisher gewonnene Medaillen und Bestzeiten; am Ende kommt eine Zusammenfassung mit Bestzeitvergleich, Schnitt, Streuung und dem Abstand zur nächsten Medaille. Die NPCs fahren als Challenger: gegen die eigene Bestzeit, gegen den Rekord der Online-Bestenliste oder mit Gummiband (Tempo 60 bis 140 % des Garagentempos, Schritt je Runde 4 %).

NPC Knockout

Menschliche Fahrer haben 3 Leben (KO_LEBEN); jedes Abkommen von der Bahn kostet eines (kurzer trauriger Ton, G4 nach Es4). Ein NPC ist raus, sobald er die Bahn verlässt; er bleibt dann stehen. Das Urteil (knockoutUrteil()):

keine NPCs mehr im Rennen                              → Menschen gewinnen (Fanfare)
Spieler 1 und alle Mitspieler ohne Leben               → NPCs gewinnen (Game-over-Ton)

Demolition Derby

Jedes Auto, auch jeder NPC, hat eine Health von 100 (DERBY_MAX). Ein Aufprall kostet frontal 10, seitlich oder von hinten getroffen 20 (derbyAufprall(), Richtung aus dem Bewegungssensor). Fährt das eigene Auto mit mehr als 30 km/h bis auf vier Teile an einen NPC heran, verliert der NPC 20 Health, höchstens einmal je Sekunde (DERBY_RAM_TILES, DERBY_RAM_KMH, DERBY_TREFFER_MS). Bei 0 bleibt das Auto stehen, nur die Lichter flackern; ein ausgeschalteter NPC zählt als Kill für den, der ihn getroffen hat. Das Urteil (derbyUrteil()):

ein Teilnehmer hat ≥ Kill-Ziel Kills                     → er gewinnt (Menschen vor NPCs geprüft)
weniger als 2 Teilnehmer                                  → läuft weiter (nur von Hand beendbar)
genau 1 Teilnehmer fährt noch                             → er gewinnt
sonst                                                     → läuft weiter

Im Derby nimmt auch ein stehendes Auto Schaden, und es gibt keinen Boxenstopp.

Startablauf

Was beim Start zurückgesetzt wird

startRaceCountdown() setzt vor der Ampel: eine gelbe Flagge und eine liegengebliebene Aufstellung werden beendet, das Weich-Verbot angewandt, das Startwetter gesetzt (wechselhaft beginnt trocken), die Windrichtung neu gewürfelt, der Tank aller Spielerautos auf die Startmenge, kein Schaden, kalte Reifen (mit Reifenwärmer 85 °C), Pflichtstopp-Zähler auf 0, alle Rundenlisten leer. Im Ausdruck-Modus mit NPCs oder Safety Car in der Garage erscheint die Warnung „Ausdruck-Modus: NPCs und Safety Car fahren hier nicht“ mit der Zahl der Autos.

Die Ampel

ampelZeitplan(grün, Pause) legt feste Zeitpunkte vor Grün fest:

Lampe i (i = 1 … 5) leuchtet bei   grün − Pause − (5 − i) · 1000 ms
alle aus (Start)                    grün
Pause = 1000 + Zufall · 2000 ms
lokal: grün = jetzt + 4600 ms + Pause   (erste Lampe nach 600 ms)

Jede Lampe klingt mit einem Rechteckton von 440 + (i − 1) · 60 Hz, der Start mit 880 Hz. Kommt der Plan verspätet an (Mehrspieler), werden verpasste Lampen übersprungen; nur der Start zählt. Im Mehrspieler kann die Ampel vor der ersten Lampe noch um den Uhrabgleich verschoben werden (ampelVerschieben()). Näheres auf der Seite Startampel.

Frühstart

Während des Countdowns prüft ein Takt alle 100 ms, ob ein gesteuertes Auto (Spieler 1 bis 3) schneller als 3 km/h ist (FRUEHSTART_KMH = 3 / REAL_SCALE). Dann gilt es als Frühstarter; die Ampel läuft weiter.

Schalter Strafe Umsetzung
„Frühstart: +5 s auf die erste Runde“ an (Vorgabe) 5000 ms auf die erste Runde (FRUEHSTART_ZEIT_MS) fruehstartZuschlag() beim ersten Rundenschluss, auch für Spieler 2 und 3 und im WLAN-Mehrspieler
aus 2 s kein Gas und mindestens 60 % Bremse, sobald das Auto nach Grün fährt fruehstartStrafeAktiv(), FRUEHSTART_STRAFE_MS, FRUEHSTART_BREMSE

Fliegender Start

Bei fliegendem Start beginnt nach Grün eine Einführungsrunde: Das Tempo ist auf das Formationstempo begrenzt, formationPace() = max(Boxentempo 0,294 ; Leseschwelle 0,35) des Höchsttempos, und das eigene Auto fährt im Autopiloten; die Bremse bleibt verfügbar. Runden zählen nicht. Frei ist das Rennen, wenn ein Auto Start/Ziel zum 1 + Sektorzahl-ten Mal überfährt, ohne Sektoren also zum zweiten Mal (formationNoetig()): zwischen zwei Überfahrten desselben Autos liegt immer eine volle Runde, egal wo es stand. Nur in der Stellung „Auf der Bahn“, weil der Autopilot die Querregelung der Schiene braucht.

Startaufstellung

Die Reihenfolge der Startplätze wird im Startschirm durch Ziehen oder mit den Pfeilen sortiert; das eigene Auto steht mit in der Liste. Platz 0 ist rechts, Platz 1 links, je zwei bilden eine Reihe.

Automatisch aufstellen (experimentell, nur „Auf der Bahn“, nicht im Training) lässt NPCs, Safety Car und Fahrerautos selbst zu ihren Plätzen fahren (src/90-ghosts.js):

Zielort(Platz) = Startkachel − 1 + Seitenbruch(Platz) − floor(Platz/2) · 0,5
Seitenbruch    = 0,15 rechts (gerade Plätze), 0,0 links (ungerade Plätze)

Reihe 1 steht also auf der Kachel vor Start/Ziel, jede weitere Reihe eine halbe Kachel dahinter (AUFSTELL_REIHE_KACHEL), vier Autos je Teil. Fällt ein Platz auf eine Haarnadel oder Engstelle, rücken er und alle dahinter um ganze Teile zurück. Ob ein Auto seinen Platz erreicht hat, prüft aufstellAmPunkt(o, ziel, platz):

auf der Zielkachel und Anteil in der Kachel ≥ Haltebruch(Platz)
oder schon auf der nächsten Kachel, aber höchstens eine halbe Kachel weiter

Die zweite Bedingung (seit 1.2) verhindert, dass ein knapp vorbeigerollter Wagen eine weitere Runde dreht. Am Platz fährt das Auto die aufgenommene Einparkfolge des Safety Cars (MANOEVER.scEin), für die linke Spalte mit gespiegelter Lenkung, mit 300 ms Angleichen ans Aufnahmetempo und mit dem Gas der Folge mal 0,70 (AUFSTELL_SC_GAS; bis 1.2 0,75, Reihe 1 stand etwas zu weit außen). In der Schlange fällt das Tempo nie unter 0,28 des Höchsttempos (AUFSTELL_BODEN), sonst meldete das Auto die Bahn nicht mehr und würde als abgeflogen abgestellt. Zeitgrenze für die ganze Aufstellung: 60 s (AUFSTELLEN_MAX_MS). Mit „Lenkimpuls“ fährt das Auto stattdessen kurz voll zu seiner Seite und genauso lang zurück.

Rennpause

Die Rennpause (seit 1.2.25, übernommen aus PR #9 von Playdater1974; als WIP gekennzeichnet) hält ein laufendes Rennen an, ohne es zu beenden: Die Autos bleiben stehen, die Rennuhr steht still, der Rennzustand bleibt erhalten. Weiter geht es mit einer kurzen Wiederanlauf-Ampel. Der Ablauf ist im Code src/15-pause.js und src/98h-pause.js umgesetzt.

Merkmal Wert
Menüpfad Cockpit-Symbol oben rechts (neben dem Beenden-Knopf); oder unter Optionen → Controller eine freie Taste mit „Pause / Fortsetzen“ belegen (anfangs unbelegt)
Wirkung Autos bleiben stehen, Rennuhr steht still (rennZeitJetzt()), Rennzustand bleibt
Fortsetzen erneuter Druck zeigt die Wiederanlauf-Ampel; ein weiterer Druck während der Ampel bricht den Wiederanlauf ab und bleibt pausiert
Nach Grün Gas/Bremse und Lenkung zuerst neutral stellen
Ausgenommen WLAN-Mehrspieler (Pause gesperrt) und Kalibrierung
Gilt für lokale Fahrmodi inkl. Training, Endurance, Time Attack, Qualifying, Runden, Knockout, Derby und virtuelles Fahren

Details aus dem Code:

Rennintro

Das Rennintro (Optionen → Ansagen → „Rennintro vor der Ampel“, setting-announce-intro; Standard aus, WIP) sagt vor der Startampel den Start an. Es verwendet vorproduzierte Piper-Aufnahmen und die Sprache, Sprechgeschwindigkeit, Lautstärke und den Hall der Rennstand-Ansagen.

Rennstand-Ansage

Die Rennstand-Ansage (Optionen → Ansagen; als WIP gekennzeichnet) sagt während eines Rennens den Zwischenstand des lokalen Rennfelds an, und nach der Zielflagge das Ergebnis. Sie verwendet vorproduzierte Sprachclips aus src/80c-rennstand.js.

Schalter Werte Standard Wirkung
Rennstand alle paar Runden ansagen (setting-announce-stand) an/aus an die ersten drei Fahrzeuge des lokalen Rennfelds, mit Runde, Wagenfarbe und Marke/Modell
Rennstand alle X Runden (setting-announce-stand-interval) 1 bis 20 5 nach jeder eingestellten Zahl vollendeter Runden des führenden Fahrzeugs (z. B. nach Runde 5, 10 und 15)
Rennstand maximale Wartezeit (setting-announce-stand-wait) 5 bis 30 s 30 ab der ersten Durchfahrt der Messrunde; sobald die Top 3 durch sind, wird früher angesagt
Rennergebnis ansagen (setting-announce-result) an/aus an einmal nach der Zielflagge: der Sieger und die nächsten zwei mit Rückstand
Namen in der Garage (setting-announce-stand-namensart) Autobezeichnungen, Fahrernamen Autobezeichnungen eigene Namen statt Marke; spricht die Stimme des Geräts, nicht die Aufnahmen

Messung (Beispiel Intervall 5): Sobald das erste Auto Runde 5 beendet (Runde 6 beginnt), wird der Messstand vorgemerkt. Nach drei Durchfahrten derselben Runde erfolgt die Ansage; bei weniger als drei Autos werden alle abgewartet. Die ersten drei Durchfahrtszeitpunkte bestimmen die Reihenfolge und die Sekundenrückstände; spätere Runden ändern den eingefrorenen Messstand nicht. Nach Ablauf der Wartezeit werden nur die vorhandenen Messwerte gesprochen; fehlende Durchfahrten werden nicht als Überrundung ausgegeben.

Einschränkungen je Sensormodus

Seit 1.2.4 gilt (renntypErlaubt()):

// src/70-race.js
function renntypErlaubt(modus) {
  return trackMode === 'on' ? modus !== 'derby' : modus !== 'bestzeit';
}

Ein nicht erlaubter Typ verschwindet aus Kacheln, Liste und dem Durchschalten in FAHREN; war er gewählt, fällt die Wahl auf Training zurück, mit einer Meldung.

Funktion Auf der Bahn Ausdruck
Demolition Derby nein ja
Time Attack ja nein
NPC Knockout ja schaltet beim Start auf „Auf der Bahn“ um
Fliegender Start ja nein (kein Autopilot)
Automatisch aufstellen ja nein
NPCs und Safety Car fahren fahren nicht (Warnung beim Start)
Gelbe Flagge mit Autopilot ja nein

Gelbphasen

Eine gelbe Flagge begrenzt das Tempo auf 80 km/h (YELLOW_KMH, Faktor 80 / (4,0 · 73,75) ≈ 0,27). Das eigene Auto fährt dabei im Autopiloten, auch beim Neustart-Countdown; der Gasfaktor des Fahrgefühls gilt dann nicht, sodass es genauso schnell fährt wie die NPCs. Ausgerufen wird Gelb über den Knopf oder durch Halten der Boxentaste, außer „Gelbe Flagge deaktivieren“ ist an. Ein neues Rennen beginnt nie unter Gelb, und das Rennende beendet eine gelbe Phase. Safety Car und Reinigungswagen beschreibt die Seite Safety Car und Reinigungswagen.

Meisterschaft

Die Meisterschaft (src/73-meisterschaft.js, Speicher omegasim-meisterschaft) ist kein eigenes Rennen: ein Event setzt nur die vorhandenen Renneinstellungen (Modus, Länge, Wetter, fliegender Start, Pflichtstopps, Strecke, Aufstellung, ggf. Fahrgefühl) und startet den normalen Ablauf. „Wetter ändert sich“ wird für jedes Event ausgeschaltet.

Je Event:

Feld Werte Vorgabe
Strecke aktuell im Editor, gespeicherte Strecke, freie Bahn (Ausdruck) aktuell
Format Training, Qualifying, Runden, Endurance; Punkte nur für Runden und Endurance Runden
Umfang Minuten oder Runden, mindestens 1 15
Wetter sonnig, Regen, wechselhaft sonnig
Start stehend, fliegend stehend
Startaufstellung automatisch, nach Punkten (Führender hinten), nach Punkten (Führender vorn), nach letztem Qualifying, wie letztes Ergebnis, Zufall automatisch
Pflichtstopps 0 bis 3 0

Ab Werk besteht der Plan aus zwei Events: Qualifying über 5 Minuten und Runden über 15 Runden.

Global:

Feld Werte Vorgabe
Fahrgefühl wie in der Garage, alle wie Spieler 1, alle: Arcade, Sim+, Pro, Pacejka, Omega, RC wie in der Garage
Startaufstellung 1. Event Zufall, Beste zuletzt, Beste zuerst, Garagen-Reihenfolge Zufall
Punkte F1 25-18-15-12-10-8-6-4-2-1; Klassisch 10-6-4-3-2-1; Linear N … 1 F1
Schnellste Runde +1 Punkt, keine +1 Punkt
Teilnehmer alle verbundenen Autos, nur Spieler (P1 bis P3) alle

„Automatisch“ bei der Aufstellung löst sich so auf (meisterAufstAufgeloest()): direkt nach einem Qualifying nach dessen Ergebnis; sonst, wenn schon ein Rennen gewertet ist, nach Punkten mit dem Führenden hinten; beim ersten Rennen nach der Einstellung „Startaufstellung 1. Event“. Die Reihe wird je Event einmal festgelegt und bis zum Start behalten, auch bei Zufall.

Wertung eines Events (meisterKlassieren(), meisterPunkteVergeben()):

gewertet:     wer mindestens eine Runde hat
Qualifying:   nach bester Runde
sonst:        nach Runden, dann Gesamtzeit + Strafe für verpasste Pflichtstopps
Punkte F1:    Platz 1 bis 10: 25, 18, 15, 12, 10, 8, 6, 4, 2, 1; danach 0
Klassisch:    10, 6, 4, 3, 2, 1; danach 0
Linear:       Anzahl Gewertete − Platzindex   (Sieger N, Letzter 1)
Schnellste Runde: +1 für den Gewerteten mit der besten Runde (nur Rennen)

Ein von Hand abgebrochenes Rennen zählt für alle mit 0 Punkten, und es geht beim nächsten Event weiter; ein von Hand beendetes Training gilt als regulär. Gewertet wird erst, wenn alle NPCs ihre Auslaufrunde beendet haben (höchstens 95 s). Gesamtwertung (meisterTabelle()): Punkte, dann mehr Siege, mehr zweite Plätze und so weiter bis Platz 10, dann das bessere Ergebnis im letzten Event.

Im Mehrspieler ist das planende Telefon der Leiter: es startet jedes Event für alle, wertet und verschickt den Zwischenstand. Die Menschen werden in der Reihenfolge des Hosts eingeordnet; die eigenen NPCs und Spieler 2/3 werden nach Runden dazwischen sortiert, bei gleicher Rundenzahl anhand des eigenen Autos als Anker.

Beispiele

Beispiel 1: Ampel

Rennen gestartet um t = 0, gezogene Pause 1800 ms. Grün liegt bei 4600 + 1800 = 6400 ms.

  1. Lampe 1: 6400 − 1800 − 4000 = 600 ms
  2. Lampe 2: 1600 ms, Lampe 3: 2600 ms, Lampe 4: 3600 ms, Lampe 5: 4600 ms
  3. alle aus: 6400 ms, also 1,8 s nach der fünften Lampe.

Fährt ein Auto bei 5000 ms los, ist es Frühstarter; seine erste Runde von 6,20 s wird mit 11,20 s gewertet.

Beispiel 2: Endurance-Wertung

10 Minuten. Auto A fährt 52 Runden in 9:58,3, Auto B 52 Runden in 10:01,0 (die letzte Runde nach Ablauf zählt), Auto C 51 Runden. Reihenfolge: A, B, C. Hat A einen Pflichtstopp verpasst (Strafe 10 s), wird seine Zeit in der Meisterschaft 10:08,3, und B liegt vorn.

Beispiel 3: Meisterschaftspunkte

Vorgabe-Plan, F1-Schema mit schnellster Runde, drei Teilnehmer. Qualifying: B, A, C (keine Punkte, Aufstellung des Rennens danach: B, A, C). Rennen: A gewinnt, B Zweiter mit schnellster Runde, C Dritter.

Beispiel 4: Aufstellung von sechs Autos

Startkachel 0, Strecke mit 12 Teilen. Zielorte: Platz 0 bei −1 + 0,15 = Kachel 11, Anteil 0,15 (rechts); Platz 1 bei Kachel 11, Anteil 0,0 (links); Platz 2 bei 10,65 (Kachel 10, Anteil 0,65, rechts); Platz 3 bei 10,5 (links); Platz 4 bei 10,15; Platz 5 bei 10,0. Ist Kachel 10 eine Haarnadel, rücken die Plätze 2 bis 5 um ein Teil auf Kachel 9 zurück.

Grenzen und bekannte Probleme

Versionsgeschichte

Version Änderung
0.4.54 Fliegender Start entsperrt (experimentell).
0.8 Frühstart: Ausbremsen statt Abbruch; NPC Knockout und Demolition Derby (experimentell).
0.9.22 Frühstart als Zeitstrafe (+5 s, ab Werk an); automatische Aufstellung (experimentell).
0.9.39 Runde an der Start/Ziel-Sperre (Byte 15, Bit 3).
0.9.41 Runden-Rennen enden mit der Zielrunde.
0.9.43 Rennuhr und Frühstarterkennung bei 3 km/h Anzeige statt Modelltempo.
0.9.87 Fliegender Start endet bei der zweiten Überfahrt des ersten Autos.
0.10.5 „Freies Fahren“ heißt Training, mit Zeitlimit (0 = ohne Ende).
0.10.6 Modus „Bestzeit“ mit Medaillen.
1.0 Meisterschaft (experimentell); 1.0.15 Vorgabe zwei Events; 1.0.19 „Bestzeit“ heißt Time Attack; 1.0.25 abgebrochenes Event zählt 0 Punkte, Startreihe je Event fest.
1.1 (1.1.3) Startampel wahlweise nur Ton oder nur Bild; Ton „letzte Runde“; NPCs stoppen 20 s nach dem Sieger.
1.1 Aufstellung: halbe Kachel je Reihe, keine Plätze in der Haarnadel, Einparken mit der Safety-Car-Folge.
1.2 Aufstellung: knapp überfahrene Plätze zählen, Boden in der Schlange, Gas der Safety-Car-Folge 70 % statt 75 %; „Automatisch aufstellen“ nur auf der Bahn.
1.2 (1.2.4) Renntypen je Sensormodus; Warnung bei NPCs im Ausdruck-Modus (Rennstart und Meisterschaft).

Siehe auch

Quellen im Code