Inform

Inform is a programming language and design system for interactive fiction originally created in 1993 by Graham Nelson.

Andrew Plotkin created an unofficial version of Inform 6 that was also capable of generating files for Glulx, a virtual machine he had designed to overcome many of the limitations of the several-decades-old Z-machine.

Typically, top level objects represent rooms and other locations within the game, which may hold objects representing the room's contents, be they physical items, non-player characters, the player's character, or background effects.

However, objects very frequently have attributes (boolean properties, such as scenery or edible) that are recognized by the Inform library.

The procedual parts, statements and operators, are largely borrowed from C, with the notable exception that -->x instead of [x] is used to take array subscripts.

[6] The Inform system also contains the Inform library, which automates nearly all the most difficult work involved in programming interactive fiction; specifically, it includes a text parser that makes sense of the player's input, and a world model that keeps track of such things as objects (and their properties), rooms, doors, the player's inventory, etc.

Inform 7 also defaults to writing Blorb files, archives which include the Z-code together with optional "cover art" and metadata intended for indexing purposes.

The full set of Inform 7 tools are currently available for Mac OS X, Microsoft Windows and Linux (since 2007).

[16] Inform 7 comes with an integrated development environment (IDE) for Mac OS X, Microsoft Windows and Linux.

As a developer tests the game in the built-in interpreter, progress is tracked in the "skein" and "transcript" views of the IDE.

On replaying a transcript or a branch of the skein, variations from the blessed version will be highlighted, which can help the developer find errors.

The code is shown as a class hierarchy, a traditional IF map, a book-like table of contents, and in other forms.

The concept is to imitate an author's manuscript book by presenting two "facing pages" instead of a multitude of separate windows.

[13] Notable features include strong bias towards declarative rule-based style of programming and ability to infer types and properties of objects from the way they are used.

creates a "person" called "John" (since only people are capable of wearing things), creates a "thing" with the "wearable" property (since only objects marked "wearable" are capable of being worn), and sets John as wearing the hat.

A developer might add relations indicating love or hatred between beings, or to track which characters in a game have met each other.

General-purpose logical and arithmetic statements are written in natural language (see e.g. the "Physics" example in The Inform Recipe Book).

[18] In early Inform 7, the compiler translates the code to Inform 6, much like CFront did with C++ and C.[16] The current compiler (as of version 10 of 2022) is additionally able to translate the code directly to C for a native executable,[dubious – discuss] and to generate an "index mini-website" describing the story.

Mystery House Possessed (2005), by Emily Short,[20] was the first Inform 7 game released to be public.

[25][26][27] Emily Short's Floatpoint was the first Inform 7 game to take first place in the Interactive Fiction Competition.

The Inform 7 IDE on Mac OS X showing source code and the skein
The Inform 7 IDE on Mac OS X showing the Index Map and the transcript