Files
shacraft-core/docs/STATUS.md
T

32 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.
## Implemented
- Independent Rust core: compact sections, a bounded shared LRU, durable edits and history, immutable snapshots, independent worlds, revisions/idempotency, undo, and reset.
- Separate authoritative server with a 20 Hz game loop, movement/shape/reach validation, bounded queues, and persistent settings and entities.
- Custom browser WebGL2 client: building, a catalog, players/entities, chat, worlds, package downloads, and diagnostics. It does not depend on an existing game engine. The MVP interface currently uses Russian text; repository documentation is in English.
- Separate stdio MCP server: 17 tools, 4 resources, a building prompt, plans/commit, PNG previews, and verification through an independent MCP SDK.
- Complete Java 26.2 catalog: 1,196 blocks, 32,366 states, 158 entity types, DataVersion 4903. Collision shapes are measured through the source API, rendering templates are independently authored, and contextual cases are marked.
- Packages: exact versions, dependency graphs, SHA-256 hashes/sizes, private server files, and a verified client cache. Working WASM `on_jump`, custom block definitions, and original textures/shader/audio.
- 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
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.
Final release benchmark: 100 idle map instances used 50.50 MiB RSS; 10 moving clients reached a maximum of 59.65 MiB RSS/VmHWM, with sampled tick-work p95 of 7.33–9.54 ms. This is a bounded local profile, not a comparison with Paper. Commands and evidence are in [VERIFICATION](VERIFICATION.md).
## Exact boundaries
- 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.
- 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.
Component contracts: [SERVER](SERVER.md), [MCP](MCP.md), [CONTENT](CONTENT.md), [PACKAGES](PACKAGES.md), and [interop](interop.md). `scripts/make_release.py` packages source and release binaries. Archives exclude tokens, local runtime worlds, and the Minecraft JAR.