Nächster Showdown

Hier ist eine zusammenhängende Fassung für eine News / Changelog-Ankündigung. Ich habe die vielen einzelnen Entwicklungsschritte zu sinnvollen Versionsthemen gebündelt, damit es für Nutzer verständlich bleibt und nicht wie ein internes Entwicklerprotokoll wirkt.
Aus einer einfachen Turnieranzeige ist Schritt für Schritt ein umfangreiches 20ESPORTS Event- und Turniersystem geworden.
Über die Versionen v1 bis v8.61 wurden Turnierverwaltung, Challonge-Anbindung, eigene lokale Turniere, Registrierung, Spielerprofile, Teams, Check-in, Matchverwaltung, Administration und die Integration in Nexpell aufgebaut und immer weiter verbessert.
Die erste Version legte die Grundlage für das neue Turniersystem.
Damit war die Basis für die weiteren Entwicklungsschritte geschaffen.
In den folgenden Versionen wurde die Turnieranzeige deutlich erweitert.
Die Anzeige entwickelte sich damit von einer einfachen Übersicht zu einer echten Turnierplattform.
Die Unterstützung verschiedener Turnierarten wurde ausgebaut.
Unter anderem kamen Strukturen für:
hinzu.
Die Turnierdarstellung wurde außerdem stärker an das jeweilige Format angepasst.
Bei Eliminationsformaten können Turniere als Bracket dargestellt werden, während andere Formate entsprechend als Teilnehmer-, Match- oder Gruppenübersichten dargestellt werden.
Die Challonge-Anbindung wurde weiter professionalisiert.
Ein wichtiger Grundsatz wurde dabei etabliert:
Die öffentliche Seite liest primär aus der lokalen Datenbank. Die Challonge-Synchronisierung erfolgt separat.
Mit v7 wurde das Projekt deutlich umfangreicher.
Neben Challonge-Turnieren können nun auch eigene lokale Turniere angelegt und verwaltet werden.
Damit ist das System nicht mehr ausschließlich von Challonge abhängig.
Lokale Turniere können unter anderem:
Für lokale Turniere wurden verschiedene Zustände eingeführt bzw. berücksichtigt:
pending – geplant / noch nicht gestartet
underway – Turnier läuft
complete – abgeschlossen
ended – beendet/geschlossen
Dadurch lässt sich beispielsweise automatisch verhindern, dass während eines laufenden Turniers neue Anmeldungen erfolgen.
Turniere können Start- und Check-in-Zeiten besitzen.
Auf der öffentlichen Turnierseite werden diese Informationen angezeigt:
Damit ist für Teilnehmer direkt ersichtlich, wann ein Event beginnt und wann ein Check-in erforderlich ist.
Die Registrierung wurde zu einem eigenen System ausgebaut.
Unterstützt werden unter anderem:
Bei lokalen Turnieren erfolgt die Registrierung direkt über 20ESPORTS.
Bei importierten Challonge-Turnieren führt „Jetzt anmelden“ weiterhin direkt zur entsprechenden Challonge-Anmeldung.
Mit v8 wurde aus dem Turniersystem zunehmend eine komplette Esports-Plattform.
Spieler erhalten eigene 20ESPORTS-Profile.
Dabei können unter anderem hinterlegt werden:
Das Alter kann für die Registrierung erfasst werden, wird aber nicht öffentlich angezeigt.
Bestehende ältere game_account-Daten wurden dabei nicht verworfen, sondern in das neue System übernommen.
Ein großer Entwicklungsschritt war die Verbindung mit dem bestehenden Nexpell-Login.
Das Turniersystem verwendet dabei die bereits bestehende Nexpell-Anmeldung.
Es gibt kein zweites Passwortsystem für 20ESPORTS.
Stattdessen wird die bestehende Nexpell-Session verwendet:
Die Verknüpfung erfolgt über die Nexpell-User-ID.
Ein vollständiges Teamsystem wurde aufgebaut.
Spieler können:
Team-Einladungen besitzen außerdem eine begrenzte Gültigkeit.
Teams erhalten eigene öffentliche Profile.
Dort können unter anderem angezeigt werden:
Private Daten wie Gameaccounts oder Discord-Kontaktdaten werden auf dem öffentlichen Teamprofil nicht angezeigt.
Für lokale Teamturniere wurde die Registrierung entsprechend erweitert.
Bei beispielsweise:
kann der eingeloggte Captain eines seiner eigenen Teams auswählen.
Das System überprüft dabei unter anderem:
Zusätzliche Teammitglieder können als Ersatzspieler/Substitutes gespeichert werden.
1v1-Turniere bleiben dagegen auf Einzelspielerregistrierung ausgelegt.
Die lokale Matchverwaltung wurde erheblich erweitert.
Matches können unter anderem verwaltet werden mit:
Unterstützt werden:
Bei BO3 werden zwei gewonnene Maps benötigt, bei BO5 drei.
Die Anzeige der Ergebnisse wurde ebenfalls angepasst, beispielsweise:
TWENTY1 13
TWENTY2 9
statt einer getrennten Score-Darstellung.
Für längere Matchserien können einzelne Map-Ergebnisse gespeichert werden.
Damit lassen sich beispielsweise BO3- oder BO5-Matches detaillierter abbilden.
Die Gewinnerberechnung erfolgt anhand der erforderlichen Map-Siege.
Ein wichtiger Bestandteil der Matchlogik ist die Weitergabe von Gewinnern in die nächste Runde.
Dabei wurde insbesondere darauf geachtet, dass:
Dabei wurde außerdem ein Fehler in der Reihenfolge der BO3/BO5-Berechnung behoben.
Abgeschlossene Turniere wurden in ein eigenes Archiv überführt.
Der Menüpunkt wurde später bewusst umbenannt zu:
Abgeschlossene Events
Damit lassen sich vergangene Turniere weiterhin aufrufen und anzeigen.
Die Darstellung des Archivs orientiert sich dabei an der normalen Turnieransicht.
Mit der Erweiterung auf mehrere aktive Turniere wurde die Startseite entsprechend angepasst.
Statt nur eines Events kann das System mehrere gleichzeitig aktive Turniere anzeigen.
Die Überschrift lautet:
Aktuelle Events
Jedes Event wird separat dargestellt und kann direkt geöffnet werden.
Die Navigation wurde vollständig überarbeitet und auf ein kompakteres Burger-Menü umgestellt.
Aktuelle Einträge sind unter anderem:
Nicht relevante Punkte werden abhängig vom Loginstatus bzw. Kontext ausgeblendet.
Für die Verwaltung wurde ein eigenes Admin Dashboard aufgebaut.
Dort können Administratoren unter anderem:
Die Administration wurde außerdem auf eine volle Breite umgestellt, während die öffentliche Ansicht weiterhin kompakt bleibt.
Die Admin-Oberfläche wurde im Verlauf weiter optimiert.
Dazu gehören unter anderem:
Match- und Ergebnisverwaltung wurde dadurch insbesondere bei größeren Turnieren übersichtlicher.
Die Matchverwaltung wurde zusätzlich nach:
strukturiert.
Dadurch lassen sich komplexere Turnierabläufe wesentlich übersichtlicher verwalten.
Da das Turniersystem in Nexpell eingebettet ist, wurde der öffentliche Bereich zusätzlich abgesichert.
Das Ziel:
Das öffentliche 20ESPORTS-Turniersystem soll regulär über die Nexpell-Eventseite eingebettet aufgerufen werden.
Der Adminbereich bleibt davon getrennt.
Die Zugriffskontrolle wurde anschließend mehrfach verbessert, um normale iframe-Aufrufe nicht zu blockieren.
Das gesamte Eventsystem wurde für die Darstellung innerhalb der Nexpell-Seite optimiert.
Dabei wurde unter anderem berücksichtigt:
/de/page/eventsystem/1
Der Hintergrund wurde an Nexpell angepasst:
#101317
Ein besonders kniffliger Teil war die Navigation innerhalb des iframes.
Ziel war:
Wenn ein Benutzer beispielsweise ein Event oder das Archiv geöffnet hat und die Seite neu lädt:
Die aktuelle Seite bleibt erhalten.
Auch hier soll der aktuell geöffnete Bereich erhalten bleiben.
Wenn der Benutzer erneut über die Nexpell-Navigation auf das Eventsystem geht:
Aktuelle Events wird geöffnet.
Diese Logik wurde über mehrere Versionen korrigiert und ist seit v8.61 entsprechend umgesetzt.
Dabei wurde zunächst ein Redirect-Loop entdeckt und anschließend behoben.
Im Laufe der Entwicklung wurden zahlreiche Fehler beseitigt.
Dazu gehörten unter anderem:
Einige scheinbare Matchfehler stellten sich dabei letztlich als bereits vorausgefüllte Demo-Daten heraus und nicht als Fehler in der eigentlichen Matchlogik.
Parallel zur Oberfläche wurde die Datenbank Schritt für Schritt erweitert.
Heute umfasst das System unter anderem Strukturen für:
Dabei wurde darauf geachtet, bestehende Daten möglichst weiterzuverwenden und Erweiterungen kompatibel einzubauen.
Ein wichtiges Ergebnis der Entwicklung ist die klare Trennung verschiedener Bereiche:
Login & Benutzerverwaltung
Spieler, Teams & Turniersystem
Externe Turnierquelle
Cache und eigene Turnierdaten
Dadurch kann 20ESPORTS sowohl mit Challonge als auch vollständig mit eigenen lokalen Turnieren arbeiten.
Mit v8.61 ist das System mittlerweile deutlich mehr als eine einfache Challonge-Anzeige.
Es bietet:
✅ Challonge-Anbindung
✅ lokale Turniere
✅ verschiedene Turnierformate
✅ Brackets
✅ Gruppen und Phasen
✅ Matchverwaltung
✅ BO1 / BO3 / BO5
✅ Map-Ergebnisse
✅ Spielerprofile
✅ Nexpell-Login-Integration
✅ Teams
✅ Teameinladungen
✅ Teamregistrierung
✅ Einzelspielerregistrierung
✅ Wartelisten
✅ Check-in
✅ Startzeiten
✅ Archiv
✅ mehrere aktive Events
✅ Admin Dashboard
✅ Such- und Filterfunktionen
✅ iframe-Integration in Nexpell
✅ geschützten öffentlichen Bereich
✅ persistente Navigation
✅ sauberes Verhalten bei F5 und erneutem Einstieg