Sprint M0.3 — the verb, and the verdict
In progress. Not complete. This sprint is the first one that builds anything a player would recognize as gameplay, and part of it is landed.
Shipped so far
- Handmade greybox terrain with one elevation feature, shared between server and client from a single dependency-free crate so both sides agree on the same layout.
- Four block types — belt, splitter, lifter, sink — placeable and removable, validated server-side.
- A flow-graph analyser: a pure function from the block layout to a table of throughput rates, recomputed only when the layout changes. The server owns no cargo entities; cargo cubes are drawn client-side from the rate and a shared server tick.
- The Drop: a planted delivery point that can’t be lost or removed, with a sink-adjacency rule enforced identically on the client’s placement preview and the server’s authority check.
- A grammar violation, found and fixed before it shipped: implicit merging at multi-input nodes, which the design reserves for a dedicated block that doesn’t exist yet. Read the devlog post for what that looked like and why it stayed hidden as long as it did.
Still open
- Loadout: mass-capped, recovered on exit.
- The three cargo classes, written into the rules.
- The run timer and score screen.
- Tuning the release profile and recording the wasm size number that counts.
- The playtest itself — five friends, both kill criteria, and the velocity re-baseline the whole downstream schedule depends on.
Nothing above is promised for a date. It’s the visible remainder of one sprint’s scope, tracked as open issues, not a schedule.