# All Roads by Jon Ingold, Release 1, serial 011119, Z-machine V5 # (IF Comp 2001 winner / XYZZY Best Game 2001) # VERIFIED COMPLETE SOLVE: won=True (win text), died=False # # Reproduce with the RNG-pinned replay harness (free, no API): # cd ~/src/zwalker # python3 scripts/replay_solve.py games/zcode/allroads.z5 walkthroughs/allroads_verified_win.txt --seeds 4 # => allroads_verified_win.txt: VERIFIED 36/None at seed 1 | 185 cmds | died=False | won=True # (The "36" is a meaningless Inform global the score reader lands on; the game # is scoreless - SCORE is not even a verb it recognises - so the win is # decided purely by the WIN_TEXT directive below.) # # All Roads is a Venetian assassin story told across a folded timeline: you # wake on the scaffold with a noose around your neck, escape through the # "darkness" (the other direction only you can travel), and live a day that - # on the second pass - turns out to have been braided around itself. The # route follows the game's own sample walkthrough shape: escape the wine # cellar via the dropped key, lose sanctuary at the church, slip the Captain # in the alleys, enlist in the Denizen's army, get betrayed to the Resistance # by Francesca, survive the night cell, then wake in your inn room, learn the # target's name from the note (destroy it in the sink), and walk the palace # leg a second time while the game replays your first visit's commands as # deja-vu echoes. In the wine cellar you finally meet Giuseppe Florantine, # slip your signet ring onto his bound hand, and knock to be let out. # # Ending: the timeline closes back on the opening scaffold - the hooded body # under the noose ("Giuseppe Florantine! For the crime of: THIEVERY!") swings # as your consciousness watches from the crowd beside Francesca and her # father ("another job completed by the usual cycle"), and the game closes # with its true final banner "*** You rest ***", which is the WIN_TEXT. # The intermediate banner "*** You have been hanged ***" is scripted story # text on the winning route, not a death. # # Deterministic, no RNG on route: the story is fully scripted; seeds 1-4 all # replay identically to the same ending (machine-checked). The pinned seed is # kept purely for harness uniformity. # # Keypress prompts: the game reads single keys at its menu, its cut-scene # "[Press any key]" breaks, and its title screen. The title screen accepts # ONLY space or return, which a plain-text command list cannot carry (the # replay loader strips whitespace). Those key events are therefore encoded # as a single U+10020 character (see the odd-looking lines below): the # interpreter truncates key codes to 16 bits, so 0x10020 arrives as 0x20 - # a space - at every read_char prompt. Plain "z" lines serve as keypresses # where any key is accepted, and as waits at line prompts. # # Movement commands are phrased "run