Die Zeitregelung ist alles andere als trivial. Um die Problematik der Berechnung der Gesamtbedenkzeit zu erfassen, hilft es, sich Gedanken zu machen, was eine Zeiterfassung können soll. Klar dürfte sein, dass eine Zeitmessung durch den gleichen Programmcode erfolgen sollte; der Programmieraufwand steigt sonst ins Unermessliche und Wartungen etc. sind praktisch nicht mehr praktikabel. Denken wir also über ein Modell nach, das universell einsetzbar und von Benutzern zu verstehen ist.
Welche Bedenkzeiten soll es geben? Nur welche pro Spiel (Gesamtbedenkzeit) oder auch welche pro Zug (wie bisher)? Ist es besser, die Zeitmessung vorwärts (Stoppuhr) oder rückwärts (Fischeruhr) laufen zu lassen oder ist es egal? Soll es ein Inkrement berücksichtigt werden, wenn ja, einmalig oder wiederkehrend nach x Zügen? Wie wird Urlaub berücksichtigt, passt das in die angedachten Modelle? Zählt die Zeit sofort oder gibt es eine "Gnadenzeit"? Zeitnahme nach ICCF-Regeln erfolgt z. B. erst, wenn 24 Stunden vergangen sind, d. h. Züge innerhalb der ersten 24 Stunden verbrauchen keine Zeit. Soll die Zeiterfassung ausschließlich für das Fernschach gelten oder auch für das Live-Schach, was kleinere Zeiteinheiten braucht? Muss man ggf. beim Blitzen das Antwortzeitverhalten vom Server oder der Internetverbindung berücksichtigen? Was ist überhaupt das richtige Zeitmaß für alle Erfordernisse - Minuten, Sekunden, Millisekunden?
Wann erfolgt die Zeitprüfung, also an welchen Stellen hat der Programmcode oder der Server zu prüfen, ob eine Zeitüberschreitung vorliegt? Beim Auflisten der laufenden Spiele? Beim Betreten den Spiels? Beim Ziehen? Wie geht er mit Zeitüberschreitung um - automatisches Ende oder nicht? Wie erfährt der Spieler ggf. davon, beim automatischen Ende ist das Spiel plötzlich aus der Liste der laufenden Spiele verschwunden? Wie ist das mit den unterschiedlichen Zeitzonen? Macht es einen Unterschied, wenn Spieler A täglich um 15:00 Uhr ins Spiel schaut und zieht, Spieler B täglich um 15:05 Uhr - verbraucht Spieler A also immer (fast) einen ganzen Tag, Spieler B nur 5 Minuten?
Kriegt man das in ein flexibles System mit freier Bedenkzeitwahl durch Spieler oder Turnierleiter oder sind das schon so viele Parameter, dass man doch besser Zeiten zur Auswahl vorgibt? Wie kann der Server die Modelle differenzieren und seinen Programmablauf durchführen? Welche Funktionen muss das Programm anbieten, welche Berechnungen durchführen? Wie kann das Programm überhaupt feststellen, wessen Uhr gerade läuft? Wie geht das mit den Inkrements? Wie sieht das mit der Uhrenanzeige aus, muss die Uhr kontinuierlich angezeigt werden, sie könnte ja in der nächsten Sekunde ablaufen?
Und wenn wir das alles technisch geklärt haben, kommt das "UX-Problem", die Benutzererfahrung. Wie selbsterklärend ist das alles, so dass ein Spieler eine Bedenkzeit wählt, die Uhr läuft immer schön im Wechsel und beide Spieler wissen, über wie viel Restzeit sie im gewählten Modus verfügen? Oder wie kalkuliert sich eine Turnierdauer, wenn man Gesamtbedenkzeit, Inkrement, Gnadenzeit, Server-Antwortzeit und ggf. noch Urlaub berücksichtigt?
Für einen Programmierer ist sowas zu durchdenken schon eine ganz gute Herausforderung und mindestens eine gute Übung. Daraus ein rundes Konzept zu machen, ist natürlich erst die halbe Miete. Umgesetzt werden muss es auch noch. Und halt, die jetzigen Spiele gibt es ja auch noch … wie kommen die ins neue Modell? Riecht nach Parallelbetrieb, bis die laufen Spiele beendet sind … Und passt das, was wir uns ausgedacht haben, in die vorhandenen chessmail-Strukturen, oder braucht das chessmail V4 …? Was ist, wenn das Modell in der Praxis nicht funktioniert, was ist im Fehlerfall etc.?
Wer so ein Rad neu erfinden muss, ist bestimmt nicht zu beneiden. Auf den Hilfeseiten des ICCF kriegt man schon einen guten Einblick, was dort alles bedacht wird, um eine faire Zeitmessung beim "elektronischen Briefschach" herzustellen. … Wie war das nochmal mit der "Double Time"-Geschichte? :-)