Map: rustkeep 1.0 #1

Closed
opened 2026-08-11 13:13:21 +00:00 by RDietermann · 1 comment
Owner

Wayfinder-Map. Kanonische Quelle: .scratch/rustkeep-1.0/map.md im Repo — bei Abweichung gilt die Datei, dieses Issue ist der Spiegel.

Destination

Alle Architektur- und Design-Entscheidungen fuer rustkeep 1.0 sind getroffen — nicht gebaut, entschieden.
1.0 = 5 Etagen mit Boss, Solo-Held mit Rasse/Klasse, Grid-Erkundung + Menue-Kampf, Inventar/Ausruestung, Quests, NPCs, Handel, Speichern/Laden, Mod-Support auf drei Stufen.

Rahmen

ratatui + crossterm · Solo-Held · Raum-Prefabs in TOML, prozedural zusammengesetzt · alles TOML zur Laufzeit geladen · namespaced Mod-IDs, core ist selbst ein Mod · generisches Effekt-System als Mod-API · Quests als Bedingung+Belohnung ueber Event-System · Game-Ownership-Baum mit ID-Indizes, kein ECS · Result statt panic · Save als TOML mit Mod-Liste im Header.

Tickets

Frontier: #2, #6, #7 — blockiert: #3, #4, #5, #8, #9, #10, #11

Out of scope

Story-Modul (spaeter eigene Map) · Party-System · Multiplayer · Grafik jenseits des Terminals

Nebel und Entscheidungsprotokoll: siehe .scratch/rustkeep-1.0/map.md

Wayfinder-Map. **Kanonische Quelle: `.scratch/rustkeep-1.0/map.md` im Repo** — bei Abweichung gilt die Datei, dieses Issue ist der Spiegel. ## Destination Alle Architektur- und Design-Entscheidungen fuer rustkeep 1.0 sind getroffen — nicht gebaut, entschieden. 1.0 = 5 Etagen mit Boss, Solo-Held mit Rasse/Klasse, Grid-Erkundung + Menue-Kampf, Inventar/Ausruestung, Quests, NPCs, Handel, Speichern/Laden, Mod-Support auf drei Stufen. ## Rahmen ratatui + crossterm · Solo-Held · Raum-Prefabs in TOML, prozedural zusammengesetzt · alles TOML zur Laufzeit geladen · namespaced Mod-IDs, core ist selbst ein Mod · generisches Effekt-System als Mod-API · Quests als Bedingung+Belohnung ueber Event-System · Game-Ownership-Baum mit ID-Indizes, kein ECS · Result statt panic · Save als TOML mit Mod-Liste im Header. ## Tickets Frontier: #2, #6, #7 — blockiert: #3, #4, #5, #8, #9, #10, #11 ## Out of scope Story-Modul (spaeter eigene Map) · Party-System · Multiplayer · Grafik jenseits des Terminals Nebel und Entscheidungsprotokoll: siehe `.scratch/rustkeep-1.0/map.md`
RDietermann added the wayfinder:map label 2026-08-11 13:13:21 +00:00
Author
Owner

Destination erreicht — 2026-08-12

Alle sechzehn Tickets sind geschlossen. Kanonische Fassung: .scratch/rustkeep-1.0/map.md und CONTEXT.md, beide auf main gepusht.

Was entstanden ist

  • 16 Entscheidungsdokumente mit Begruendung, verworfenen Alternativen und benannten Decken
  • Ein Glossar (CONTEXT.md): kanonische Begriffe, 12 Registries, 10 Aktionen, 12 Events
  • Ein Prototyp: 342 Zeilen auf Branch prototyp/12-ratatui-durchstich (cargo run --example durchstich)

Die Entscheidungen, die am weitesten reichen

#2 Modifikator und Aktion sind zwei Begriffe, keine "Effekte"
#3 enum ItemType entfaellt ersatzlos — es vermischte Slot, Verhalten und Kategorie
#4 core ist ein echter Mod-Ordner auf der Platte, kein Sonderfall
#8 Registries liegt neben Game, nicht darin — sonst kollidieren die Borrows
#9 Der Trigger als vierte Wirkungsform; Events als Warteschlange statt Rekursion
#12 Action (TOML) und Command (UI) sind zwei Vokabulare mit zwei Namen
#11 Kettenverbindung der Raeume garantiert Erreichbarkeit strukturell
#14 Rhai gewaehlt — aber Stufe (c) wandert hinter 1.0

Was die Tickets uebereinander gelernt haben

