The moment a player types “open the red door” and your world responds with a satisfying description of what lies beyond, look at this now you’ve made a kind of magic. Text adventures — interactive fiction — trade graphics for imagination, and no tool makes crafting that magic feel more like writing prose than Inform. But design help goes deeper than learning syntax: it’s about learning to think in rules, scenes, and player psychology. This guide walks you through that journey, from your first room to a fully realised story, using Inform’s unique strengths.
The natural-language revolution
Inform 7 is a design system for interactive fiction that looks like a literary experiment. Instead of traditional code, you write sentences such as:
The Library is a room. “Tall shelves crowd around you, their leather spines breathing dust and vanilla.”
This isn’t a superficial translation layer. Inform’s underlying engine parses these declarations into a rich world model with rooms, objects, relationships, and actions. The philosophy is that the source text is the design document. When you write “The red door is west of the Library and east of the Garden”, you’ve simultaneously created two locations, a door as a separate object, mapped the compass directions, and declared that it starts closed. The system infers what you mean, and if it fails, its problem messages read like a copy editor’s queries.
This approach has a profound effect on design. Because the code mirrors natural description, authors can prototype the geography and atmosphere of their story in minutes, keeping the creative flow uninterrupted. But natural language is a tool, not a shortcut. Behind those English sentences are rigid rules about actions, scope, and state that you must learn to bend to your will.
Your first hours: building a small but deep space
The single best piece of design help for any newcomer is this: start with three rooms, not thirty. A tiny, perfectly polished vignette teaches more about the system than an epic sprawl. Create a location like a cottage kitchen, add a lantern, a locked cupboard, and a cat. Then implement one meaningful interaction.
Inform uses rulebooks to control what happens when the player tries an action. The most common design pattern is:
Instead of taking the cat:
say “The cat arches her back and hisses, defying your grasp.”;
rule fails.
Here you’ve told the game to intercept the taking action, print a message, and stop the default behaviour. This tiny fragment demonstrates the core loop of Inform design: imagine what the player might type, then script a response that feels true to your world. You’ll rapidly build a repertoire of “Instead”, “Check”, “Carry out”, and “Report” rules that form the connective tissue of your game.
Use the IDE’s built-in testing commands immediately. Typing ACTIONS in your game turns on action tracing, showing exactly which rules fire. SHOWME the lantern prints out the object’s properties and current state. RULES lists all rulebooks applicable to an action. Treat these as your design assistants. They turn the black box of the parser into a transparent window, letting you see why the player can’t open the door (you forgot to make it openable) or why the inventory listing looks wrong.
The heart of design: world model and player experience
Inform’s strength is its deep world model. Every thing has properties: it can be wearable, edible, locked, or male. You can define new kinds — “A gadget is a kind of thing” — and attach rules to entire categories. This encourages systemic design. Instead of writing separate rules for every locked container, you can say “A lockable container is a kind of container” and build a universal unlocking mechanism. The mental shift is from scripting individual answers to designing a coherent simulation.
But simulation alone isn’t story. Great interactive fiction uses the world model to support narrative. Consider a scene where the player must realise they can burn a tapestry to reveal a passage. In Inform, you might define:
The old tapestry is scenery in the Throne Room. The tapestry is flammable.
Instead of burning the tapestry:say “The fabric catches and shrivels, revealing a narrow archway behind.”;
now the tapestry is destroyed;
now the Hidden Passage is a room east of the Throne Room.
Notice the “now” phrase: it changes the world state permanently. Inform’s ability to alter the map, relations, and properties at runtime is what lets stories unfold. Design around state changes — a character who trusts you, a weather condition that worsens, a river that freezes. Players feel agency when their actions leave marks.
When designing puzzles, remember that the parser is a text input, not a point-and-click interface. The player must guess the right verb and noun. Your job as designer is to provide enough contextual clues without making the solution obvious. Use synonyms generously (a “grammar token” like Understand “scarlet” as the red door). Write failure messages that nudge rather than block: “The door is locked. The keyhole looks rusted — perhaps some oil would help.” And always include a hint system, either transparent (a THINK ABOUT command) or diegetic (a companion who offers advice). Inform’s table-based mechanics make structured hints easy to implement.
Conversation, characters, and the illusion of life
Non-player characters are notoriously difficult in parser-based fiction. The player expects to type ASK FRED ABOUT BOMB, TELL WIZARD ABOUT AMULET, and receive meaningful replies. Inform offers no single conversation system; instead, it gives you tables, scenes, and a rule-based engine to build your own. Many designers turn to extensions like “Conversation Framework” or “Threaded Conversation”, which are freely available in the Public Library inside the IDE.
The design challenge is to make NPCs feel responsive rather than robotic. A technique that works well is to treat NPC actions as turn-based reactions. Every turn rule can move characters, have them comment on the player’s actions, or set flags for later scenes. Use the “Every turn” rulebook to run background behaviour, but temper it so the player doesn’t feel chased. A well-placed line like “From the corner of your eye, you notice the librarian has stopped dusting and is watching you intently” builds tension with almost no code.
Testing as a creative discipline
Interactive fiction is written to be played — and broken. basics A crucial piece of design help that newcomers often neglect is formal playtesting. Inform provides a “TEST” command that lets you script sequences of actions and check the output. You might write:
Test me with “open cupboard / take key / unlock door with key / south”.
Run this test after every change. When a later design tweak accidentally breaks the unlocking action, the test instantly catches the regression. This habit transforms development from fragile hope into confident iteration.
Beyond machine testing, you need human eyes. Give your prototype to someone who has never seen the code. Watch silently as they try verbs you never considered, misinterpret your room descriptions, and get hopelessly lost. Every single one of those moments is a design flaw, not a player failure. Inform makes it easy to add missing synonyms or clarify direction hints, but only if you know what’s missing.
The literature and community that will save you
Inform ships with two extraordinary books accessible from the IDE: Writing with Inform and The Inform Recipe Book. The first is a manual that reads like a tutorial, filled with examples that are exactly what you need as design patterns. The second is a cookbook of solutions: “How do I create a locked door that can be opened from one side?”, “How do I make a torch that burns out over time?”. Before you try to invent a complex clockwork mechanism, check the Recipe Book. It will almost certainly contain a simpler, more robust approach.
The Interactive Fiction Community Forum (intfiction.org) is the living brain of the hobby. Designers of all levels post snippets of code, narrative dilemmas, and extension ideas. The community’s culture is unusually supportive; questions framed as “I want to achieve X, here’s what I tried” receive rapid, thoughtful answers. There are also active Discord servers where real-time debugging sessions happen. Never design in isolation.
Your own voice within the framework
Inform’s natural language syntax can lead to a sameness of tone if you’re not careful. The default library narrates in a spare, competent style. Your job is to infuse every “say” phrase with your own literary sensibility. Vary sentence length in room descriptions. Use conditional text to show a location differently at night: “The ruin is [if night-time]pitch black, full of whispers[otherwise]harsh and bright, every crack exposed[end if].” Let your prose respond to the player’s history. The best Inform games read as though they were written by a novelist who happens to understand state machines.
The single most valuable piece of design help I can offer is this: treat your source text as a living document that must remain readable to your future self. Use headings to group rooms, objects, and plot scenes. Write commentary lines with [Comments in brackets]. A well-organised game allows you to hold the entire narrative in your head even as the line count climbs into the thousands.
Building a text adventure in Inform is an act of architectural storytelling. You are constructing a space of words, laws, and possibilities. Every rule you write is a creative answer to the player’s assertion “I want to try something”. By learning the world model, embracing test-driven design, leaning on the community and documentation, and shining your own prose through every response, you’ll craft experiences that feel both orderly and boundless. read this That moment when a playtester types something you never anticipated and your game answers beautifully — that is why we design with Inform.