Arborwake Wiki

in: Encounters, Turn-based rules, Production

Room assembly

Dev prototype Game mechanic · facts checked 2 November 2026

Room assembly is the pipeline that makes turn-based rooms varied but always fair. Everything a player meets was made by hand or checked by machine before it ships.

The user's rule#

On 1 November the user rejected free room generation: "hand make what you can, especially the harder ones; otherwise you may end up with uncompletable rooms. Best if you hand-make large sections and then let algorithm stitch those hand-made sections together. The algorithm that assembles random rooms also needs to be very strict." On 2 November the user added: "We need a shuffle engine that's smart enough not to make impossible rooms or too-easy rooms."

How it works#

Sections and the strict assembler. A Gardens shell is split into a west and an east slot. A hand-made section fills one slot with its own connections, threats, astrocyte socket and pre-seeded ground. The assembler walks compatible pairs in a seeded order and never moves, retimes or adds anything. It refuses a pair when:

If no pair passes, a fully hand-made room of that tier is used. Every story room, tutorial and hard room is fully hand-made.

The shuffle engine (designed 2 November) keeps each room's approved geometry and declares a few knobs: which connection a front hits, in which round, which wall leaks, where debris starts. An offline forge runs each variant through a gate: structural rules, the solver, a lesson check, the bots' verdict and a near-copy rule. Shipped pools are stamped with hashes; the game only picks from them.

Depth chooses the tier, never tuned numbers. Higher tiers are authored with two threat modules, quiet fronts, shorter warnings and pre-seeded surfaces.

The difficulty oracle#

Claude B's bots.js judges difficulty. The novice is greedy and plans one turn ahead without Survey. The expert is a beam search two rounds ahead, at widths 16, 32, then 64. A seed is "too hard" only if the widest expert fails. The novice is a pessimistic floor: in the Gardens it fails half the tutorials. All figures below are bot simulations, not play.

LocationTierA pool must have (novice fails / expert fails / bonus ratio)
Gardens (default)1≤ 75% / 0% / ≥ 1.5× (and the novice never loses a neuron)
270–90% / ≤ 5% / ≥ 2×
3≥ 85% / ≤ 10% / ≥ 2×
Vessel Margins1as Gardens, but bonus ratio ≥ 1×
250–90% / ≤ 5% / ≥ 2×
Quiet Tracts1≤ 25% / 0% / ≥ 1×
250–85% / ≤ 5% / ≥ 1.25×
360–100% / ≤ 10% / ≥ 1.5×

Hearth boards use the Gardens bands at tiers 1–2 only. A loss (an overloaded connection or a lost segment) is the worst result everywhere.

Numbers#

Development#

See also#

Turn-based encounters · Dendritic Gardens · Vessel Margins · Quiet Tracts · Hearth boards

Sources#

  1. 215bfbf88:docs/game-balance/31-turn-based-encounters.md
  2. e7656b980:docs/ops/agent-messages/2026-11-01-claude-a-expeditions-turn-based-rooms.md
  3. e7656b980:docs/ops/agent-messages/2026-11-02-claude-a-expeditions-shuffle-engine.md
  4. badaa5c6f:docs/ops/agent-messages/2026-11-02-claude-b-fork-bands-and-strain.md
  5. b89f778c2:src/main-game/alpha/public/encounter/src/skills/turns/.pinned/rooms/src/expeditions/tactics/compose.js
Built 3 Nov 2026, 12:17 am (Sydney) from wiki/source/articles/room-assembly.md. The wiki checkout was at 7df3a62ea; accepted main was 1ded4c01c; the Placeholder alpha was bf472ae0a. Rebuild: node wiki/tools/build-wiki.mjs.