A short walk through the roots of Interactive Fiction (IF), how it evolved, and how to build your own.
Colossal Cave Adventure
Often considered the first widely known text adventure (1976). Inspired by real cave systems.
Different versions
- Original Fortran version (Crowther/Woods)
- BSD / UNIX ports
- Modern C ports
- Recent 3D reimagining (2023)
Is it the first? Not strictly. But it defined the genre.
Modern links
- GitHub (official modern source): https://github.com/Quuxplusone/Advent
- iOS (3D remake): https://apps.apple.com/us/app/colossal-cave/id6447116258
- Android (3D remake): https://play.google.com/store/apps/details?id=com.cygnus.colossalcave
Zork
Originally developed on MIT mainframes.
- Zork I: The Great Underground Empire
- Zork II: The Wizard of Frobozz
- Zork III: The Dungeon Master
Parser-based. More sophisticated language understanding than Adventure.
Playable online:
Infocom
Commercialized IF in the late 70s/80s.
Major titles:
- Planetfall
- The Hitchhiker's Guide to the Galaxy
- A Mind Forever Voyaging
Portable via the Z-machine. Ran everywhere.
Text-based Everything described. No graphics required.
Cardinal directions
N, S, E, W, U, D
NW, NE, SW, SE
Rooms form a graph.
Inventory gating
- Treasures
- Keys
- Lamp
- Batteries
Point systems
- Score
- Turn count
Save / Load Essential for puzzle-heavy design.
Metroidvania pattern Lock progression behind:
- Keys
- Abilities
- Items
Backtracking is core.
Classic trope.
Types:
- Identical-room maze
- Direction-randomizing maze
- Logic-based maze
Zork’s “Maze of Twisty Little Passages” is canonical.
INSTEAD
Hybrid: text + minimal graphics.
Features
- Lua-based scripting
- Extremely flexible object model
- Supports nonlinear narrative
Docs
Primarily Russian community, partial English docs.
Android
- Available via F-Droid: https://f-droid.org/packages/com.instead.launcher/
Evolution of IF with graphics + mouse.
Major publishers & games:
-
Sierra On-Line
- King's Quest
- Space Quest (Roger Wilco)
-
The Secret of Monkey Island
-
Indiana Jones and the Fate of Atlantis
-
Myst
Parser → Verb menu → Point-and-click → Environmental puzzle.
Rogue
Another exploration model:
- ASCII map
- Turn-based
- Procedural generation
- Permadeath
Descendants:
- NetHack
- ADOM
Still cardinal directions. Still caves. Different abstraction.
Modern tools:
- Inform 7 (not Python, but gold standard): https://inform7.com
- TADS: https://www.tads.org
- Twine: https://twinery.org
- PyIF (minimal engines): search GitHub
Basic approach:
- Model rooms as graph
- Inventory as set
- Command parser
- State machine
Good tutorials:
Minimal architecture:
Game
├── Rooms (dict)
├── Player
├── Items
├── Parser
└── Event system
Example:
{
"rooms": {
"cave_entrance": {
"description": "You are at the mouth of a cave.",
"exits": { "north": "dark_tunnel" },
"items": ["lamp"]
}
}
}Pros:
- Easy to extend
- Data-driven
- Mod-friendly
Alternatives:
- YAML
- Embedded DSL
- Python decorators
- Verb–noun parser
- Synonyms
- Conditional exits
- Flags
- Trigger system
- Save/load serialization
- Scripting hooks
- Scoring module
- Hint system
- Deterministic + seeded randomness
Optional:
- Undo
- Transcript logging
- Unit tests for puzzles
Interactive Fiction is still alive. Minimal UI. Maximum imagination.

















