Files
Grovewright/CLAUDE.md
T
Steven Wroblewski 477b9a41dd Gerüst für den Rust-Kern anlegen
Workspace, leeres Crate grovewright-core und ein Wächter-Test, der den
Quelltext des Kerns auf Verstöße gegen die Gleichschritt-Regeln prüft.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 20:08:01 +02:00

2.4 KiB
Raw Blame History

Grovewright

Aufbauspiel für ein bis vier Spieler, in dem die Fabrik lebt. Gebaut wird zuerst eine Vertical Slice mit 2–3 Stunden Spielzeit.

Das verbindliche Konzept steht in docs/KONZEPT.md. Lies es, bevor du Spielregeln, Architektur oder Umfang änderst. Was dort nicht steht, ist nicht beschlossen.

Aufbau

Ordner Inhalt
core/ Rust-Kern: die gesamte gemeinsame Welt. Ohne Zugriff auf die Engine, ohne fremde Crates.
docs/KONZEPT.md Spielkonzept und Entscheidungen
docs/superpowers/plans/ Umsetzungspläne

Die Brücke zu Godot (bridge/), das Godot-Projekt (game/) und die Inhaltsdateien (content/) kommen mit späteren Plänen dazu.

Faustregel: Was im Speicherstand steht oder alle Spieler betrifft, gehört in den Kern.

Regeln für den Kern

Alle Spieler simulieren die Welt selbst und tauschen nur Befehle aus (Gleichschritt). Das funktioniert nur, wenn der Kern auf jedem Rechner exakt gleich rechnet. Deshalb gilt in core/:

  • Nur ganze Zahlen, keine Gleitkommazahlen.
  • Keine Uhr, keine Dateien, kein Netzwerk, keine Threads, keine Umgebungsvariablen.
  • Zufall nur über rng::Rng mit fester Startzahl.
  • Keine Sammlung mit wechselnder Reihenfolge. Statt einer Hash-Tabelle nimmst du Vec, BTreeMap oder BTreeSet.
  • Die Welt ändert sich nur durch einen Command in World::step.
  • Alles, was zum Zustand der Welt gehört, steht im Snapshot. Wer ein Feld ergänzt, ergänzt es in snapshot.rs und erhöht SNAPSHOT_VERSION.
  • Wo eine Rechnung überlaufen kann, steht eine ausdrückliche Wahl: saturating_, wrapping_ oder checked_.
  • Keine fremden Crates im Kern.

Der Test core/tests/forbidden_apis.rs durchsucht den Quelltext des Kerns nach verbotenen Begriffen. Sie dürfen dort auch in Kommentaren nicht vorkommen.

Prüfen

Vor jedem Commit müssen alle drei Befehle fehlerfrei laufen:

cargo fmt --all -- --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace

Sprache

  • Code, Bezeichner und Kommentare im Code: Englisch.
  • Dokumente, Pläne, Commit-Nachrichten, Issues und Pull Requests: Deutsch.
  • Texte im Spiel: Deutsch und Englisch über Übersetzungsdateien.

Git

  • Archiv: https://git.race-cave.cloud/steven/Grovewright.git (Gitea).
  • Gearbeitet wird auf einem Branch pro Plan, nicht direkt auf main.
  • Nach jedem abgeschlossenen Arbeitsschritt wird committet und hochgeladen. Das ist freigegeben.