Eigenes Produkt

STINTDECK

Wie läuft ein Simulator-Stand von selbst, von der Anmeldung der Besucher bis zu einer Rundenzeit, die ihren Platz auf der Liste verdient?

Die Startseite von STINTDECK mit der Überschrift „Vom QR-Code bis zur Bestenliste.“ neben einem Simulator-Bildschirm, der einen Fahrer unter fünf roten Startlichtern mit Namen begrüßt.
Startseite von STINTDECK, Oktober 2026. Der Simulator-Bildschirm ist in der Seite nachgezeichnet; Name und Werte sind erfunden.

NutzenVeranstalter führen Anmeldung, Warteschlange, Fahrten auf Zeit und Bestenliste aus einem System statt mit Listen und Stoppuhr. Eine Runde zählt nur, wenn sie unter denselben Bedingungen gefahren wurde wie die aller anderen.

STINTDECK ist eine Plattform für Sim-Racing-Events. Besucher melden sich am eigenen Handy an, das Team ruft den nächsten Fahrer auf, ein Programm auf dem Simulator-PC startet und steuert Assetto Corsa, und jede Runde wird beurteilt, bevor sie auf die Bestenliste kommt.

Bereich
Betrieb von Sim-Racing-Events
Zeitraum
2026
Status
Version 0.1, Plattform online, vor dem ersten Event
Plattformen
Web, Windows, Assetto Corsa
Leistungen
Web-Plattform mit Echtzeit, Windows-Desktop-Software, Spielintegration, Produkt und Designsystem, Deployment

Ausgangslage

Ein Simulator auf einer Messe oder einem Firmenevent braucht jemanden, der eine Liste führt, das Spiel für jeden Besucher einstellt, die Zeit stoppt und Ergebnisse notiert. Rundenzeiten von einem solchen Stand sind selten vergleichbar, und niemand kann danach sagen, worin ein Teilnehmer eingewilligt hat.

Verantwortung

Produktdefinition, Designsystem, die Plattform mit Web-App und Echtzeit-Backend, das Windows-Programm für den Simulator-PC, die Integration in das Spiel, Deployment und Dokumentation.

Ergebnis

Eine Plattform, die unter stintdeck.cidix.dev online ist, ein Windows-Programm für den Simulator-PC mit eigenem Installer und Update, und ein dokumentierter Stand dessen, was mit dem echten Spiel geprüft ist und was nicht.

Zwei Tickets auf dem Handy, eines wartend mit der Nummer 14 und eines zum Simulator gerufen, dazu die Team-Ansicht einer Station mit laufender Fahrt und vier beurteilten Runden.
Ticket auf dem Handy eines Besuchers und die Team-Ansicht einer Station, wie die Startseite sie zeigt. Wortlaut und Aufbau stammen aus dem Produkt.

Ein Signal, das jeder kennt

Das Leitbild von STINTDECK nennt sechs Menschen, die auf einen Bildschirm schauen: den Fahrer im Rig, den Besucher mit dem Handy, den Besucher am Kiosk, das Publikum vor einem Fernseher, die Person aus dem Team neben dem Simulator und den Veranstalter am Schreibtisch. Jeder von ihnen braucht eine Sache auf einen Blick.

Das Produkt antwortet mit einem einzigen Signal, der Reihe aus fünf Startlichtern. Bauen sich die Lichter auf, wird etwas vorbereitet. Alle fünf heißen bereit, bitte warten. Lichter aus heißt los. Der Fahrer sieht es auf dem Simulator, der Besucher auf dem Ticket, wo sich die Lichter füllen, während die Warteschlange kürzer wird. Niemand muss es lernen.

Um dieses Signal herum stehen wenige feste Regeln. Eine Farbe hat überall genau eine Bedeutung. Zahlen, die laufen, stehen in festen Feldern, damit sie nicht zittern. Die Akzentfarbe des Veranstalters ist Identität und trägt nie einen Zustand. Dasselbe Design wird dreimal mit denselben Maßen gezeichnet: in CSS für die Web-App, in Lua im Spiel und in WPF für das Desktop-Fenster des Simulator-PCs.

