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:
co-authored by
Claude Opus 5
parent
f594f12f35
commit
64a6e1d42d
@@ -1,7 +1,7 @@
|
||||
# Map Loader
|
||||
|
||||
Loads level data from a Tiled CSV export, replacing the old hardcoded `build_world` wall loop.
|
||||
Implemented in `server/src/map.rs`; wired into the world in `server/src/main.rs::load_world`.
|
||||
Implemented in `sim/src/map.rs`; wired into the world in `sim/src/lib.rs::load_world`.
|
||||
|
||||
---
|
||||
|
||||
@@ -37,8 +37,8 @@ therefore shows up in the CSV as a large *negative* decimal when read as `i32`.
|
||||
|
||||
The loader parses each field as `i64`, reinterprets the low 32 bits as `u32`, and strips the
|
||||
flip flags with `& 0x1FFF_FFFF`, leaving the bare tile id. **Flip orientation is discarded for
|
||||
now** — flipped tiles render unflipped. Real flipping would need a flip-aware `blit_tile` on
|
||||
the client plus the flags carried through the protocol; deferred to the camera/sprite pass (09).
|
||||
now** — flipped tiles render unflipped. Real flipping would need a flip-aware `blit_tile` plus
|
||||
the flags carried through the chunk palette; deferred to the camera/sprite pass (09).
|
||||
|
||||
---
|
||||
|
||||
@@ -46,9 +46,9 @@ the client plus the flags carried through the protocol; deferred to the camera/s
|
||||
|
||||
Tile ids are used directly:
|
||||
|
||||
- **Server** — `tile_flags(id)` (in `map.rs`) maps an id to gameplay `TileFlags`
|
||||
(collidable / opaque). Hand-maintained vocabulary; currently everything is walkable floor.
|
||||
- **Client** — the id indexes straight into `overworld.tga` (`game.rs`). The tileset's tile
|
||||
- **Sim** — `tile_flags(id)` (in `map.rs`) maps an id to gameplay `TileFlags`
|
||||
(collidable / opaque) via the `sim::tile_collidable` vocabulary. Hand-maintained; test values only.
|
||||
- **Renderer** — the id indexes straight into `overworld.tga` (`game.rs`). The tileset's tile
|
||||
order *is* the id space; keep the Tiled tileset and `overworld.tga` in lockstep.
|
||||
|
||||
No `firstgid` subtraction: the authored ids already line up with `overworld.tga`.
|
||||
|
||||
Reference in New Issue
Block a user