Classic recreations are wilds.ai's third runtime category — alongside LLM-driven worlds (TTRPG, narrative, visual novel) and deterministic engines (arcade, roguelike, realtime-3D). The runtime plays public-domain interactive fiction end-to-end with the canonical prose preserved verbatim. The overlay adds voice narration in the voice you pick, an AI character in the sidebar who reads along and reacts, save state across sessions and devices, and real audio for what was originally text-only.Classic recreations are wilds.ai's third runtime category — alongside LLM-driven worlds (TTRPG, narrative, visual novel) and deterministic engines (arcade, roguelike, realtime-3D). The runtime plays public-domain interactive fiction end-to-end with the canonical prose preserved verbatim. The overlay adds voice narration in the voice you pick, an AI character in the sidebar who reads along and reacts, save state across sessions and devices, and real audio for what was originally text-only.
#What's in the catalog
The v1 catalog is four games, browser-playable, no install:
- Adventure — Crowther + Woods, 1976. The cave that founded interactive fiction. Mainframe-era PDP-10 game ported to Inform 6 v5. 4-8 hours.
- Adventureland — Scott Adams, 1978. First commercial text adventure on a home computer. 16 kilobytes of RAM, 13 treasures, author-released to free distribution. 3-6 hours.
- Cloak of Darkness — Roger Firth, 1999. The "hello world" of interactive fiction. Three rooms, one cloak, one mechanic. Every IF authoring system has a port; we ship the PunyInform Z-machine v3 build. 5-10 minutes.
- Library of Horror — PunyInform contributors, 2019. The largest demonstration shipped with PunyInform. A haunted library, a librarian, a conversation tree that rewards careful asking. BSD-3-Clause. 30-60 minutes.
Find them in-app at /app/browse/classics or on the marketing site at /classics. Each game has its own landing page with license proof + provenance.
#How the runtime works
Every game runs on its native virtual machine. The wilds-ai monorepo ships two embedded VMs:
- Z-machine v3 — Infocom's 1979 bytecode format, plus the modern PunyInform compiler that targets it. 69 opcodes split across
0op/1op/2op/vardispatch tables. COW-ish memory model so save / restore is instant. Dictionary, parser, and Z-string decoder all match the Z-Machine Standards Document v1.1. - Scott Adams condact VM — predates the Z-machine by years and has a totally different shape. Two-word verb + noun parser, condact ("condition + action") pairs as the language primitive, vocabulary table at known offsets. Used for the 1978-1985 Scott Adams catalog (
.datfiles).
When you type a command, the request hits the server. The VM steps forward one turn, the canonical output text comes back unchanged, and the overlay layer adds narration / character reactions / save state on top. We don't rewrite the prose — when Crowther says "You are standing at the end of a road before a small brick building," that's what you see.
#What the wilds overlay adds
The original games shipped as text-only. The overlay adds:
- Scene painting. An AI illustration of the room you're in, rendered at the top of the viewport in the game's period art style, with recurring characters and environments kept visually consistent across rooms.
- Voice narration in whatever narrator voice you pick (any narrator from the platform's voice library).
- AI character in the sidebar. Reads along, reacts to your moves, asks what you're going to do next. Same character system as a regular wilds.ai session, and they remember your runs.
- Save state across sessions and devices. Type
savein Adventure and your VM state syncs to your account. Sign in on another device, hit "continue," resume where you left off. - Real audio for what was originally text-only. Ambient music per room mood, a 3D soundscape that places sounds around you, and the original NPC lines voiced by their bound character voices.
- AI hints. A nudge for the room you're in when you're stuck, scoped to the current room so it never spoils a puzzle you haven't reached.
- Living World replies. Try something the original author never wrote a response for, and an in-character line answers instead of the stock "I don't understand." It only ever describes; it never changes the game's state, puzzles, or whether you can win.
Each of these is an opt-in toggle in the enhancements panel; the AI layers among them are part of a paid plan, while saving your progress needs only a free account. The game itself is free — the parser, the prose, the puzzles, the map, word suggestions, and the diegetic sound effects cost nothing and need no account. The AI layers on top of it — scene painting, ambient music, voiced characters, the narrator, Smart Parse, AI hints, and Living World replies — are included with Plus, Pro, and Forge, and credits meter what you use on those plans.
You'll still see the opening room of every game illustrated, whatever plan you're on, so you can see what the layer looks like before deciding you want it.
Creators can also lock these lanes per story — a purist edition with the AI switched off is a deliberate choice an author is allowed to make, and their setting wins over yours.
Nothing in the overlay edits the canonical text. The runtime fires the VM, the VM emits prose, the prose goes to screen + TTS. The overlay reads alongside; it doesn't write.
#Playing a classic
- Pick a game from /app/browse/classics or /classics.
- The "Play" link drops you into the play lobby (
/app/play/<slug>?quickstart=1) — same lobby every other world uses. - Hit start. The first turn renders the opening scene in the canonical voice the game shipped with. Your character (if you have one set) shows up in the sidebar.
- Type commands the way the game expects. Adventure + Cloak of Darkness use standard Inform parser conventions (
look,take lamp,n,examine altar). Adventureland uses Scott Adams's two-word verb + noun (get gold,go north,say plover). - Save state syncs automatically.
Guests can play five turns; free accounts can save progress. Plus unlocks character narration and full voice. Pro and Forge unlock everything plus the rest of the platform.
#Bringing your own story file
Drop your own Z-machine v3 / v5 / v8 story file or Scott Adams .dat into the sandbox at /classics/play-your-own. It plays through the same runtime the curated catalog uses. The file uploads to your private account; it does not appear in the public catalog. Approved uploads can be promoted to the catalog by staff with the operator's permission, but the default is private-only.
The sandbox is the same runtime — same VM, same overlay, same save state. The only difference is curation.
#What's not here yet
- Z-machine v5 / v8. v1 ships v3 only. v5 + v8 are scoped for Phase 2.5; the importer detects them today and routes them through a stub instead of throwing.
- Multi-game catalog beyond v1. Four games is intentional for launch — pristine running, full license proof, no half-supported entries. Subsequent catalog drops add a handful at a time.
- TTRPG-style party state. The sidebar character exists, but you don't bring a party into Adventure. The classic-recreations runtime is single-player by design.
#Source
- Runtime: packages/families/classic-recreations/src/
- Z-machine VM: packages/core/scripting/src/z-machine/
- Scott Adams importer: packages/core/compiler/src/importers/scott-adams/
- Z-machine importer: packages/core/compiler/src/importers/z-machine/
- Server runtime: src/lib/server/classic-recreations-runtime.ts
- Z-Machine Standards Document v1.1: inform-fiction.org/zmachine/standards/z1point1