Expand voxel gameplay, lighting, full-height streaming and world imports
MVP checks / mvp (push) Canceled after 0s

Add shared Rust/WASM physics, worker meshing and diagnostics, 64-chunk full-height streaming, atlas texture support, and baseline world import. Document the current implementation and include the supplied in-game lobby screenshot.
This commit is contained in:
Emil
2026-09-17 02:10:53 +03:00
parent 26748912c6
commit c7e86663d8
111 changed files with 24257 additions and 598 deletions
+7 -3
View File
@@ -1,6 +1,6 @@
# Project status
Updated 2026-09-14. The agreed local MVP profile is implemented and verified. The original plan was committed before implementation as `ddfcef2`; claims from the previous cloud environment were not used as evidence. The verified implementation is commit `b6ba064`, published at [emil28092005/shacraft-core](https://github.com/emil28092005/shacraft-core). Its GitHub Actions run passed. Subsequent documentation changes do not change the runtime.
Updated 2026-09-17. The agreed local MVP profile is implemented and verified. The original plan was committed before implementation as `ddfcef2`; claims from the previous cloud environment were not used as evidence. The earlier published baseline is commit `b6ba064` at [emil28092005/shacraft-core](https://github.com/emil28092005/shacraft-core), whose GitHub Actions run passed. The current implementation adds shared Rust/WASM movement, block lighting, worker meshing, procedural worlds, movement diagnostics, atlas texture packs, and full-height streaming at up to 64 chunks of render distance. The README includes an in-game screenshot of an imported minigames lobby.
## Implemented
@@ -13,7 +13,11 @@ Updated 2026-09-14. The agreed local MVP profile is implemented and verified. Th
- Spleef: two independent arenas sharing a map, countdown, elimination, winner/draw, reset, spectators, persistent rules, and recovery after interruption. A lobby and a gallery of 1,197 samples.
- Anvil and Sponge v3 import/export: typed NBT, original preservation, atomic output publication, loss/conversion reports, and transfer of block and entity edits made in Shacraft.
## Verified
## Current checks
On 2026-09-17, `bash scripts/verify.sh` passed formatting, a physics WASM rebuild, workspace Clippy with warnings denied, 130 Rust tests, 190 JavaScript tests, storage crash recovery, and real HTTP/WebSocket scenarios for gameplay, chunk transitions, and movement prediction. Native and WASM movement agreed within the test tolerance. The browser also accepted the 64-chunk, full-height view, built all 27 nearest sections, and continued loading distant terrain. These checks do not establish a performance guarantee at the maximum distance.
## Verified baseline
84 Rust tests, 6 JavaScript tests, formatting, and Clippy without warnings; 14 groups of real HTTP/WebSocket scenarios, a separate MCP SDK session, SIGKILL, and recovery. Exports were read by the official Java 26.2 codecs and an independent NBT reader. The client was inspected in a real browser: rendering, state search, gallery navigation, material loading, reconnection, and resource caching were confirmed.
@@ -24,7 +28,7 @@ Final release benchmark: 100 idle map instances used 50.50 MiB RSS; 10 moving cl
- This is an independent minigame platform with a Minecraft catalog, not a complete vanilla simulation: no full AI, redstone, inventories, or fluid simulation. Context-dependent shapes are marked; models do not reproduce the vanilla assets.
- `exact` conservatively refuses export after edits; `best-effort` reflects changes and produces a report. Anvil and `.schem` conversion does not translate all biome/block-entity semantics; source data is archived. Version, size, and context limits are documented in [interop.md](interop.md).
- Block history is stored on disk without automatic deletion. Undo accepts only the current target edit. Preview plans are ephemeral and expire after five minutes. Entity/rule metadata has its own revision; its API does not claim the core's idempotency journal.
- The playable range with f32 physics is ±32700; storage and conversion support the core's ±30 million coordinates. Several bounded structures control memory use; there is no single hard RSS cap.
- Procedural gameplay uses double precision through ±29,999,872 with Y=−64…319 building layers. The menu selects a visible radius of 2–64 chunks, default 3. Including a preloaded ring, the default data window is 144×384×144; the maximum is 2,096×384×2,096. The full world height remains loaded during vertical flight. Horizontal unload hysteresis retains overlap across single chunk crossings. Nearby terrain uses local lighting in an independent worker; distant data and meshes load progressively. Uniform sections stay compact, but large views still incur substantial loading time and memory costs. Distant-terrain LOD is not implemented, and there is no single hard RSS cap. See [current world implementation and local measurements](WORLD_STREAMING.md).
- Linux x86_64 and local workloads have been tested. A long production soak, power-loss testing, all operating systems, and an exported-world playtest in a running Minecraft game have not been claimed as passed.
- Launcher integration, accounts, production deployment, and existing servers are future integration work. The source repository is public; the game server has not been deployed to a remote machine.