Rewrite notes for the single-player architecture

Drop protocol.md; rewrite the tick-loop note around the game-loop-driven sim
and the intent model; rewrite the roadmap (network items removed, sim/game
crate layout, save/load and NPC blocking added); fix crate paths in the
remaining notes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
irrlicht
2026-09-18 23:00:19 +02:00
co-authored by Claude Opus 5
parent f594f12f35
commit 64a6e1d42d
6 changed files with 127 additions and 552 deletions
+4 -4
View File
@@ -2,7 +2,7 @@
## Current state
Input is fully decoupled from the windowing backend. `client/src/input.rs` owns all input
Input is fully decoupled from the windowing backend. `game/src/input.rs` owns all input
types. `main.rs` translates `pbio::Event::Key` events into `GameAction` values each frame and
stores them in an `InputState`. `game::update()` receives a `&InputState` and queries it with
three distinct semantics. (The platform/windowing layer lives in the external `pbio` crate;
@@ -10,7 +10,7 @@ game code only ever sees `pbio::Key`, never a raw backend type.)
## Architecture
### `GameAction` — `client/src/input.rs`
### `GameAction` — `game/src/input.rs`
Logical actions the game cares about. Game code never sees backend key types.
@@ -18,7 +18,7 @@ Logical actions the game cares about. Game code never sees backend key types.
pub enum GameAction { Up, Down, Left, Right, Confirm, Cancel }
```
### `InputMap` — `client/src/input.rs`
### `InputMap` — `game/src/input.rs`
Translates a `pbio::Key` to an `Option<GameAction>`. All key bindings live here.
@@ -31,7 +31,7 @@ Translates a `pbio::Key` to an `Option<GameAction>`. All key bindings live here.
| Enter | Confirm |
| Escape | Cancel |
### `InputState` — `client/src/input.rs`
### `InputState` — `game/src/input.rs`
Three internal buffers, populated from `pbio::Event::Key` events in `main.rs`: