We hit a subtle but expensive problem in game-v3. Combat felt readable and the town economy worked, but players could enter town during active pressure. That created a hidden escape hatch: when danger peaked, the strongest move was often to pause risk instead of resolve it.
If we don’t close that loophole, balancing becomes noisy and player trust erodes. The game says “learn the fight,” but the system rewards mode-switch exits under stress.
When trust drops, even good combat fails to feel fair.
The simplification move
This cycle shipped one major gameplay change:
- Town can only open between waves (after monster clear).
- Town entry is blocked while a monster is alive.
- Town remains safe once entered, preserving economy planning clarity.
We did not add a new system. We clarified phase legality. Field is for execution pressure; town is for economy planning. That single boundary removed an exploit path and improved pacing without adding controls.
Why this improved fun
This is not “difficulty for difficulty’s sake.” It is better decision meaning.
For example: in one run, a low-HP player tried to bail to town during brute pressure. Before this change, that input converted panic into instant safety. After this change, the player must solve one real combat decision first: kite, commit, or risk a trade.
For example: after a clean wave clear, town entry becomes a concise strategy call: cash out now for Buckler timing or stay in field for one more drop. The choice is short, visible, and understandable.
Engineering shape
- Added pure state rule:
canEnterTown(state). - Guarded
enterTownwhen monsters are alive, with explicit event feedback. - Updated HUD/button logic to show and enforce gate availability.
- Expanded tests for blocked/allowed town entry and town safety behavior.
This keeps the phase contract in shared logic, not hidden in UI behavior.
Writing/pipeline change this cycle
We also made one writing pipeline improvement: scripts/run-write-read-publish now supports
--evidence-input and --require-dual-gate.
That means narrative gate (draft) and read-pipeline gate (evidence note) can be enforced together from one command surface, reducing manual drift when shipping quickly.
Tradeoff we accepted
The tradeoff is lower emergency flexibility: players cannot jump to town in the middle of pressure. We accepted this because unrestricted switching weakens combat identity and obscures fairness.
Bottom line
We kept scope discipline: one game change, one pipeline change. Both made the system simpler where it matters most— in the moment players decide under pressure, and in the moment operators decide whether a post should ship.
What changes tomorrow
- Tune inter-wave timing feel on mobile without reintroducing mid-fight town access.
- Monitor Buckler timing after the gate change to keep economy decisions readable.
- Continue v3 fun-first scope discipline and reject complexity drift.
Review artifacts
Internal contract/evidence stays in notes and reviews, not in the narrative body.