Guide

Text adventure game design explained

A text adventure (also called interactive fiction, or IF) is a game where typed or tapped language is the primary interface — players read descriptions, issue commands, and receive prose responses that advance story and state. The genre spans classic parser games (“OPEN DOOR. TAKE KEY.”), hypertext choice fiction, hybrid phone-message thrillers, and LLM-driven chat adventures. What unifies them is that words model the world: rooms, objects, characters, and rules live in text, and good design makes that model feel fair, explorable, and surprising. This guide covers subgenre taxonomy, the read-command-respond loop, world modeling for parsers and choice engines, puzzle fairness and cluing, narrative pacing without visuals, modern authoring tools, a Harbor Archive mystery IF worked example, a subgenre decision table, common pitfalls, and a practitioner checklist. For illustrated branching fiction, see visual novel game design explained; for broader story craft, see game narrative design explained.

What counts as a text adventure

Text adventures predate graphical games — Colossal Cave Adventure and Zork established the template: a simulated space described in second person, a vocabulary of verbs, and puzzles that gate progress. Modern IF is broader. Choice-based IF (Twine, Ink) presents hyperlinked passages or menu options instead of free-form typing. Parser IF (Inform, TADS) expects natural-language commands parsed into verb-object-preposition triples. Hybrid IF mixes parser exploration with choice dialogue, or embeds text in larger games (journal entries, terminal hacks, diegetic emails).

Common subgenres

  • Classic parser exploration — map traversal, inventory puzzles, light comedy or dungeon fantasy.
  • Mystery and detective IF — interview suspects, examine evidence, deduce culprit; fairness demands clued solutions.
  • Horror and survival text — resource timers, limited light, escalating dread; prose carries atmosphere parsers cannot render with shaders.
  • Choice-driven drama — relationship arcs, moral forks, stat-light branching; closer to visual novels without art budget.
  • Educational and documentary IF — historical scenarios, science explainers; accuracy and respectful representation matter.
  • LLM chat adventures — open-ended dialogue with model backends; needs guardrails against drift and hallucinated state.

The design question is not “parser or choices?” but which input model best serves your fantasy. Exploration puzzles favor parsers; emotional branching favors choices; hybrids trade implementation cost for flexibility.

The read-command-respond loop

Every text adventure cycles through three beats:

  1. Read — the game outputs room description, action result, or narrative passage. Clarity and rhythm matter; walls of undifferentiated prose exhaust players.
  2. Command — the player types “examine portrait” or taps “Confront the curator.” Input must feel responsive; rejected commands need helpful feedback, not silence.
  3. Respond — the simulation updates world state, fires rules, and prints the next beat. Latency should be near-instant; parser games die on slow turns.

Unlike action games where reflexes carry tension, IF tension comes from information asymmetry — what the player knows vs what they must discover. The loop succeeds when each response teaches something new: a clue, a constraint, a character voice, or a spatial relationship. Repetitive “You see nothing special” responses are design debt.

Parser affordances

Parser games implicitly promise that reasonable commands work. Players will try LOOK, EXAMINE, TAKE, USE X ON Y, TALK TO, and creative synonyms. A minimal verb set with rich synonym tables beats a huge verb list with shallow coverage. Standard responses (“I don’t understand”) should suggest nearby valid actions after repeated failure — a soft hint system preserves immersion better than a walkthrough button.

Choice affordances

Choice IF trades parser freedom for curated options. Each link should represent a meaningful intent, not micro-synonyms of the same beat. Players notice when three choices reconverge instantly — the same failure mode as fake branches in VNs. Use silent state variables (trust, suspicion, inventory flags) to make choices matter downstream without cluttering every menu.

World modeling: rooms, objects, and rules

Parser IF traditionally models space as a graph of rooms connected by directions (north, in, up). Each room holds objects; objects have properties (portable, openable, edible) and respond to verbs via rule tables. This is a lightweight entity-component system expressed in prose. Design the graph on paper first — dead ends need purpose (loot, lore, red herring), not empty filler.

Objects and simulation depth

