Inform, short for Inform Programming Language, was created in 1993 by Graham Nelson. Inform is a domain-specific language designed for crafting interactive fiction (IF) and text-based adventure games. It is primarily used by hobbyists, educators, and writers to develop interactive storytelling experiences. Developers can access Inform through the official platform: Inform Official Site, which provides the IDE, compiler, and documentation for Windows, macOS, and Linux systems.
Inform exists to allow authors to write expressive, natural-language-like code that produces interactive narrative experiences. Its philosophy emphasizes readability, logical structure, and story-driven design. By providing high-level abstractions for rooms, objects, and rules, Inform solves the problem of bridging programming with storytelling, enabling writers to focus on narrative while the language handles underlying mechanics of state, parsing, and player interaction.
Inform: Objects and Rooms
Inform represents the game world as interconnected rooms containing objects, each with properties and behaviors.
"Simple Room" by YourName
The Kitchen is a room. "A tidy kitchen with a table and a fridge."
The Fridge is in the Kitchen. The Fridge is openable and closed.Rooms and objects are declared with descriptive text, and properties like "openable" define interaction. This object-oriented approach is conceptually similar to entity modeling in Lua or object definitions in Python.
Inform: Actions and Rules
Inform allows defining rules that govern player actions, object interactions, and world behavior.
Instead of taking the Fridge when it is closed:
say "The fridge is closed, you cannot take it."
After opening the Fridge:
say "You open the fridge. There's some milk inside."Rules intercept or modify actions, enabling complex interactive behavior. This is conceptually similar to event handling in Python or callback mechanisms in Lua.
Inform: Conversation and Parsing
Inform includes a natural-language parser that interprets player commands, translating text input into actions.
Understand "eat [something]" as eating.
Instead of eating the milk:
say "You drink the milk. Refreshing!"The parser maps textual commands to rules and actions, allowing rich player interaction. This is conceptually similar to pattern matching and parsing in Python or command interpretation in Lua.
Inform: Scenes and Story Progression
Inform uses scenes to model story progression, enabling timed events or narrative triggers.
The Cooking Scene begins when play begins.
The Cooking Scene ends when the Fridge is opened.Scenes provide temporal control over events and game state, similar to state machines in Python or Lua-based game scripting.
Inform provides a powerful framework for interactive fiction, blending natural-language syntax with programmable logic. Its structured, rule-based approach allows authors to craft rich, responsive worlds, while the underlying parser and object model handle complex interactions. When used alongside Python, Lua, and Twine, Inform enables the creation of immersive, dynamic narrative experiences that emphasize story, logic, and player agency.