Das Spiel wird gesteuert, nicht bedient

Ein Programm auf dem Simulator-PC, der Station Agent, führt jede Fahrt aus. Es schreibt die Konfiguration für Fahrzeug, Strecke und Fahrhilfen, startet das Spiel, ohne dass jemand den Launcher anfasst, und wartet, bis das Spiel bestätigt, dass der richtige Inhalt geladen ist. Das Auto wird an einem Tor festgehalten, bis das Team den Fahrer freigibt, und den Start bestätigt das Spiel selbst.

Erreicht wird das Spiel von innen. Eine kleine Lua-App läuft über Custom Shaders Patch in Assetto Corsa und übernimmt Freigabe, Start, Recovery und die Fakten jeder Runde. Tastendrücke einzuschleusen oder die Maus zu bewegen wurde grundsätzlich ausgeschlossen, ebenso ein Demomodus, der Fahrten ohne echten Simulator erzeugt.

Die Uhr einer Fahrt ist eine feste Frist auf der monotonen Uhr des PCs. Ein festgefahrenes Auto zurückzusetzen berührt sie nicht, eine Änderung der Systemzeit ebenso wenig. In echten Läufen endeten Fahrten von 120 und 110 Sekunden höchstens eine Zehntelsekunde neben ihrer Frist. Der nächste Fahrer war 0,4 Sekunden nach dem Aufruf bereit, weil das Spiel zwischen den Fahrern weiterläuft.

Eine Runde muss sich ihren Platz verdienen

Die schnellste Zeit, die ein Spiel meldet, ist noch kein Ergebnis. STINTDECK liest Runden über zwei Quellen und gibt jeder eines von drei Urteilen: gültig, ungültig oder ungeprüft. Eine ungültige Runde trägt ihren Grund, etwa die Streckenbegrenzung, ein Fahrzeug-Reset, eine von der KI des Spiels gefahrene Runde, eine Pause oder eine Runde, die vor der Freigabe begann. Eine Runde, deren Gültigkeit sich nicht feststellen lässt, bleibt ungeprüft und wird nie gewertet.

Derselbe Gedanke entscheidet, was eine Bestenliste ist. Sie gehört zu einem Wettbewerb, und den bestimmt, was Zeiten vergleichbar macht: Fahrzeug, Strecke, Fahrhilfen und Bedingungen. Stationen mit derselben Konfiguration teilen sich eine Liste. Ändert sich die Konfiguration, beginnt eine neue.

Mit dem echten Spiel wurde diese Regel nur in einer Richtung beobachtet. Von der KI des Spiels gefahrene Runden wurden mit ihren Gründen als ungültig verworfen. Eine saubere Runde eines Menschen ließ sich auf dem Entwicklungs-PC nicht fahren, weil er kein Lenkrad hatte.

Der Simulator-PC entscheidet, der Server merkt sich

Eine Architekturentscheidung trägt den Rest. Der Agent ist die Autorität für das, was am Simulator geschieht, und das Backend ist die Autorität für Menschen und Reihenfolge. Eine Fahrt übersteht deshalb eine verlorene Verbindung. Der Agent hält seinen Zustand in einer lokalen Datenbank und sendet Ergebnisse aus einem Postausgang, bis der Server sie bestätigt hat, und der Server nimmt jede Nachricht nur einmal an.

Agenten verbinden sich nach außen, ein Simulator-PC braucht also keinen offenen eingehenden Port. Gekoppelt wird ein Simulator-PC mit einem Einmalcode. Sein Geheimnis erzeugt er selbst, und es lässt sich aus der Web-App widerrufen. Befehle sind typisiert und an eine Station, einen Lauf und eine Ablaufzeit gebunden. Ein zweiter Tipp auf Start oder ein Befehl für den vorigen Fahrer bleibt deshalb ohne Wirkung.

