Ein einziger, vollständiger Prompt, mit dem ein KI-/Dev-Agent Spiel + Engine in einem Rutsch
bauen kann. Lebendes Dokument: wächst mit dem Design (Quelle der Wahrheit bleiben data/*.json
und das System-Design).
data/*.json — die Engine liest sie direkt, statt sie hartzucodieren.… (wird geladen)
Es wird ein MMO: eine persistente, von vielen Spielern geteilte Welt. Daher läuft die Simulation autoritativ auf dem Server; Clients zeigen nur Zustand und senden Aktionen. „Viele Client-Systeme" = mehrere Frontends gegen dieselbe API. Gewählter Weg: Web-/PWA-first (TypeScript).
| Baustein | Empfehlung | Warum |
|---|---|---|
| packages/core | Geteilter Sim-Kern in TypeScript: Datenmodell, JSON-Loader, alle Regeln; rein & deterministisch | einmal schreiben, läuft auf Server (autoritativ) UND Client (Vorschau) — keine doppelte Logik |
| apps/server | Node.js-Game-Server: hält die Welt, rechnet pro Tick (1 Tick = 1 Schicht), PostgreSQL, REST + WebSocket | persistente, geteilte Welt; validiert jede Aktion |
| apps/web | PWA (Vite + TS), Karten-UI wie cards.html | EINE Codebasis → Browser + installierbar aufs Smartphone + Desktop-Wrapper |
| Daten | data/*.json (gleiche Dateien) | eine Quelle der Wahrheit; neue Inhalte = nur JSON |
| Weitere Clients | native iOS/Android / eigener Game-Client — später, gegen dieselbe API | nur neues Frontend, kein neuer Server |
Hosting-Realität: Der Web-/PWA-Client kann statisch auf deinem Hostinger-Webspace liegen. Der Game-Server braucht aber einen Dauerprozess + WebSockets + Postgres → VPS/Cloud (Shared Hosting reicht nicht; Hostinger bietet auch VPS).
| MVP (1 Shard, planetar) | Später |
|---|---|
| Ein Server/Shard · ein Planet · mehrere Spieler teilen die Welt · Abbau → Verarbeitung → Fertigung · Hallen + Maschinen + Worker · Schichtbetrieb · Lager · Logistik · Web-/PWA-Client | Skalierung/mehr Shards · native Clients · Markt & Handel (Geld) zwischen Spielern · Weltraum/mehrere Welten · Transport zwischen Himmelskörpern · Tech-Tree |
Dieser Prompt + die Daten sind ein lebendes Paar: Wenn wir das Design erweitern (neue Entities,
neue Systeme), aktualisieren wir data/*.json bzw. diese Seite. Die Engine liest die Daten,
also bedeutet „neuer Rohstoff/Maschine" meist kein Engine-Update — nur Daten. Versioniert mit git;
veröffentlicht via deploy.py.