MUTEC – Einheitliche Spiele
MUTEC – Einheitliche Spiele
Stand 13.10.2026: Pong, Pöng, Papierflug und Finde den Ort haben optionale Zweispielerrunden, eigene Top-10-Listen und qualifizierte Arcade-Einträge.
Vor und nach dem Spiel
Die jeweilige Liste erscheint nur auf der Electron-Anzeige vor dem Start und nach Ende. Auf dem Smartphone stehen ausschließlich das eigene Ergebnis, der Qualifikationshinweis und gegebenenfalls drei Zeichen A–Z/0–9 zum Eintragen. Während des Spiels und bei einer Verbindungspause bleiben die Listen ausgeblendet. Gemeinsame Module: control/game-scores.js und realtime/game-scores.js.
Der Server entscheidet über den Eintrag: abgeschlossene Runde, positive Punkte und Platz in der Top 10. Gleichstände werden nach kürzerer Zeit und anschließend früherem Eintrag geordnet. Beim Speichern wird die Qualifikation erneut geprüft. Ein Smartphone darf keine Punkte/Tore/Zeiten übergeben; nur resultId,name. Ergebnisdaten bleiben an den jeweiligen Besitzer/Gast gebunden. Gäste behalten ausschließlich Spielrechte für ihre Seite/Steuerung.
Pong und Pöng
Punkte = round(Tore × 1000 × 300 / (300 + aktive Spielsekunden)) + Siegbonus. Siegbonus: 1000 bei sieben eigenen Toren. Intro, Countdown und Pause zählen nicht zur aktiven Zeit. Beispiel 7:3 nach 60 Sekunden: 6833 bzw. 2500 Punkte. Tore und Zeit kommen von der authentifizierten Anzeige. Beide Besucher können ihr eigenes qualifiziertes Ergebnis eintragen; die Computer-Seite wird nicht eingetragen. Je Spiel eigene Liste.
Kartenduell
Spieler 1 lädt über den Smartphone-QR-Code ein; Karten-Gast unter control/guest.html. Beide suchen dieselbe Stadt auf eigenen Karten, mit getrennten Hint-/Zeit-/Punktewerten. Electron zeigt zwei synchronisierte Kartenausschnitte. Gemeinsame Bereitschaft und Countdown, gemeinsame Runde, getrennte Ergebnisse. Wer gefunden hat, wartet auf den Abschluss beider Teilnehmer. Keine neuen MegBes-/Stations-/UDP-Rechte für den Gast. Nur Spieler 1 darf eine Runde neu starten oder für alle beenden.
Flight und Speicherung
Die vorhandene Sensor-/Kalibrierungs-/Tempo- und Ring-/Streckenwertung bleibt erhalten. Erfolgreiche Flüge können von beiden Teilnehmern eingetragen werden. Vorhandene erfolgreiche race-v1-Einträge werden in die neue Flight-Liste übernommen; flight-scores.json bleibt erhalten. Vier Listen atomar in /opt/mutec-realtime/data/arcade-scores.json gespeichert.
GET/POST /mutec-control-api/game/highscores/{pong|poeng|flight|maps}. POST nur eigener Ergebniszugang; keine Liste in der mobilen Antwort. POST/DELETE /game/invite nur Besitzer. /maps/guest und /maps/guest/leave. Rückkanäle game.result und game.highscores. Bestehende Schnittstellen bleiben für ältere Clients erhalten; Flight-Qualifikation gilt auch dort.
Auslieferung und Prüfung
48 Servertests auf dem VPS und Browserprüfungen mit getrennten Besitzer-/Gast-/Display-Kontexten bestanden. Spiel-Endzustände gezielt simuliert; Karte mit lokaler Google-API-Attrappe. Keine reale Hardware wurde angesteuert. Echte Google-Karten, Mobilgeräte, LED-Lesbarkeit und natürliche Abschlüsse vor Ort prüfen.
Serverpaket unter /home/clawtronics/mutec-unified-update am 13.10.2026 erfolgreich installiert. Verwendeter Installationsbefehl: bash /home/clawtronics/mutec-unified-update/apply-unified-update.sh. Sicherung, Ausgangsstandprüfung als JSON, 48 Tests, Schreibprüfung und Rücknahme bei Fehler. Danach Smartphone- und Electron-Seiten neu laden. Bestehende Bestenlisten, Objects, HTML-Video, Ticketablauf-Wächter, DISPLAY_KEY, Umgebungsdatei und MegBes-external/-internal bleiben erhalten.
Installation bestaetigt
Am 13.10.2026 erfolgreich installiert: 48 Tests, Pruefung des Ausgangsstands und Schreibpruefung bestanden. Oeffentliche API: unifiedGames=true. Relay und Ticketablauf-Waechter aktiv. Sicherung: /var/backups/mutec-realtime/unified-20261013T093334Z-1900305. Bestehende Flight-Bestenliste uebernommen; MegBes-Programme, DISPLAY_KEY und Umgebungsdatei unveraendert. Smartphone- und Electron-Seiten neu laden. Abschliessender Test mit realen Mobilgeraeten und LED-Counter vor Ort steht aus.
Zentrierung und Eingabekorrektur vom 16.10.2026
Die vier Spiele ordnen Informationen/Ergebnis und Bestenliste vor und nach der Runde untereinander auf einer gemeinsamen Mittelachse im mittleren Bildschirmbereich an. Flight blendet die Namensmaske nur noch ueber das serverseitig freigegebene Spielergebnis ein; die alte Ergebnisroutine zeigte die Maske zuvor auch ohne gueltiges offenes Ergebnis. Eingabe mit Enter oder Eintragen, Unicode-Normalisierung und Entfernen aeusserer Leerzeichen; bestehende 1-20-Zeichen-Regel bleibt erhalten. Erfolg wird sichtbar bestaetigt. Bei Fehlern bleiben Name und Ergebnis erhalten; nach 12 Sekunden gibt es eine Fehlermeldung und erneute Bedienbarkeit. Unvollstaendige/nicht qualifizierte Runden zeigen eine Erklaerung. Browserpruefung fuer alle vier Spiele mit zehn Eintraegen vor/nach bei 1920x1080 und 1376x490 bestanden; Mobile-Eingabe, HTTP-Fehler/Wiederholen und Timeout ebenfalls geprueft. 29 Frontend-Dateien gesichert und oeffentlich per Pruefsumme bestaetigt. Keine Server-/Score-Daten-Aenderung, kein root-Update. Smartphone-/Electron-Seiten neu laden; physischer LED-Test noch offen.
Arcade-Beitritt: Here comes a new challenger, 18.10.2026
Neues Ziel: mehrere gültige Tickets dürfen unabhängig angemeldet sein. Station 50 / LED-Counter bleibt genau einer normalen Steuersitzung zugeordnet. Weitere Besucher sehen bei belegtem Counter die laufende Anwendung und passende Aktionen statt einer Liste nicht startbarer Apps. Beitritt ist keine zustimmungspflichtige Anfrage mehr.
Besucherablauf
Bei freiem Counter bleiben die drei Tabs Medien / Education / Games sichtbar. Bei belegtem Counter werden die betreffenden Auswahltabs und App-Kacheln ausgeblendet. Beitretbares Spiel: nur Mitspielen. Ein Klick öffnet die Erklärung, dass der Beitritt die laufende Runde unterbricht; erst Ja, mitspielen sendet den Beitritt. Zurück schließt den Dialog ohne Auswirkung. Bestätigung eröffnet sofort eine akzeptierte Gastrolle und eine neue Zweispieler-Runde; Spieler 1 hat kein Annehmen/Ablehnen mehr. Auf seinem Smartphone und der Anzeige steht Here comes a new challenger. Bis Spieler 2 seine kurze Einführung bzw. Sensorfreigabe abgeschlossen hat, wartet das Spiel. Wenn Gastgeber, Gast und Display bereit/verbunden sind: vollständiger Countdown von drei Sekunden, dann gemeinsamer Start.
Die unterbrochene Einzelrunde wird durch eine neue gemeinsame Runde ersetzt; der Zugang und die Stationsreservierung von Spieler 1 bleiben erhalten. Der Gast kann nur seine Spielrolle steuern, keine Stationsbefehle, App-Wechsel, Neustarts oder Spielenden auslösen. Die Stationshoheit bleibt beim Gastgeber; er kann die App weiterhin selbst verlassen. Ein voller Zweispieler-Platz zeigt die Belegung ohne weiteren Beitrittsbutton. Ein Film oder 3D-Objekt zeigt eine Belegungsinfo; beim Freigeben erscheint automatisch die Auswahl wieder. Im bestehenden gemeinsamen Farbraum ist Gemeinsam malen die passende Aktion (bis 24 Personen). Der separate neue Farben-Spielmodus nutzt wie die vier bisherigen Spiele den Challenger-Beitritt. Vorhandene Aqua-Editor-/Stationsregeln wurden nicht umgebaut.
Schnittstellen und Grenzen
GET /station/availability prüft das Besucherticket und den aktuellen MegBes-Stationszustand, liefert station=50, Label, App, Belegung und erlaubte Beitritts-/Gemeinschaftsaktion. Keine Ticket-/Steuertoken oder Besucheridentitäten im Ergebnis. Menü fragt sichtbar alle 2,5 Sekunden und bei Rückkehr in den Tab ab. POST /game/challenge akzeptiert ausschließlich feature und die konkrete gameId; dieselbe Zugangskontrolle wie vorher, serielle Reservierung gegen doppelte Gäste. Veraltete Partie oder App-Wechsel werden abgewiesen. Dasselbe Ticket kann seinen noch vorhandenen Gastzugang wieder abrufen, ohne erneut zu unterbrechen. Der alte Anfrage-Endpunkt bleibt für bereits geladene ältere Frontends kompatibel; alle Seiten nach Aktivierung neu laden.
Lobby-Snapshot hat challenger=true für die neue Übernahme. Der erste Gastgeber muss seine Steuerung weiterhin vorbereiten, wenn er noch im Intro war. Gastbereitschaft startet erst mit allen Verbindungen. Abbruch und Timeout geben nur den Gastplatz frei, keine Trailer-/Stationsabmeldung. Erste Gastvorbereitung maximal 90 Sekunden, ungebundener bzw. verlorener Gastzugang weiterhin 15 Sekunden. Nach einmaliger Vorbereitung greift die 90-Sekunden-Frist bei späteren Wiederverbindungen/Revanchen nicht erneut. Ticketwiderruf, Sessionablauf und Gastgeberverlust behalten die bestehenden Schutzregeln. Challenger-Anzeige in der mittleren Bildschirmhälfte, mit horizontaler LED-Vorverzerrung.
Prüfung und Installation
194 Tests lokal und auf Linux/VPS bestanden, basierend auf den tatsächlich laufenden Servermodulen einschließlich des neuen Farben-Spiels. Geprüft für Pong, Pöng, Flight, Ortssuche und Farben-Spiel: sofortige Annahme nach Bestätigung, kein Gastgeber-Veto, verpflichtende Vorbereitung, vollständiger Countdown, zwei gleichzeitige Gäste, Wiederholung, voller Platz, Abbruch/Timeout, Wiederverbindung, falsches/abgelaufenes Ticket, falsche Partie und fehlende Stationsrechte. HTTP-Status und Challenge-Endpunkt authentifiziert geprüft. Browser mit echtem isoliertem Relay: Pong/Pöng einschließlich laufendem Solo, Bestätigungsabbruch ohne Unterbrechung, Smartphone-/Display-Meldung, Gastintro, Countdown, dritter Besucher, Gastausstieg und freier Auswahl. Zusätzlich Video, Objects und gemeinsamer Farbraum; öffentliche Website mit simulierten Statusdaten geprüft. Keine echte Station gesteuert.
52 Frontend-Dateien gesichert und öffentlich bytegleich hochgeladen. Aktivierung ist über challengerArcade in capabilities abgesichert: solange das Relay nicht aktualisiert ist, gilt weiterhin der bisherige Ablauf. Serverpaket auf /home/clawtronics/mutec-challenger-update bereit; als root bei freier Station 50 ausführen: bash /home/clawtronics/mutec-challenger-update/apply-challenger-update.sh. Installer prüft Paket, Tests und SHA-Ausgangsstand aller Servermodule vor Änderungen, sichert die ersetzten Dateien und hat Rollback. Ersetzt nur server.js, pong-guests.js, game-lobby.js und den neuen Test. DISPLAY_KEY, Umgebungsdatei, Bestenlisten, MegBes-Programme, vorhandene Farben-Spielmodule und synced sources/ bleiben erhalten. Root-Aktivierung bei Dokumentation noch ausstehend. Danach Smartphone-Seiten und Electron-Webseiten neu laden; physischer Messestandtest noch erforderlich.
Artefakte im bisherigen Codex-Arbeitsordner outputs/: MUTEC-Challenger-server.tar.gz, zugehörige SHA-Datei, apply-challenger-update.sh, MUTEC-Challenger-VPS-Test.txt, MUTEC-Challenger-Frontend.zip, MUTEC-Challenger-Installation.json und MUTEC-Challenger-Browserpruefung.json. Geprüfter Relay-Quellstand im Arbeitsordner work/challenger-stage/realtime; nicht blind aus älteren Frontendpaketen gemeinsame Session-/Client-Dateien überschreiben.
Arcade-Beitritt aktiviert, 18.10.2026
Root-Installation erfolgreich abgeschlossen: 194 Tests bestanden, Relay und Ablauf-Wächter aktiv. Health meldet challengerArcade=true; auch die öffentliche capabilities-Schnittstelle mit dem erlaubten Website-Origin wurde nach der Installation mit challengerArcade=true geprüft. Der zuvor als ausstehend dokumentierte Arcade-Ablauf ist damit aktiviert. Serversicherung: /var/backups/mutec-realtime/challenger-20261018T204434Z-3580490. Smartphone-Seiten und Electron-Webseiten neu laden. Physischer Test mit zwei Mobilgeräten am Counter bleibt noch durchzuführen.