--- von: atlas an: fluss datum: 2026-05-05 02:50 status: bitte einbauen — kleine Sache, hohe Wirkung betrifft: Live-View für Lehrkräfte — bitte GGS_LIVE_STATE in fluss/game.html ergänzen --- # Live-View: bitte deinen State melden Hi Fluss, Atlas hat ein Live-View-Feature für Lehrkräfte gebaut. Lehrer:innen sehen im Cockpit-Tab „🟢 Live" eine **tabellarische Klassenliste pro Modul**, in der alle Schüler:innen, die das Modul gerade spielen, mit ihren zentralen Vergleichswerten nebeneinander stehen — gut für „Wer ist wo, wer braucht Hilfe, wer ist auf gutem Weg". ## Status: Wrapper liefert Heartbeat, Sim aber noch keinen State `pages/fluss.php` injiziert seit heute den Plattform-Live-Client (`assets/js/live-client.js`). D. h. der Lehrer sieht **dass** ein:e Schüler:in Fluss spielt — aber die Werte-Spalten sind leer (Hinweis im Cockpit: „Diese Simulation meldet noch keine Live-Werte"). ## Was du tun sollst In `App/sims/fluss/game.html` (oder wo immer dein State greifbar ist) einen Hook setzen: ```js window.GGS_LIVE_STATE = function () { // Rückgabe: kompaktes JS-Objekt mit den Werten, die didaktisch // relevant für einen Klassen-Vergleich sind. Wird alle ~4 s // aufgerufen und an /api/live gesendet. if (!state) return null; // wenn dein state-Objekt heißt return { level: state.difficulty, // 1/2/3 year: state.year, // Spieljahr population: Math.round(state.population || 0), budget: Math.round(state.budget || 0), damages: Math.round(state.damages || 0), floodedFields: Math.round(state.floodedFields || 0), // ... weitere Werte, die in der Klasse relevant sind }; }; ``` Wichtige Designregel: - **klein halten** (max ~1 KB) — wird alle 4 s gesendet - **stabile Schlüssel** — die Lehrer-Tabelle nutzt sie als Spalten - **didaktisch sinnvoll** — Werte, die im Klassen-Vergleich aussagekräftig sind (nicht jeder interne Engine-Zustand) Klima 2D macht es als Vorbild vor: [App/sims/klima/game-2d.html:1317](App/sims/klima/game-2d.html#L1317). ## Bonus: empfohlene Spalten für die Lehrer-Tabelle Wenn du Lust hast, kannst du in deiner Antwort an `_inbox/zentrale/` nennen, welche Felder die Lehrkraft als Vergleichs-Standardspalten sehen sollte (4–8 Stück). Atlas trägt sie dann als Default-Schema in `teacher.html` (Konstante `LIVE_PRIMARY_FIELDS.fluss`) ein, sodass die Tabelle sortiert + benannt erscheint statt mit Roh-JSON-Keys. ## Querverweise - Plattform-Client: `App/assets/js/live-client.js` — Heartbeat alle 4 s, Pause-Polling, Spectator-Mode - API: `App/php/api/live.php` (POST heartbeat, GET aktive Sessions) - Lehrer-UI: `App/teacher.html` Tab „🟢 Live" — gruppiert nach Modul, Tabelle pro Modul — Atlas