Engineering
Tischtennis, Ringen, Basketball: eine Engine, drei grundverschiedene Sportarten
Ein konkreter Durchgang, wie dieselbe Wertungsinfrastruktur eine Ballwechsel-Sportart, eine Kampfsportart und eine Sportart mit Uhr abdeckt, ohne zu einem beliebigen Einheitsbrei zu werden.
Wir haben über Wertungsparadigmen in der Theorie geschrieben. Dieser Beitrag ist die konkrete Fassung: drei Sportarten, die wir tatsächlich betreiben, was jede verlangt und wo die gemeinsame Engine endet und sportartspezifische Arbeit beginnt.
Tischtennis: eine Ballwechsel-Sportart mit Rotationsproblem
Die Wertung wirkt einfach. Best-of-five oder -seven, Sätze bis 11, mit zwei Punkten Vorsprung, ohne Obergrenze. Die Komplexität steckt ganz im Aufschlag.
Der Aufschlag wechselt alle zwei Punkte, außer bei 10:10 (Einstand), wo er jeden Punkt wechselt, unbegrenzt lang. Im Doppel rotiert auch die Annahmereihenfolge, und sie ändert sich zwischen den Sätzen. Läuft die Rotation falsch, korrigiert der Schiedsrichter die Aufschlagreihenfolge mitten im Satz von Hand – genau die Reibung, die das System beseitigen soll.
Deshalb führt das Tischtennis-Modell den Aufschlagzustand als festen Bestandteil des Spielstands, abgeleitet aus der Punktfolge statt eingegeben. Weil er abgeleitet ist, korrigiert ein Schiedsrichter, der einen Punkt von vor drei Ballwechseln berichtigt, automatisch auch die Aufschlagrotation – eines dieser Details, die unsichtbar sind, wenn sie funktionieren, und zum Verzweifeln, wenn nicht.
Dazu kommt eine Datenmacke, auf die wir im Live-Betrieb gestoßen sind und die wir auf die harte Tour dokumentiert haben: In manchen Installationen wurden pro Ballwechsel nur die Punkte einer Seite erfasst, die des Gegners wurden abgeleitet. Für den Spielstand ist das in Ordnung, für Analytik auf Basis von Ballwechseln unbrauchbar, weil die Hälfte der Ereignisse fehlt. Beide Seiten pro Ballwechsel zu erfassen war Voraussetzung für jede Tischtennis-Matchanalyse überhaupt.
Abgeleiteter Zustand schlägt eingegebenen Zustand
Das allgemeine Prinzip dahinter: Alles, was sich aus der Punktfolge nach den Regeln berechnen lässt, sollte berechnet und nie eingegeben werden. Aufschlagrotation, Satzball, Matchball, ob die Zwei-Punkte-Regel aktiv ist, wer im Doppel als Nächstes annimmt. Jedes Feld, das ein Schiedsrichter von Hand pflegen muss, wird irgendwann um 20 Uhr am dritten Tag falsch sein.
Ringen: fortlaufende Punkte und plötzliches Ende
Ringen sprengt die Ballwechsel-Annahme vollständig. Es gibt kein einzelnes punktbringendes Ereignis zum Zählen – Punkte laufen innerhalb zeitlich begrenzter Runden fortlaufend auf, in verschiedenen Werten, für Aktionen unterschiedlicher Art, für beide Ringer, jederzeit.
Und ein Kampf kann augenblicklich enden. Ein Schultersieg beendet ihn unabhängig vom Spielstand. Ein technischer Überlegenheitsvorsprung beendet ihn in dem Moment, in dem der Vorsprung erreicht ist, mitten in der Runde. Das sind keine Sonderfälle, die man nachträglich behandelt, sondern Bedingungen, die die Engine nach jedem einzelnen Wertungsereignis prüfen muss, weil das Match womöglich schon vorbei ist.
Verwarnungen und Passivität fügen eine weitere Ebene hinzu: einen Zustand, der den Kampf beeinflusst, aber keine Wertung ist und später in Punkte umschlagen kann. Die Wertungsoberfläche braucht daher Punktwerte, Verwarnungserfassung, eine Schultersieg-Taste und eine Rundenuhr – ohne irgendetwas zusätzlich auf dem Bildschirm, denn ein Ringkampfrichter hat so gut wie keine Zeit, nach einem Bedienelement zu suchen.
Basketball: Die Uhr ist der schwierige Teil
Die Wertungsarithmetik im Basketball ist die einfachste der drei – zwei, drei oder ein Punkt, einem Spieler und einem Team zugeordnet. Die Uhr macht es schwierig.
Die Spielzeit ist ein Zustand, der läuft, stoppt und zwischen Wertungsgerät, Hallenanzeige und dem Bildschirm jedes Zuschauers übereinstimmen muss. Eine per Polling synchronisierte Uhr driftet innerhalb eines Viertels sichtbar. Was funktioniert, ist, die Übergänge der Uhr zu übertragen – zu diesem Zeitpunkt gestartet, zu jenem gestoppt – und jeden Client den aktuellen Wert lokal berechnen zu lassen. Jeder Bildschirm leitet dann dieselbe Zeit aus denselben Ereignissen ab, und ein Client, der sich nach einem Ausfall wieder verbindet, berechnet sofort die richtige Zeit, statt von einem veralteten Wert fortzufahren.
Was wirklich gemeinsam ist
Bei so großen Unterschieden zwischen den dreien ist die Frage berechtigt, was die gemeinsame Engine überhaupt beiträgt. Wie sich zeigt: ziemlich viel – und nichts davon ist Wertungslogik.
- Der Ereignisstrom: geordnet, nur anfügend, offlinetauglich, wiedergebbar. Für alle drei identisch.
- Serverseitige Wiedergabe als Quelle der Wahrheit, damit Korrekturen überall gleich funktionieren.
- Verteilung an Live-Seiten, Turnierbäume, Übertragungs-Overlays und Analytik – ein einziger Veröffentlichungsweg.
- Turnierstruktur: Auslosungen, Turnierbäume, Spielplanung, Ergebnisse und Ranglisten – denen egal ist, welche Sportart das Ergebnis geliefert hat.
- Offline-Warteschlange und Abgleich, einmal geschrieben und von jeder Sportart geerbt.
Sportartspezifisch sind die Regelauswertung und die Wertungsoberfläche – die beiden Dinge, bei denen es nicht anders geht. Dass alles andere gemeinsam ist, macht die einunddreißigste Sportart zu einer Sache von Wochen statt zu einem Neubau.