Sie haben sich gegenseitig korrigiert, und zwar oft:

  • Game::apply war doppelt vergeben (#12)
  • "+5 Schaden gegen Untote" war mit der Signatur aus #8 gar nicht auswertbar (#9)
  • Ein Held ohne Klasse haette keine einzige Faehigkeit gehabt — nicht mal angreifen (#10)
  • Es gab keine Siegbedingung (#11)
  • Wesen standen in keiner Registry — die Luecke lag seit #3 offen (#15)
  • Die Eventliste, in #9 als "geschlossen" festgelegt, ist dreimal gewachsen (9 → 11 → 12)

Der Prototyp (#13) fand zwei Fehler, die vier Papiertickets ueberlebt hatten: Gegen eine Wand zu laufen kostete einen Zug, und der Windows-Tastenfallstrick war belegt, aber nie gemessen (Tasten 14 → Press 7 → Zuege 7).

Was jetzt NICHT existiert

Das Spiel. src/ enthaelt weiterhin print_box, include_str! und enum ItemType — also genau das, was die ersten drei Tickets abgeschafft haben. Der naechste Schritt ist die Implementierung.

Offen, aber nicht blockierend

Balancing (Zahlen brauchen ein spielbares Spiel) · Boss-Phasen · NPC- und Dialogmodell · Inventar-UX · Endlosmodus (Fernziel, aufgekommen in #16; additiv ueber repeat = true plus Skalierungsformel)

## Destination erreicht — 2026-08-12 **Alle sechzehn Tickets sind geschlossen.** Kanonische Fassung: `.scratch/rustkeep-1.0/map.md` und `CONTEXT.md`, beide auf `main` gepusht. ### Was entstanden ist - **16 Entscheidungsdokumente** mit Begruendung, verworfenen Alternativen und benannten Decken - **Ein Glossar** (`CONTEXT.md`): kanonische Begriffe, **12 Registries**, **10 Aktionen**, **12 Events** - **Ein Prototyp**: 342 Zeilen auf Branch `prototyp/12-ratatui-durchstich` (`cargo run --example durchstich`) ### Die Entscheidungen, die am weitesten reichen | | | |---|---| | #2 | Modifikator und Aktion sind **zwei** Begriffe, keine "Effekte" | | #3 | `enum ItemType` entfaellt ersatzlos — es vermischte Slot, Verhalten und Kategorie | | #4 | `core` ist ein echter Mod-Ordner auf der Platte, kein Sonderfall | | #8 | `Registries` liegt **neben** `Game`, nicht darin — sonst kollidieren die Borrows | | #9 | Der **Trigger** als vierte Wirkungsform; Events als Warteschlange statt Rekursion | | #12 | `Action` (TOML) und `Command` (UI) sind zwei Vokabulare mit zwei Namen | | #11 | Kettenverbindung der Raeume garantiert Erreichbarkeit **strukturell** | | #14 | Rhai gewaehlt — aber Stufe (c) wandert hinter 1.0 | ### Was die Tickets uebereinander gelernt haben Sie haben sich **gegenseitig korrigiert**, und zwar oft: - `Game::apply` war doppelt vergeben (#12) - "+5 Schaden gegen Untote" war mit der Signatur aus #8 gar nicht auswertbar (#9) - Ein Held ohne Klasse haette keine einzige Faehigkeit gehabt — nicht mal angreifen (#10) - Es gab **keine Siegbedingung** (#11) - Wesen standen in **keiner Registry** — die Luecke lag seit #3 offen (#15) - Die Eventliste, in #9 als "geschlossen" festgelegt, ist dreimal gewachsen (9 → 11 → 12) Der **Prototyp (#13)** fand zwei Fehler, die vier Papiertickets ueberlebt hatten: Gegen eine Wand zu laufen kostete einen Zug, und der Windows-Tastenfallstrick war belegt, aber nie gemessen (`Tasten 14 → Press 7 → Zuege 7`). ### Was jetzt NICHT existiert Das Spiel. `src/` enthaelt weiterhin `print_box`, `include_str!` und `enum ItemType` — also genau das, was die ersten drei Tickets abgeschafft haben. Der naechste Schritt ist die Implementierung. ### Offen, aber nicht blockierend Balancing (Zahlen brauchen ein spielbares Spiel) · Boss-Phasen · NPC- und Dialogmodell · Inventar-UX · **Endlosmodus** (Fernziel, aufgekommen in #16; additiv ueber `repeat = true` plus Skalierungsformel)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RDietermann/rustkeep#1