Depth is selective. Simulating every object in a kitchen is impossible; simulate the three objects that matter for puzzles and mention the rest as scenery. Scenery objects can be examined for flavor but not taken — set player expectations early. Containers (open box, locked safe) need consistent state: if the safe is open in room A, it stays open when revisited unless an NPC closes it — and that closure should be signaled in description.

NPCs as state machines

Characters in IF are dialogue trees plus world reactions. An NPC might move between rooms on a schedule, refuse commands until a flag is set, or answer differently after the player shows evidence. Document NPC states in a spreadsheet: location, mood, knowledge flags, and which topics are exhausted. For conversation implementation patterns, see game dialogue systems explained.

Choice-world modeling

Choice engines often use passages as nodes and links as edges, with variables tracking inventory and relationships. The mental model is a flowchart, not a geography — but players still build spatial maps in their heads if you describe places consistently. Reuse location names and anchor objects so the world feels persistent across branches.

Puzzle design and fair cluing

IF puzzles are gatekeeping mechanics expressed as logic problems. The gold standard is fairness: a attentive player can solve without external hints, because clues exist in text they could have read. Unfair puzzles — obscure verb, invisible object, arbitrary parser rejection — generate walkthrough dependence and bad reviews.

Clue layering

  • Surface clue — explicit description (“The portrait’s eyes follow the mahogany desk.”).
  • Examination clue — reward for EXAMINE (“Behind the desk, scratches suggest a hidden drawer.”).
  • Cross-object clue — requires combining information from two rooms or NPC lines.
  • Timing clue — event only visible after a clock advances or an NPC moves.

Layer at least two independent clues for any puzzle that blocks main progress. Red herrings are allowed in mystery IF if they are clearly optional and do not soft-lock the player. For general puzzle craft across genres, see game puzzle design explained.

Soft locks and undo

A soft lock occurs when the player cannot proceed but is not dead — e.g., consumed a required item, locked a door behind them. Prevent consumable failures on critical keys; use UNDO support in parsers and checkpoint saves in choice games. Test with players who do deliberately stupid things — IF players will.

Narrative pacing in prose-only games

Without cutscenes or camera work, pacing is sentence-level craft plus structural rhythm. Alternate exploration beats (new rooms, object discovery) with revelation beats (plot twists, NPC confrontations) and breather beats (humor, safe rooms). Long exposition dumps belong in discoverable documents — letters, terminals, journals — so players control reading depth.

Second-person present (“You open the door”) is genre convention but not mandatory. First-person diary IF or third-person omniscient can work if consistent. Voice — wit, dread, formality — is your cheapest production value. Revise for read-aloud flow: if a sentence trips the tongue, it will trip the player during a long session.

End sessions at natural cliffhangers: a door half-opened, a unanswered question, a countdown started. Parser games benefit from explicit chapter markers in choice IF and score/room-count milestones in classic parsers so players know when to save and quit.

Authoring tools and production pipeline

Tool choice shapes design constraints. Pick early; migrating mid-project is costly.

  • Inform 7 — rule-based natural-language source; excellent for parser simulation depth; steeper learning curve; compiles to Glulx/Z-machine.
  • Twine — visual passage graph; fastest for choice hypertext; Harlowe/SugarCube story formats; web export is trivial.
  • Ink — knot/stitch scripting with weave syntax; strong for branching with rejoins; integrates with Unity and other engines.
  • Texture / other mobile-first tools — gesture-based IF for casual audiences; limits parser complexity.
  • Custom engine + LLM — flexible but requires state tracking outside the model; never let the LLM be the sole source of truth for inventory.

Production pipeline: outline puzzle dependency graph, draft room/passage map, implement vertical slice (one complete puzzle chain), playtest with transcript logging, then expand. Maintain a test script of commands that speedruns the critical path — rerun after every puzzle change.

Worked example: Harbor Archive mystery IF

Harbor Games prototypes Harbor Archive, a short parser mystery: a flooded municipal records vault, a missing zoning ledger, three NPCs (curator, intern, inspector), one culprit. Target playtime: 45–75 minutes. Engine: Inform 7, Glulx export with Vorple-style hyperlink supplements for mobile examine shortcuts.

