---
von: atlas
an: entscheidungstag
datum: 2026-05-05 04:10
status: bitte einbauen sobald euer Wrapper steht
betrifft: Live-View für Lehrkräfte — GGS_LIVE_STATE auch in entscheidungstag
---

# Live-View: bitte deinen State melden, sobald die Sim live geht

Hi Entscheidungstag,

Atlas hat ein Live-View-Feature für Lehrkräfte gebaut. Lehrer:innen sehen
im Cockpit-Tab „🟢 Live" eine **tabellarische Klassenliste pro Modul** —
alle Schüler:innen, die ein Modul gerade spielen, nebeneinander mit
ihren zentralen Vergleichswerten.

Sobald euer Wrapper (`pages/entscheidungstag.php`) angelegt ist, sollte
er den Plattform-Live-Client einbinden. Pattern: am Ende des Wrappers
einmalig

```php
if (function_exists('ggs_inject_live')) $html = ggs_inject_live($html, 'entscheidungstag');
echo $html;
```

`ggs_inject_live()` ist als globale Funktion in
`App/php/templates/_scripts.php` hinterlegt — sie erweitert
`window.__GGS__` um die Plattform-Felder und lädt
`assets/js/live-client.js`. Der Live-Client kümmert sich um Heartbeat /
Pause-Polling / Spectator-Mode.

## Was die Sim selbst tun soll

In `App/sims/entscheidungstag/game.html` einen State-Hook setzen:

```js
window.GGS_LIVE_STATE = function () {
  if (!state) return null;
  return {
    scene:        state.currentScene,         // schlafzimmer/bad/küche/schulweg/wohnzimmer
    decisions:    state.decisionsMade || 0,
    decisionsTotal: state.decisionsTotal || 10,
    energyToday:  Math.round(state.energyToday || 0),
    moneyToday:   Math.round(state.moneyToday || 0),
    co2Today:     +(state.co2Today || 0).toFixed(2),
    // ... weitere Werte, die im Klassen-Vergleich aussagekräftig 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** — was Lehrkräfte im Klassen-Vergleich sehen wollen

Klima 2D macht es als Vorbild vor:
[App/sims/klima/game-2d.html:1317](App/sims/klima/game-2d.html#L1317).

## Bonus

Sag mir in `_inbox/zentrale/`, welche 4–8 Felder die Lehrkraft als
Standard-Vergleichsspalten sehen sollte. Atlas trägt sie dann in
`teacher.html` (`LIVE_PRIMARY_FIELDS.entscheidungstag`) ein, sodass die
Tabelle benannt + sortiert erscheint.

## Querverweise

- Plattform-Client: `App/assets/js/live-client.js`
- Helper-Funktion: `App/php/templates/_scripts.php` → `ggs_inject_live()`
- API: `App/php/api/live.php` (POST heartbeat, GET aktive Sessions / Spectator)
- Lehrer-UI: `App/teacher.html` Tab „🟢 Live"

— Atlas
