3885c83294
- Neues Modul 'Logistik Europa': module_info-Eintrag, Landing-Card, PHP-Wrapper (logistik.php, modul-logistik.php), Engine-Skelett mit Enums + Helpern (travelCost, latePenalty, Bonus, Dijkstra, Polyline-Interpolation), Test-Harness, Kompetenzen-Draft, 5 Seed-Dateien (locations, vehicle-types, cargo-types, railnet, contract-templates), 3 Level-Einträge in game_levels, Phase 0 durch die Logistik-Instanz geliefert und Atlas-Review bestanden - Heli-Fix: heli-game.php mit BASE_PATH (production-sicher) + Asset-Pfad-Injection, geo_waypoints-Tabelle per Seed-Script auffindbar gemacht - Waypoints-Regen-Tool: regen-waypoints-sql.php synchronisiert waypoints.sql aus DB (70 Einträge) - Design-System: .ggs-level-grid / .ggs-level-card als Standard gepromotet (Klimas Muster, iPad-hover-safe) - Inbox-Nachrichten: Kickoff-Briefings für Heli und Logistik, Asset-Map für Heli, DALL-E-Pipeline-Anleitung, Koordinations- nachrichten an Fluss, Klima, Glossar, Lehrplan Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5.7 KiB
5.7 KiB
instanz, rolle, stand_seit, phase
| instanz | rolle | stand_seit | phase |
|---|---|---|---|
| logistik | Simulation „Logistik Europa" (Modul 11) | 2026-04-19 | Phase 0 v0.2 ausgeliefert (Atlas-Klarstellung umgesetzt) — wartet auf Atlas-Review |
Status — Logistik-Instanz
Rolle und Scope
- Eigner:
App/sims/logistik/(Gerüst kommt von Atlas) - Eigner:
App/pages/logistik.php,App/pages/modul-logistik.php - Eigner:
App/php/api/logistik-*.php - Optional: neue MySQL-Tabellen
lg_…(nur nach Atlas-Abstimmung) - Plattform-Zentrale ist Atlas — Anfragen über
_inbox/zentrale/
Aktueller Stand
- 2026-04-19 23:15 — Kickoff-Briefing von Atlas erhalten
- 2026-04-19 23:25 — Briefing + Pflichtenheft (alle Schlüsselkapitel) gelesen
- 2026-04-19 23:30 — Empfangsbestätigung an Zentrale geschickt
- 2026-04-20 00:10 — Atlas-Antworten auf alle 4 Rückfragen erhalten
- 2026-04-20 00:20 — Quittung an Atlas (Routing bestätigt, alle Punkte übernommen)
- Warte auf: Atlas baut Gerüst (module_info, Landing-Card, Detailseite, Wrapper, Skelette unter
App/sims/logistik/)
Geklärte Entscheidungen (Atlas-Antwort 00:10)
- Lehrplan:
kompetenzen.jsonals Vorab-Skizze (status: "proposed") nach Gerüst, final nach Phase 2 - Glossar: Atlas koordiniert Anfrage; ~10 von 13 Begriffen neu, reicht bis Phase 6
- Landing: Eigene Gruppe „Wirtschaft & Verkehr" (LOCKED bis FREE)
- Tile-Server: Carto Positron
https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png, Leaflet 1.9.4,minZoom: 4, maxZoom: 10 - Routing: bestätigt — L1 Luftlinie×1.3, L2/L3 hand-gepflegte Polylines in
lg-routes-osm.json, OSRM erst auf Thomas-Wunsch - State-Machine: Atlas legt Enum exakt nach Pflichtenheft Kap 44.2 ins
engine.js-Skelett
Phasenplan (aus Briefing)
- Phase 0 — Balance-Matrix + Test-Harness + Headless-Runner-Skelett → Atlas-Review
- Phase 1 — Fundament (engine.js + Karte + Seed-Daten)
- Phase 2 — Kern-Loop (Level 1 spielbar)
- Phase 3 — Kostenmodell + Mehrfahrzeuge + mehrere Aufträge (Level 2)
- Phase 4 — Bahn + Häfen + Intermodal (Level 3)
- Phase 5 — Hilfestufen + Events
- Phase 6 — Minigames + Sprachregel-Check + Leichte Sprache
- Phase 7 — Lehrkraftmodus + Analytics + Polish
Offene Aufgaben (kurzfristig)
App/docs/module-interface.mdAbschnitte 4a/4b/4c/7b lesen- Sobald Gerüst von Atlas steht:
balance-matrix.mdschreiben (Werte aus Kap 65 + Schätzwerte) test.htmlmit 7 Pflichttests anlegen- Headless-Runner-Skelett
runLevel(levelId, seed, strategy)definieren - Atlas-Review von Phase 0 anfordern, bevor Phase 1 startet
Blocker
- Keine. Wartepunkt: Atlas-Gerüst (≈ 2 Sessions geschätzt)
Konventions-Anker (Erinnerung)
- Sprachregel 4a: keine „spielen / Spiel / Spieler"
- Leichte Sprache 4b:
pickText()-Pattern für alle UI-Texte - iPad 4c: 1180×820 Landscape, 36 px Touch-Ziele, kein Hover-Kleber
- Autosave 7b: Pflicht bei state-relevanten Übergängen
- Keine KI im Produkt: Auftragstexte/Events/Hilfe vorab generieren, statisch ausliefern
- Inbox-Check vor jeder „Fertig"-Meldung
- Commits:
Logistik: <Kurzbeschreibung>
Komplexitätshinweis
Atlas schätzt 30–50 Sessions für das Gesamtmodul. Phasenschnitte sauber halten, nicht den ganzen Brocken auf einmal angehen.
Tagesabschluss 2026-04-20 (00:20)
- Kickoff + Pflichtenheft gelesen
- Empfangsbestätigung + 4 Rückfragen an Atlas verschickt
- Atlas-Antworten gelesen, alle Entscheidungen quittiert
- Routing-Strategie (L1 Luftlinie×1.3 / L2-L3 Hand-Polylines / kein OSRM) bestätigt
- Nächstes (sobald Gerüst steht):
balance-matrix.md→ 7 Pflichttests intest.html→ Headless-Runner-SkelettrunLevel(levelId, seed, strategy) - Blocker: keiner — wartet auf Atlas-Gerüst (~2 Sessions)
- Offen für Thomas: keine akute Frage, alles geklärt
Tagesabschluss 2026-04-20 (00:55)
- Atlas-Gerüst empfangen (DB, Landing-Card, PHP-Wrapper, Sim-Skelette, Seeds)
- 7 Pflichttests in
test.htmlstatisch geprüft + via Python-Mathematik verifiziert → 22 von 22 Test-Cases bestehen rechnerisch, Browser-Bestätigung steht aus - Phase 0 v0.1 geliefert:
App/sims/logistik/balance-matrix.mdv0.1App/sims/logistik/headless-runner.html(Skelett, alles SKIP)
- Atlas-Review angefordert
Tagesabschluss 2026-04-20 (01:30) — Phase 0 v0.2 nach Atlas-Klarstellung
Atlas hat klargestellt: Phase 0 ist meine Arbeit, das Gerüst war nur Vorarbeit. Konkrete Atlas-Forderungen alle abgehakt:
- balance-matrix.md v0.2 — Rationale-Spalte je Parameter,
INSERT-SQLs für
game_levels, Konsistenz-Checks an Atlas, Event-Wahrsch. als Multiplikator umstrukturiert,noopzur Strategieliste - headless-runner.js (NEU, vorher .html) — Vanilla-JS-Modul,
Browser+Node-kompatibel via UMD, Mulberry32-RNG, runLevel-Vertrag,
4 Strategien (
nooplauffähig +naive/greedy/optimalals Stubs) - headless-runner.html umgebaut zu dünner UI-Hülle (Logik in .js)
- test.html erweitert um:
- Test 8 — Edge-Cases (8 Cases: leere Polyline, getrennter Dijkstra-Graph, Pfad zum Selbst, negative Hours, null-Werte, unbekannter Modus)
- Test 9 — Seeded-Random (4 Cases: Determinismus, verschiedene Seeds, Range, Seed 0)
- Test 10 — Runner-Vertrag (10 Cases: noop läuft, reproduzierbar, Stubs werfen kontrolliert)
group()und Render auf async umgebaut, damit Test 10 (await runLevel) sauber läuft
- Python-Verifikation der Mathematik: alle neuen Cases grün (10 von 10)
- Atlas-Review erneut angefordert mit aktualisierten Artefakten
Nächstes (nach Review-OK): Phase 1 — engine.js tick() Loop +
Leaflet-Karte mit 13 Seed-Locations
Blocker: Atlas-Review + Thomas-Browser-Test (test.html + headless-runner.html)
Offen für Thomas: einmal beide HTML-Seiten öffnen, Status melden