Nächster Showdown

Aus einer einfachen Turnieranzeige ist Schritt für Schritt ein umfangreiches 20ESPORTS Event- und Turniersystem geworden.
Über die Versionen v1 bis v10 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
Die bisherige große Turnierliste am Ende des Adminpanels wurde entfernt.
Stattdessen gibt es jetzt eine permanent sichtbare Turnierauswahl:
🏆 TURNIER AUSWÄHLEN [ 20ESPORTS Pro Cup 24 · Lokal · Aktiv ▼ ]
Dabei werden u. a. angezeigt:
Die frühere „Übersicht“, die im Wesentlichen nur als Navigation diente, wurde zu einem echten Turnier-Dashboard ausgebaut.
Die Übersicht zeigt jetzt u. a.:
Je nach Turnier werden wichtige Werte kompakt dargestellt:
Das Dashboard kann auf Dinge hinweisen, die Aufmerksamkeit benötigen, z. B.:
Direkte Hinweise bzw. Verknüpfungen zu Bereichen, die als Nächstes relevant sind.
Darstellung des Fortschritts bei:
Statusübersicht für:
Ein Bereich für relevante letzte Aktionen/Synchronisationen.
Die bisher direkt sichtbare „Neues Turnier“-Seite wurde aus dem normalen Dashboard entfernt.
Stattdessen gibt es einen eigenen Button:
➕ Neues Turnier
Dieser befindet sich bei den globalen Navigationselementen zwischen:
Öffentliche Seite → Neues Turnier → Past Events → Abmelden
Erst beim Klick wird die bisherige Seite zum Erstellen eines Turniers geöffnet.
Damit startet das Adminpanel nicht mehr mit einem großen Formular.
Die vorhandenen Bereiche wurden klar voneinander getrennt:
Die Übersicht ist dabei wirklich Informations-/Dashboard-Bereich, während Stammdaten weiterhin für die Konfiguration zuständig ist.
Wir haben zusätzlich eine eigene Mobile-Darstellung für das iPhone umgesetzt.
Dabei wurde nicht einfach nur die Desktopansicht verkleinert.
Die Turnierauswahl ist auch auf dem Handy prominent erreichbar und bleibt übersichtlich.
Die Informationen werden für kleine Displays aufbereitet:
Die ursprünglich getestete feste Navigation am unteren Bildschirmrand haben wir wieder verworfen.
Stattdessen gibt es jetzt:
Turnierkopf ↓ 🔧 Bereich auswählen ▼ ↓ Übersicht / ausgewählter Bereich
Das Dropdown enthält:
Übergreifend haben wir:
Damit wir es sauber auseinanderhalten:
Noch nicht integriert.
Der Challonge-Teil funktioniert bereits; als nächstes soll später Challengermode dazukommen, insbesondere wegen der CS2-Gameserver.
Geplant ist dann eine gemeinsame Struktur für:
20ESPORTS │ ├── Lokal ├── Challonge └── Challengermode │ └── CS2 Gameserver
Die haben wir besprochen, aber noch nicht als endgültige Funktion umgesetzt:
Ich würde den jetzigen Stand ungefähr so zusammenfassen:
Desktop: 🟢 fertig für die nächste Entwicklungsphase
Mobile: 🟢 brauchbarer erster produktiver Stand
Challonge: 🟢 API/Sync vorhanden und funktioniert
Event Calendar: 🟢 mit Archivierungslogik integriert
Challengermode: 🟡 wartet auf Developer-Zugang
CS2 Gameserver: 🟡 wartet auf Challengermode-Integration
Neu / geändert:
Ein wichtiger Punkt war die Navigation aus dem Nexpell-Profil.
Vorher:
Profil → Team → neues Browserfenster/Tab
Jetzt:
Nexpell-Profil → Team anklicken → 20ESPORTS Eventsystem → Teamseite im bestehenden iframe
Damit bleibt der Benutzer vollständig im bestehenden Eventsystem.
Dafür wurde der neue Einstiegspunkt
/challonge/open-team.php?id=...
eingeführt.
Dieser sorgt dafür, dass das gewünschte Team gespeichert und anschließend das Eventsystem geöffnet wird.
Die Navigation innerhalb des Eventsystems wurde erweitert.
Das System kann jetzt unterscheiden zwischen:
Dadurch wird nach dem Wechsel zum Eventsystem automatisch die gewünschte Teamseite im iframe geladen.
Die bestehende interne Navigation des Eventsystems bleibt dabei erhalten.
Die bereits zuvor eingebaute Teamintegration wurde weiter verbessert:
Das ist die aktuell getestete Version.
Die öffentliche Teamseite wurde von einer einfachen Team-/Mitgliederansicht zu einer richtigen Teamübersichtsseite erweitert.
Die Teamseite besitzt jetzt einen eigenen Kopfbereich mit:
Beispielsweise:
┌──────────────────────────────────────┐
│ [Logo] 20eSports │
│ TWENTY │
│ Team-Beschreibung │
└──────────────────────────────────────┘Der Mitgliederbereich wurde übersichtlicher aufgebaut.
Angezeigt werden unter anderem:
Die bestehenden Rollen aus tournament_team_members werden weiterhin berücksichtigt.
Das ist die größte Neuerung in v10.
Öffentliche Teamseiten können jetzt auch die Turnierhistorie des Teams anzeigen.
Geplante Darstellung:
Turniere
Teilnahme Platz Siege Spiele
---------------------------------------------------
Summer League 1. 4 6
Winter Cup 3. 2 5Damit wird die Teamseite zunehmend zu einer Art öffentlichem Teamprofil.
Auch die Turnierlinks folgen dem gleichen Prinzip wie die Teamlinks:
kein neues Fenster und kein neuer Tab.
Ein Turnier kann direkt innerhalb des bestehenden 20ESPORTS-Eventsystem-IFRAMEs geöffnet werden.
Die öffentliche Teamseite wurde außerdem so aufgebaut, dass die Darstellung auch bei kleineren Bildschirmbreiten sinnvoll bleibt.
Wichtig: Die öffentliche Teamseite bedeutet nicht, dass die Teamverwaltung öffentlich geworden ist.
Öffentlich:
Geschützt:
Die vorhandenen Besitzer-/Captain-/Authentifizierungsprüfungen bleiben bestehen.