Files
geograsim/App/sims/_inbox/fluss/2026-05-05-0250-live-state-vergleichstabelle.md
T
Adminator 33fb423967 Atlas: Live-View-Feature + Submit-Bug-Fixes + Admin-Styleguide
- Neuer API-Endpoint /api/live (heartbeat / spectator) + DB-Tabelle
  live_sessions + class_modules.paused-Spalte
- Plattform-Live-Client (assets/js/live-client.js): Heartbeat,
  Pause-Overlay, Spectator-Mode bei ?view=teacher
- ggs_inject_live() in _scripts.php als Helper, in alle 11 Sim-Wrapper
  integriert
- Lehrer-Cockpit: tabellarische Klassen-Live-Ansicht pro Sim,
  Pause-Toggle, blinkender Tab-Indikator wenn aktive Sessions
- Submit-Bug erschlagen: progress.php hat jetzt submit_assessment-
  und reflection-Action; saves.php akzeptiert beide Key-Konventionen;
  alle Direkt-Pfad-API-Files mit require_once-Bootstrap
- Avatar-Default: zufaelliger DALL-E-Avatar fuer neue Schueler:innen
- Admin-Styleguide-Seite mit Bildstil, Farb-Tokens, Layout, iPad-Pattern
- Klima 2D + 3D: GGS_LIVE_STATE-Hook, Klima 2D zusaetzlich skipResume
  fuer Klassenaufgaben-Reset
- Test-Lehrer Jakob + 3 Schueler:innen lokal + auf Live angelegt
- Rundbriefe an alle Sim-Instanzen + Submit-Briefe an sonnensystem,
  busfahrt, energiemanager + Glossar-Anfrage zu Grundriess
- Status-Uebergabe in _inbox/zentrale/_status.md

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 01:20:53 +02:00

75 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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 (48 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