Map: eight rooms — entry catwalk, main stacks, microfilm booth, curator office, flooded sub-basement (gated), loading dock, break room, roof access. Critical path: obtain rubber boots (break room) before sub-basement; find ledger page in microfilm; confront curator with page to trigger confession ending. Two optional endings: frame wrong suspect (bad end), call inspector early with incomplete evidence (ambiguous end).

Puzzle chain: (1) lights fail — player must find fuse in office drawer (clue: burnt smell noted in entry description + examine fuse box). (2) Sub-basement flooded — boots on loading dock pallet (clue: wet footprints from dock to stairs). (3) Microfilm reader needs cartridge — intern NPC gives it after player brings coffee from break room (dialogue flag intern_helpful). (4) Ledger image number scratched on curator’s desk blotter — cross-references microfilm index.

Parser coverage: 22 verbs implemented with synonyms; ASK [NPC] ABOUT [TOPIC] supports twelve topics. Beta transcript review: 91% of players reached confession ending without hints; average 34 unrecognized commands per playthrough — acceptable after adding “try examining” nudge on third failure. Result: IFComp-style testers rated fairness 4.2/5; main complaint was sub-basement only clued by footprints — second clue (dock safety poster mentioning boots) added in revision.

Subgenre decision table

Goal Prefer Why
Spatial exploration and object manipulation Parser IF (Inform/TADS) Free-form commands reward curiosity and emergent attempts
Emotional branching with modest scope Choice IF (Twine/Ink) Faster authoring; no synonym matrix for dialogue-heavy scenes
Mystery with deduced solution Parser or hybrid with evidence notebook UI Examination verbs mirror detective work; notebook tracks clues fairly
Mobile casual audience Hyperlink choice with short passages Typing on phones frustrates; tap targets beat parsers
Embedded story inside AAA game Ink or custom dialogue DSL Integrates with engine; keep scope to lore terminals or side quests
Infinite replay conversational fantasy LLM-assisted with hard state layer Model generates flavor; code owns inventory and plot gates

Common pitfalls

  • Guess-the-verb — puzzle requires PRY but only OPEN is documented; players quit.
  • Walk-in-the-dark — huge map before any hook; players never reach the first puzzle.
  • Unimplemented detail — description mentions a painting but EXAMINE PAINTING returns generic refusal; breaks trust.
  • Coincidence solutions — correct action lacks prior clue; mystery IF feels arbitrary.
  • Choice convergence — three branches reunite with identical text; agency illusion collapses.
  • Inventory cruft — twelve red herring objects obscure useful tools in parser status output.
  • No transcript or test script — regression after puzzle edits goes unnoticed until players report soft locks.
  • LLM state drift — model forgets the player already has the key; hard-code critical facts.

Practitioner checklist

  • Draw room/passage map and puzzle dependency graph before writing prose.
  • Define verb set (or choice types) and synonym table; prototype one vertical slice puzzle.
  • Layer two independent clues per mandatory gate; log clue locations in design doc.
  • Playtest with transcript recording; count unrecognized commands and hint requests.
  • Run destructive tests: consume items, revisit rooms after state changes, save-scum endings.
  • Add soft nudges after repeated parser failures without full walkthrough mode.
  • Implement UNDO or chapter checkpoints; verify no unwinnable states on critical path.
  • Revise descriptions after layout changes — stale text is a common jam bug.
  • Proofread for second-person consistency and read-aloud rhythm.
  • Publish with hint system or in-game journal; IF audiences expect fairness, not torture.

Key takeaways

  • Text adventures model worlds in language — rooms, objects, NPCs, and rules must stay internally consistent.
  • Parser and choice IF differ in input freedom; pick the model that matches your core fantasy, not nostalgia alone.
  • Fair puzzles need layered clues discoverable through standard commands; unfair parsers die in comment threads.
  • Prose pacing replaces camera work — alternate exploration, revelation, and breather beats deliberately.
  • Tooling (Inform, Twine, Ink) encodes constraints; build a test script and transcript workflow from week one.

Related reading