Adolar Songster
Teil des Adolar Universums · adolar-songster.html · GitHub
Adolar Songster ist ein privates Musik-Zeitleisten-Ratespiel für kleine Gruppen: Songs vom angebundenen Adolar-Server anhören und chronologisch richtig in die eigene Kartenreihe einsortieren. Zugang ausschließlich per Einladungscode.
Was ist Songster?
Ein Musik-Zeitleisten-Ratespiel für 2–5 Spieler pro Tisch, optional mit Zuschauern. Jede Runde hören alle Spieler gleichzeitig denselben Song-Ausschnitt vom angebundenen Adolar-Server und sortieren zeitgleich ihre eigene Jahreskarte an die richtige Stelle der eigenen Zeitleiste ein — gespielt wird nicht nacheinander, sondern parallel, damit die Partien kurz bleiben und niemand auf seinen Zug warten muss. Wer zuerst 10 korrekt platzierte Karten hat, gewinnt die Partie.
Registrierung & Anmeldung
- Registrieren (
/register): Benutzername, E-Mail, Passwort und ein gültiger Einladungscode sind Pflichtfelder. Ein Code kann fest vorgegeben sein, etwa per Einladungslink mit ?invite=CODE. Fehlermeldungen weisen auf ungültige, abgelaufene, deaktivierte oder aufgebrauchte Codes hin. - Anmelden (
/login): Benutzername und Passwort.
/setup) in 4 Schritten durch die Ersteinrichtung: Admin anlegen, Musikdaten-Quelle konfigurieren, erste Einladung erzeugen, Testtisch samt Funktionstest.Startbildschirm
Nach der Anmeldung erscheint der Markenschriftzug „Adolar Songster“ mit dem Untertitel „Zeitleisten-Ratespiel“ sowie die Gesamtzahl aller bisher auf dem Server abgeschlossenen Partien.
Das Menü führt zu: Zur Lobby, Songster PlayLists, Anleitung, Rangliste, Profil, außerdem — je nach Rechten — Einladungen (bei Einladungsrecht) beziehungsweise Admin-Bereich (bei Admin-Rolle), sowie Abmelden.
Songster PlayLists listet alle für Songster freigegebenen Playlists mit Name und (falls hinterlegt) Beschreibung — nützlich, um vor der Tischerstellung zu sehen, welche Songquellen zur Auswahl stehen.
Lobby
Die Lobby (/lobby) listet alle öffentlichen, offenen Tische mit Name, aktueller Spieleranzahl/Max., Zuschaueranzahl/Max. (falls erlaubt) und dem Alter des Tisches (hh:mm seit Erstellung). Die Liste aktualisiert sich live per WebSocket, sobald sich an einem Tisch etwas ändert.
Beitreten versucht zunächst den Beitritt als Spieler. Erfüllt man die Mindestanforderungen des Tisches nicht, wird man — sofern der Tisch Zuschauer erlaubt — automatisch stattdessen als Zuschauer aufgenommen.
„Neuen Tisch erstellen“ führt zum nächsten Abschnitt.
Tisch erstellen
Beim Anlegen eines Tisches (/tisch/neu) stehen folgende Felder und Optionen zur Verfügung:
| Feld | Bedeutung |
|---|---|
| Tischname | Pflichtfeld |
| Sichtbarkeit | Öffentlich (in der Lobby sichtbar) oder Privat — für private Tische wird automatisch ein Beitrittscode generiert |
| Max. Spieler | 2–5 |
| Zuschauer erlauben | Häkchen; bei Aktivierung zusätzlich Max. Zuschauer (0–50) |
| Songquelle | eine konfigurierte Adolar-Playlist, oder „Lokaler Song-Pool“ (Standard ohne Adolar-Anbindung) |
Beitrittsvoraussetzungen
Unter „Zusätzliche Optionen“ lässt sich je eine Mindestanforderung für Karmapunkte, Spielpunkte und Anzahl Spiele per Checkbox aktivieren — nur aktivierte Kriterien gelten, ansonsten besteht keine Anforderung. Wer eine aktivierte Anforderung nicht erfüllt, kann dem Tisch nur als Zuschauer beitreten, nicht als Spieler.
Der/die Erstellende wird automatisch als erste(r) Spieler(in) gesetzt.
Im Tisch
Die Tischansicht (/tisch/:id) zeigt Sitzplätze für Spieler und Zuschauer, den Bereitschaftsstatus, einen Beitreten-Button für noch nicht Sitzende (mit Hinweis auf evtl. Anforderungen) sowie — bei privaten Tischen für den Besitzer — den Einladungslink.
Jede(r) Spieler(in) markiert sich als bereit; sobald alle bereit sind und die konfigurierte Spielerzahl erreicht ist, startet die Partie automatisch. Der Tisch-Admin kann alternativ manuell früher starten, sobald alle aktuell Sitzenden bereit sind.
Chat & Reaktionen
Lobby-Chat: Angemeldete Nutzer können sich bereits vor dem Tischbeitritt austauschen. Angezeigt werden maximal 50 Nachrichten aus den letzten 30 Minuten.
Tisch-Chat: Eigener Kommunikationskanal für aktive Spieler und Zuschauer eines Tisches.
Playboard-Reaktionen: Während der laufenden Partie tritt an die Stelle des freien Chats ein Satz kurzer, phasenabhängiger Emoji-/Text-Reaktionen. Sie erscheinen am eigenen Spieleravatar und auf dem gemeinsamen Hostdisplay.
Automatisches Aufräumen inaktiver Tische
War an einem Tisch 60 Minuten lang keine Interaktion zu verzeichnen (Beitritt, Verlassen, Bereit-Status, Start, Zug/Guess, „Ich bin noch da“), wird er automatisch gelöscht — ohne Verlassen-Malus und ohne Anrechnung als gespieltes Spiel für die Beteiligten.
Eine Minute vor dem Löschen erscheint eine Warnung mit Countdown und dem Button „Ich bin noch da“, der den Timer zurücksetzt.
Spielablauf & Songster-Token
Punkte & Karma
| Wert | Regel |
|---|---|
| Songster-Punkte | Gewinner(in) einer Partie erhält 1 + Anzahl Mitspieler Punkte |
| Karma (Match beendet) | +5 für jede(n) Spieler(in), die/der ein Match komplett zu Ende gespielt hat |
| Karma (vorzeitig verlassen) | -5, plus -1 je weiterem noch sitzenden Mitspieler — entfällt bei Rückkehr binnen 90 Sekunden |
| Gespielte Spiele | zählt für jede(n) Spieler(in), die/der in einer abgeschlossenen Partie mindestens eine Runde tatsächlich mitgeraten hat — nicht nur dabeigesessen ist |
Siegerbildschirm & PDF-Export
Nach Spielende zeigt der Siegerbildschirm Sieger(in), den Endstand aller Spieler (Rang, Kartenanzahl) und einen Countdown bis zum automatischen Tisch-Schließen (60 Sekunden, falls niemand neu startet). Buttons: „Nochmal spielen“ und „Als PDF speichern“.
Der PDF-Export enthält:
- Kopf „Adolar Songster“, Datum („Spiel vom …“), Anzahl gespielter Runden
- Tisch-ID und Playlist-ID (klein aufgedruckt, für die Fehleranalyse durch einen Admin)
- Spielerliste: Name (Rang), Songster-Punkte / Karmapunkte / gespielte Spiele
- Sieger-Zeile
- Für jede(n) Spieler(in): Initialienkästchen und die eigene Zeitleiste mit allen Jahreskarten
Rangliste
Die Rangliste (/rangliste) zeigt die Top 10 nach globaler Rangformel:
Ist die eigene Position nicht in den Top 10, wird zusätzlich eine separate Zeile mit dem eigenen aktuellen Rang angezeigt. Dieselbe Rangzahl erscheint auch im Profil und im Live-Tooltip während einer Partie (Hover auf einen Spieler-Avatar).
Profil
Das Profil (/profil) zeigt Benutzername, E-Mail, Songster-Punkte, Karma-Punkte, gespielte Spiele, aktuellen Rang und Rolle (Admin/Mitglied). Passwort ändern erfordert das aktuelle Passwort sowie ein neues mit mindestens 8 Zeichen.
Einladungen
Nutzer mit Einladungsrecht erstellen unter /einladungen Einladungscodes mit Ablaufdatum (Standard 14 Tage). Bestehende Einladungen lassen sich deaktivieren.
| Rolle | Monatsquote | Nutzungszahl pro Code |
|---|---|---|
| Delegierte (nicht-Admin) Nutzer | max. 3 Codes/Monat | fest auf 1 (nicht editierbar) |
| Admins | keine Quote | frei wählbar |
Admin-Bereich
Nur für Nutzer mit Rolle „Admin“, erreichbar unter /admin:
| Bereich | Funktion |
|---|---|
| Musikquelle | Adolar-Server-Adresse/Token konfigurieren, Sync-Status („zuletzt synchronisiert“), manueller Sync-Anstoß — läuft asynchron im Hintergrund, blockiert die Oberfläche nicht |
| Einladungen | wie im Abschnitt „Einladungen“, hier für alle Nutzer einsehbar und verwaltbar |
| Song-Pool | Suche über Titel/Interpret statt komplettem Listenabruf; Titel/Interpret/Jahr/Quelle/Status. Jahr ist per Klick inline korrigierbar — eine manuelle Korrektur wird beim nächsten Adolar-Sync nicht mehr überschrieben |
| Playlist-Suche | Playlist-ID einfügen (steht auf dem Spielabschluss-PDF) und die für diese Partie tatsächlich gespielten Tracks samt erkanntem Jahr durchgehen; falsch erkannte Tracks lassen sich hier auf den richtigen Song korrigieren. Zur Fehleranalyse gedacht, jede Playlist wird nur 1 Woche aufbewahrt und danach automatisch gelöscht |
| Playlistadministration | Playlist wählen und einen alternativen Anzeigenamen sowie eine Beschreibung hinterlegen — ersetzt den rohen Adolar-Namen überall (Tischerstellung, Song-Pool, „Songster PlayLists“-Übersicht) und übersteht künftige Adolar-Syncs unverändert. Eine Playlist lässt sich zusätzlich als Standardplaylist markieren: sie erscheint bei der Tischerstellung zuerst, danach folgen die übrigen Playlists alphabetisch, der lokale Song-Pool zuletzt. |
| Tische | Übersicht aller Tische (Name, Besitzer, Sichtbarkeit, Status, Spieler-/Zuschauerzahl) mit „inaktiv“-Kennzeichnung ab 30 Minuten ohne Interaktion — rein informativ, deutlich vor der 60-Minuten-Löschschwelle |
| Nutzer | Einladungsrecht erteilen/entziehen, Einladungen widerrufen |
| Kommunikation | Text-Smileys serverseitig automatisch in Emojis umwandeln, Wortfilter (ersetzt konfigurierte Wörter/Phrasen durch *piep*), sowie die freie Belegung der sechs Playboard-Reaktionszustände mit je bis zu acht Motiven aus einem kuratierten Katalog inkl. eigener Beschriftung und Sortierung — Änderungen aktualisieren bereits geöffnete Playboards live |
Rechtliches & Versionsstand
Aktueller Stand: Beta (v0.5.3-beta). Das Kernspiel ist vollständig getestet (CI inkl. CodeQL/Docker-Image-Scan), aber noch nicht produktionsgehärtet für große Nutzergruppen. Änderungsverlauf siehe GitHub Releases.