From 7710c3a8304d3851e0b5b21fb18a4a30c4443588 Mon Sep 17 00:00:00 2001 From: m3ultra Date: Sun, 19 Jul 2026 18:35:21 +1000 Subject: [PATCH] THE SHIFT: tedium-as-mortal-peril scenes + choice/branch window spec Co-Authored-By: Claude Fable 5 --- ENGINE.md | 16 ++++++++++++++++ WORLDS.md | 44 +++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 59 insertions(+), 1 deletion(-) diff --git a/ENGINE.md b/ENGINE.md index 5054e46..ba0a039 100644 --- a/ENGINE.md +++ b/ENGINE.md @@ -45,6 +45,22 @@ Rules the engine enforces: Lives 0 → game-over screen → attract. Otherwise retry the scene (or last checkpoint). - On success of last window: let action clip finish, then advance to onSuccess. +## Branching / choice windows (NEW — required by THE SHIFT scenes in WORLDS.md) +A window may replace `input` with `choices`, mapping inputs to outcomes: +```jsonc +{ "t": [2.5, 4.0], "cue": true, + "choices": { + "left": { "goto": "sh1_house_ok" }, // proceed/branch to scene + "up": { "death": "clips/sh1_death_pit.mp4", + "goto": "misfile_dimension" }, // custom death THEN branch (pit!) + "right": { "death": "clips/sh1_death_acct.mp4" } // custom death, normal retry + } } +``` +Rules: cue shows all choice glyphs side by side; no-input-by-close uses the scene's +default death; a `choices` window must be the clip's last window; `random: ["a","b"]` +on a scene picks one of two clip/outcome sets per attempt (for THE TAPE mimic gag). +Choice windows default to longer durations (1.5s) — they're decisions, not reflexes. + ## Player loop (player.js structure) 1. **Boot**: fetch scenes.json → preload manifest. 2. **Preloader**: two `