Classic recreation · 2019
Library of Horror
The largest demonstration that ships with PunyInform. A haunted library, a librarian who knows more than she will say, a conversation tree that goes somewhere if you know which questions to ask. Modern IF, classic Z-machine v3 bytecode.
Library of Horror A PunyInform demonstration game. Copyright (C) 2019 Johan Berntsson and contributors. Front Steps You stand on the worn stone steps of the old library, the kind of building that draws you in even as something in the back of your neck tells you to turn around. The door before you hangs slightly ajar. > enter library Reading Room Tall shelves rise on every wall, the books on them tilted at angles that suggest no one has straightened them in a long time. A heavy oak desk dominates the centre of the room. A flickering oil lamp casts uneven light across the spines. There is a librarian here, sitting motionless behind the desk. > hello librarian The librarian looks up slowly. "Welcome," she says, in a voice you do not entirely trust. "Are you looking for something in particular?" > ask librarian about books "We have many books," she says. "Some of them even let you put them back."
The PunyInform story
Inform 6 was designed in the 1990s to compile to Z-machine v5 and up. Z-machine v3 was the 1980s Infocom target: 8-bit addressing, 4-byte dictionary words, 9-byte object entries. By the 2000s nobody was writing new v3 games because the modern standard library would not target it.
Johan Berntsson started PunyInform in the 2010s to fix exactly that. It is a minimal Inform 6 standard library that fits in v3's tight memory budget, built specifically for the 8-bit-micro retro IF scene that wanted to author new games for original interpreters. Cloak of Darkness on this site uses PunyInform too; Library of Horror is the larger showcase the team built to prove that PunyInform could carry a real game, not just a reference fixture.
The library ships under BSD-3-Clause through the PunyInform GitHub repository. Library of Horror sits in the examples directory; the compiled Z-machine v3 binary lives in the repo's release artifacts. We recompile from source with PunyInform 6.3.1 + Inform 6.44.
What the importer wrestles with
PunyInform's attribute layout diverges from the canonical Inform 6 standard library. The "room" marker bit, the "light" bit, the "supporter" bit — all renumbered. The Phase 2 importer in our Z-machine pipeline probes the object table empirically to find the right bits per game; Library of Horror is the fixture that drove the probe design.
For a player, none of that matters. You walk in, talk to the librarian, find the books, solve the puzzles. The importer's job is to make all of that work with no per-game configuration on our side. PunyInform games drop in, get probed, get played.
How wilds.ai plays it
Server-side Z-machine v3 VM, canonical prose, AI companion overlay, voice narration optional. Library of Horror is the right length for one evening with a companion. It is also the only game on the platform where the companion can argue with the librarian about which books to recommend.