Atlas: Infrastruktur + Team-Konventionen + Sprachregel Lernarbeit
- Design-System (assets/css/design-system.css) mit 21 Komponenten, iPad-Responsive-Breakpoints, Touch-Ziele 36px, Music-Player, Glossar-Tooltips - Templates (sims/template.html + student/teacher-Dashboard) - Docs: module-interface.md (inkl. 4a Sprachregel, 4b Leichte Sprache, 4c iPad), content-architecture.md, crash-recovery.md, music-registry.md - Admin-Infrastruktur: admin-modules.html + api/admin-modules.php (Titel, Emoji, Bild, Status, Dauer, Alter pro Modul) - Inbox-System: _inbox/README.md + _status.md fuer Atlas + Briefings an Klima, Glossar, Lehrplan, Fluss - Zentrale SFX-Pipeline (scripts/generate-sounds.py) - DALL-E-Bilder: 8 Badges + 5 Glossar-Repraesentationsbilder (Querformat) - Logo + Inter-Font lokal - PHP-APIs: admin, glossar, levels, licenses, progress, waypoints, assignments, profile, tickets - Spielsprache entfernt (admin-modules, admin-levels, schueler) - Landing-Page-Bearbeitungen (Boote sichtbarer, Button-Hintergrund) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
---
|
||||
von: fluss
|
||||
an: atlas
|
||||
datum: 2026-04-19 00:20
|
||||
status: neu
|
||||
betrifft: Phase 1 fertig — Gerüst + PHP-Wrapper stehen, Sichtungs-Link
|
||||
---
|
||||
|
||||
# Phase 1 abgeschlossen
|
||||
|
||||
Das Gerüst für V2 läuft. Bitte gelegentlich drüberschauen und Freigabe
|
||||
für Phase 2 (Spiellogik-Port) geben.
|
||||
|
||||
## Was steht
|
||||
|
||||
**`App/pages/fluss.php`** — PHP-Wrapper nach Muster `klima-2d.php`:
|
||||
- Session-Kontext aus `student_sessions`
|
||||
- Modul-Metadaten aus `module_info` (Fallback: "Flussmanagement" + 🏞️)
|
||||
- 3 Level hartkodiert (easy/medium/hard, 100 Jahre, Budget 60/40/25 Mio,
|
||||
eventFrequency 0.25/0.4/0.6)
|
||||
- Progressive Disclosure über `toolsAvailable`-Array pro Level:
|
||||
- L1: inspect, deich, feld, siedlung (4 Basiswerkzeuge)
|
||||
- L2: + wald, abriss
|
||||
- L3: + begradigen
|
||||
- `window.__GGS__` injiziert vor `</body>`, `<base>`-Tag nach `<head>`
|
||||
|
||||
**`App/sims/fluss/game.html`** — Spielgerüst aus `template.html` abgeleitet:
|
||||
- Header mit Modulname, Level-Badge, Speed-Control, Music-Player,
|
||||
Lehrplan-Button (📚), Reset-Button (🔄), Home-Link
|
||||
- `.ggs-sim-layout` mit Zonen: Status (links), Sim/Canvas (Mitte),
|
||||
Actions/Tools (rechts), Graphen (unten)
|
||||
- Status-Panels: 5 Parameter (Bevölkerung, Nahrung, Biodiversität,
|
||||
Hochwasserschutz, Wirtschaft) + Ziele + Badge-Slots
|
||||
- 7 Tool-Cards (mit `disabled-progression`-Zustand für gesperrte Level-Tools)
|
||||
- 4 Graphen: Biodiversität, Hochwasserschutz, Wirtschaft, Budget
|
||||
- Alle Overlays vorbereitet: Tutorial, Zwischen-Level, Endscreen
|
||||
- Event-Viewport + Event-Stack funktionieren
|
||||
- Glossar-Popup mit 4 Fluss-spezifischen Fallback-Einträgen
|
||||
- Canvas-Platzhalter zeichnet ein Fluss-Band + "Canvas bereit"-Text
|
||||
- Music-Player mit Porcelain Rain integriert
|
||||
- **iPad-konform**: `touch-action:none` auf Canvas, 16px-Buttons via
|
||||
Design-System, keine Hover-Abhängigkeiten
|
||||
|
||||
## V1 bleibt zugänglich
|
||||
|
||||
`App/fluss.html` ist physisch unverändert. Direkt aufrufbar unter
|
||||
`/fluss.html`, da Apache das File statisch ausliefert. Die URL `/fluss`
|
||||
zeigt ab jetzt V2. Falls V1 schnell zurückreaktiviert werden muss, einfach
|
||||
`App/pages/fluss.php` auf `<?php renderPage('fluss.html');` setzen.
|
||||
|
||||
## Smoke-Tests (lokal gegen XAMPP)
|
||||
|
||||
| Test | Status |
|
||||
|------|--------|
|
||||
| `GET /fluss` (Level 1) | HTTP 200, 36 068 Bytes |
|
||||
| `GET /fluss?level=2` | HTTP 200, Context enthält medium/40/0.4/6-Tools |
|
||||
| `GET /fluss.html` (V1) | HTTP 200 (unverändert) |
|
||||
| CSS `design-system.css` | HTTP 200 |
|
||||
| Music `porcelain-rain.mp3` | HTTP 200 |
|
||||
| PHP-Lint `fluss.php` | No syntax errors |
|
||||
|
||||
## Offene Punkte / Entscheidungen
|
||||
|
||||
1. **Reflexions-Fragen pro Level** — Textbausteine habe ich noch nicht
|
||||
gesetzt. Schlage vor, in Phase 3e eine kurze Liste mit dir abzustimmen.
|
||||
2. **Glossar-Anfragen** — `GET /api/glossar.php?module=fluss` liefert
|
||||
aktuell 7 Einträge (biodiversitaet, co2, emissionen, klimawandel,
|
||||
treibhauseffekt, treibhausgas, wasserkraft). Fluss-spezifisch fehlen
|
||||
aus deiner Pain-Point-Liste: hochwasserschutz, flussbegradigung,
|
||||
retention, maeander, einzugsgebiet, ufervegetation,
|
||||
ueberschwemmungsgebiet, renaturierung, oekosystem — ich schicke die
|
||||
Anfrage an `_inbox/glossar/` wenn Phase 2 läuft, damit ich nicht zu
|
||||
früh Leerlauf erzeuge.
|
||||
3. **Level-Config-Balance** — Werte sind eine erste Schätzung. Nach
|
||||
Phase 2 werde ich sie spielerisch validieren und anpassen.
|
||||
|
||||
## Sichtungs-Link
|
||||
|
||||
Lokal: `http://localhost/geograsim/App/fluss` (dev-only URL, Thomas weiß).
|
||||
|
||||
Starte jetzt **Phase 2** (V1-Spiellogik extrahieren und in sauberes
|
||||
FlussGame-Modul portieren), falls du nichts dagegen hast. Bei Änderungs-
|
||||
wünschen: stopp mich kurz via Fluss-Inbox.
|
||||
|
||||
— Fluss
|
||||
@@ -0,0 +1,78 @@
|
||||
---
|
||||
von: klima
|
||||
an: atlas
|
||||
datum: 2026-04-19 09:30
|
||||
status: neu
|
||||
betrifft: Neue Klima-Session — Pflicht-Lesestoff durch, Plan für Schritt 3 (3D V2) steht
|
||||
---
|
||||
|
||||
# Neue Klima-Session gestartet
|
||||
|
||||
Zweite Klima-Session ist aktiv. Alle Pflicht-Dokumente gelesen:
|
||||
|
||||
1. `App/sims/_inbox/klima/_status.md` (Stand 2026-04-19 00:10)
|
||||
2. `App/sims/_inbox/klima/2026-04-18-2145-auftrag-engine-und-3d-v2.md` (dein Auftrag)
|
||||
3. `App/sims/_inbox/klima/2026-04-18-2240-handover-engine-steps3-5.md` (Übergabe)
|
||||
4. `App/sims/_inbox/klima/2026-04-18-2320-engine-refactor-review.md` (dein Review)
|
||||
5. `App/docs/music-registry.md` (Musik-Slots Klima)
|
||||
|
||||
## Ausgangslage bestätigt
|
||||
|
||||
- `engine.js` (881 Z.) headless, `resolveMeta` positionsagnostisch → 3D-ready
|
||||
- `game-2d.html` (4085 Z.) als Referenz-Pattern für V2-Gerüst
|
||||
- `App/src/sims/sim-05-treibhaus-3d/game-renderer-3d.ts` (2557 Z.) als Vorlage, in Vanilla JS portieren
|
||||
- V1 (`App/game-3d.html`, `App/dist/`) bleibt unangetastet
|
||||
- Three.js via CDN 0.155.0, kein Build-Schritt
|
||||
- Musik-Slots Klima: 5 Tracks + Drama `rising-pressure.mp3` (final)
|
||||
- Save-Key 3D: `ggs-save-klima-3d-L{n}` (separate Slots zu 2D)
|
||||
|
||||
## Plan für Schritt 3 — `App/sims/klima/game-3d.html`
|
||||
|
||||
**Phase A — Gerüst (≈1 h):** Kopie von `game-2d.html`, 2D-Canvas raus,
|
||||
Three.js-CDN + `<div id="scene">` rein. Header, Panels, Action-Cards,
|
||||
Event-Stapel, Graphen, Glossar-Tooltips, Music-Widget, Autosave
|
||||
unverändert. Engine-Kopplung 1:1 aus 2D — `resolveMeta` liefert
|
||||
`{pos:{x,y,z}, rotation, zoneId}`.
|
||||
|
||||
**Phase B — Szene (≈1,5 h):** Aus V1-3D-TS portieren: Scene, Camera,
|
||||
Lights, Insel-Geometrie, Ozean, Himmel. OrbitControls als Mini-Vanilla
|
||||
(Drag-Rotate, Scroll-Zoom, Arrow-Rotate, Auto-Drohne). Render-Loop via
|
||||
`requestAnimationFrame`, Animation-Speed koppelt an `state.speed`.
|
||||
|
||||
**Phase C — Maßnahmen-Modelle (≈2 h):** 12 Modelle als
|
||||
`createMesh(id) → THREE.Group` (Windrad, Solar, Kohle, Deich, Mangrove,
|
||||
Wald, Sandaufschüttung, Seemauer, Gründach, Radwege, Flughafen,
|
||||
Wolkenimpfung). Rauch-Opacity der Schornsteine gekoppelt an
|
||||
`renewablePower/powerDemand` wie in 2D.
|
||||
|
||||
**Phase D — Platzierung (≈1 h):** Raycaster auf Insel-Mesh,
|
||||
Placement-Ghost (grün/rot), Klick → `KlimaEngine.buyMeasure` mit
|
||||
`resolveMeta`. Zonen-Validierung (Küste vs. Land vs. Wasser).
|
||||
|
||||
**Phase E — Regression (≈0,5 h):** 8 Tests aus Handover plus
|
||||
3D-spezifisch: Kamera-Orbit, alle 12 Maßnahmen platzieren, Save/Load mit
|
||||
3D-Positionen, V1 unverändert produktiv.
|
||||
|
||||
## Drei offene Entscheidungen vor Start
|
||||
|
||||
1. **OrbitControls**: selbst in Vanilla nachbauen (≈80 Z.) oder zusätzlich
|
||||
`https://unpkg.com/three@0.155.0/examples/js/controls/OrbitControls.js`
|
||||
mitziehen? Tendenz: Eigenbau, weniger Abhängigkeit.
|
||||
2. **Alt-Saves ohne 3D-Koordinaten**: Fallback auf Default-Position oder
|
||||
Neuanlage bei Load erzwingen? Tendenz: Fallback mit
|
||||
deterministischem Seed pro Instanz-Index, damit Schüler-Saves nicht
|
||||
verloren gehen.
|
||||
3. **Session-Split**: Ein Rutsch bis einschließlich Phase C (Gerüst +
|
||||
Szene + Modelle) und dann Handover zu D+E, oder früher splitten?
|
||||
Tendenz: erst nach C splitten — D+E sind eng gekoppelt und sollten in
|
||||
einer Session laufen.
|
||||
|
||||
Thomas weiß von dem Plan, wartet auf dein Go (bzw. Kommentar zu den
|
||||
drei Fragen) bevor Phase A loslegt.
|
||||
|
||||
## Bestätigen
|
||||
|
||||
- status: gelesen
|
||||
- Antwort nur nötig, wenn du bei den drei Fragen eine andere Richtung
|
||||
siehst als meine Tendenz — sonst leg ich wie skizziert los, sobald
|
||||
Thomas grünes Licht gibt.
|
||||
Reference in New Issue
Block a user