Diese Wege sind durch Tests mit einem nachgestellten Simulator abgedeckt. Ein echter Netzausfall während einer echten Fahrt wurde noch nicht herbeigeführt.

Daten, die jemandem gehören

Mehrere Organisationen nutzen dieselbe Plattform. Ihre Trennung erzwingt die Datenbank mit Row Level Security. Ein vergessener Filter im Anwendungscode kann deshalb keine Zeilen einer anderen Organisation zeigen. Kiosk-Tablets und Bestenlisten-Displays bekommen keine Konten. Sie bekommen Links, die genau einen Bildschirm öffnen und sich widerrufen lassen.

Für Teilnehmer speichert die Plattform, worin eingewilligt wurde, mit dem genauen Wortlaut. Sie hält die Marketing-Einwilligung getrennt und freiwillig, löscht personenbezogene Daten nach einer Frist, die der Veranstalter festlegt, und hält Exporte und Löschungen in einem Protokoll fest, an das nur angehängt werden kann. Die Texte selbst müssen vom Veranstalter und einem Anwalt kommen.

Was geprüft ist und was nicht

Das Projekt führt eine Feature-Matrix mit einer ehrlichen Spalte: der höchsten Prüfstufe, die jede Funktion erreicht hat. Diese Seite hält sich daran.

Mit dem echten Spiel auf dem Entwicklungs-PC beobachtet wurden die Kopplung, die Konfiguration aus der eigenen Liste des PCs mit 220 Fahrzeugen und 65 Streckenlayouts, der Start ohne Launcher, das Freigabe-Tor, die Startsequenz, die Uhr der Fahrt, das Zurücksetzen des Autos, Ergebnisse und der nächste Fahrer. Die Plattform läuft seit dem 13. Oktober 2026 auf ihrem Server.

Noch nicht beobachtet sind eine gültige Runde eines Menschen am Lenkrad, die Anzeige im Vollbild auf einem Rig, Dreifach-Bildschirme und Virtual Reality. Bei einem Event war die Plattform noch nicht im Einsatz. Der Einsatz des Spiels bei öffentlichen oder kommerziellen Events braucht außerdem die Erlaubnis der Rechteinhaber, die in den Notizen des Projekts als offen geführt wird.

Was diese Arbeit für Kundenprojekte zeigt

STINTDECK zeigt, wie CIDIX ein Produkt in drei sehr verschiedenen Umgebungen zugleich baut: eine mandantenfähige Web-Plattform mit Echtzeit, ein Windows-Programm, das sich selbst installiert und aktualisiert, und Code, der in der Software eines anderen läuft. Die Teile teilen sich ein Regelwerk und ein Nachrichtenformat, mit Testdaten, die sowohl die C#- als auch die TypeScript-Seite bestehen muss.

Der Ansatz lässt sich auf jedes System übertragen, in dem Geräte vor Ort die Arbeit tun und eine Plattform Menschen um sie herum koordiniert, etwa Maschinen in einer Fertigung, Terminals an einem Veranstaltungsort oder Prüfstände in einem Labor. Die Fragen sind dieselben. Wer hat die Autorität, wenn die Verbindung abreißt, was zählt als gültiges Ergebnis, und was ist wirklich geprüft?

Technik und wofür sie da ist

SvelteKit
Web-App für Veranstalter, Team, Kioske, Tickets und Displays
Node.js, TypeScript, Fastify
API, Echtzeit-Hub und Gateway für die Simulator-PCs
PostgreSQL
Daten mit Mandantentrennung durch Row Level Security
C# und .NET mit WPF
Station Agent auf dem Simulator-PC
Lua
Brücke im Spiel für Freigabe, Start, Recovery und Rundenfakten
Docker und Caddy
Betrieb auf einem Server