Inform is a design system and programming language for interactive fiction, created by Graham Nelson in 1993. The language was specifically built for writing text-based adventure games, also known as interactive fiction (IF), and it is used to create games that can be played on virtual machines like the Z-machine, which was originally developed by Infocom for its games in the 1980s. This made Inform one of the most significant tools in the resurgence of interactive fiction as a genre after the commercial decline of the text-based game format.
Inform allows writers and programmers to create rich, interactive worlds where players can explore, solve puzzles, and engage in stories by typing textual commands like "go north" or "pick up the key." What makes Inform distinct is that it emphasizes natural language programming, meaning that the code often reads more like English sentences than traditional programming languages. This approach makes Inform particularly appealing to writers and hobbyists who may not have a formal programming background but are interested in creating complex interactive stories.
Initially, Inform was a traditional programming language, relying on a syntax similar to C or other procedural languages. However, its evolution over time, particularly with the release of Inform 7 in 2006, introduced a radical change in how users interacted with the system. Inform 7 introduced a rule-based, natural-language paradigm, allowing game authors to write their code almost as if they were describing the game world and its rules in plain English. For example:
The Kitchen is a room. The apple is in the Kitchen. The player carries a knife.
Instead of eating the apple when the player carries the knife:
say "You slice the apple with the knife and eat it."
This makes it much easier for non-programmers to write interactive fiction, focusing on the narrative and interaction without getting bogged down in complex coding syntax. The example above sets up a room (the Kitchen), places an apple in it, gives the player a knife, and defines what happens when the player tries to eat the apple if they have the knife—Inform's syntax is designed to make such interactions intuitive to write.
The flexibility of Inform lies in its ability to handle both narrative structures and logical gameplay elements, such as handling inventory, managing game states, and implementing complex interaction rules between objects in the game world. Inform also supports sophisticated storytelling techniques, such as branching narratives, environmental storytelling, and puzzle mechanics, making it highly adaptable for writers seeking to experiment with interactive storytelling.
In terms of history, Inform has played a major role in the independent and hobbyist interactive fiction communities, where it continues to be a favorite tool for creating text-based adventures. The language is used in the Annual Interactive Fiction Competition, where many of the top entries are written in Inform. It has also seen use in educational environments, where its simple syntax and focus on narrative make it a great tool for teaching programming and game design principles to beginners.
One of the benefits of using Inform is its active community, with a wealth of resources, tutorials, and libraries available to help new users. Additionally, Inform outputs games that are compatible with the Z-machine, meaning they can be played on a wide variety of devices, including modern computers, smartphones, and even vintage systems that supported Infocom's original games.
In conclusion, Inform is a powerful and approachable tool for creating interactive fiction. Its emphasis on natural language programming allows authors to focus on storytelling and interaction, making it a unique offering in the world of game development tools. While it may be niche, its role in reviving and sustaining the art of interactive fiction is undeniable, and it continues to be a beloved platform for both amateur and professional writers of text-based games.