grimoire-iso — ISO build orchestration
tags: [general]
grimoire-iso — ISO build orchestration
Section titled “grimoire-iso — ISO build orchestration”Classification: PUBLIC
Crate: fruit/crates/grimoire-iso/
Milestone: v14+
License: Apache-2.0
Version: v111.0.0 “Last Light”
What It Is
Section titled “What It Is”grimoire-iso is the lean Bevy 0.18 isometric world client for the GRIMOIRE gamification layer, serving as a thin 2D view over the render-agnostic gamification daemon and world-server. It renders server-authoritative game state — dimetric diamond overworld, discrete iso interiors, and arrow-key player movement — while all game logic remains in synos-gamification consumed via the daemon REST API. The crate is deliberately view-only: it sends intents and renders state, never owning game authority.
Architecture
Section titled “Architecture”Modules
Section titled “Modules”| Module | Purpose |
|---|---|
iso | Pure-math isometric coordinate helpers and dimetric projection utilities |
tiles | Tilemap primitives for chunked dimetric diamond rendering with frustum culling |
overworld | Overworld scene plugin for WorldNode POI rendering and arrow-key walking |
interior | Discrete iso interior scene plugin for building/environment exploration |
player | Player movement, ground transform sync, and camera follow systems |
state | GameState Bevy state machine (Overworld ⇄ Interior) and ActiveInterior resource |
net | Backend seam layer: REST polling for /api/v1/world/nodes and WebSocket reachability/live session |
How It’s Wired
Section titled “How It’s Wired”- Bevy 0.18 2D feature set —
default-features = false+features = ["2d"]drops 3D drivers (bevy_pbr,bevy_gltf,ktx2, zstd tonemapping LUTs), keeping the binary lean.bevy_ecs_tilemapprovides dimetric diamond tilemap with built-in chunking. - World-server REST seam —
reqwestpollsGET /api/v1/world/nodeson the gamification daemon for POI data. TheWorldNodesresource caches results and falls back to local fallback data when offline. - WebSocket seam —
tokio-tungsteniteprovides live session connectivity (Milestone 2) and reachability probes againstsynos-world-server. - Single-plugin assembly —
GrimoireIsoPluginadds all scene plugins, systems, and the persistent camera in onebuild()call, designed for inclusion in a BevyAppthat already hasDefaultPlugins.
Future Ideas
Section titled “Future Ideas”- Add a
grimoire-iso-assetmodule for prefab-based interior spawning, reducing runtime tilemap generation. - Implement the Milestone 2 WebSocket live session protocol with
tokio-tungstenitefor real-time node state sync. - Expose
grimoire-isostate via agrimoire-iso-replaycrate that records and replays player movement for demo/debug purposes.