Interactive Fiction: Writing Text Adventure Games
The resources that follow are intended to provide some sense of the challenges and rewards of writing interactive fiction.
A particularly exciting development in interactive fiction was
2006 release of Inform
7, a complete package for writing, debugging, mapping,
and publishing interactive fiction games playable on a wide
platforms, including PCs, Macs, and handhelds. Inform 7 code
to resemble ordinary English as much as possible, and is thus an excellent choice
thinkers who are not trained as programmers.
Inform 7 is the IF language that I know best, so these resources will be skewed in its favor; but TADS (developed by Michael J. Roberts) is also very impressive.
Creating the Code
7 (Graham Nelson, with collaborators)
I7 is a design system for creating text adventure games, using a programming language based on ordinary English. (See Writing with Inform)
Observations on Using Inform 7 (Emily Short, 2006)
Excerpt: "I7 still has syntax; you still have to think logically; it doesn't understand everything you type. Moreover, there are indeed points where the natural language breaks down or goes away. [...] I7 does recognize that there are kinds of information that really are not best presented in English sentence form."
A Rosetta Stone of source code, showing the same brief game implemented in dozens of different programming environments. Look here if want to compare how different tool get the same job done.
Crafting the Player's Experience
Better Puzzles (Stephen Granade 2008, 1999)
Excerpt: "At some level, puzzles in adventure games are supposed to be a challenge. Overcoming or finding a way past obstacles is part of the enjoyment of many games. However, puzzles can become too much of a challenge when we can't figure out how to solve them... [T]he logic of a puzzle plays a large role in making it solveable or insurmountable. The thing is, the logic of puzzles doesn't necessarily need to be the logic of the real world." (A useful companion piece to Giner-Sorolla's "Crimes Against Mimesis")
a Setting for Fantastical IF (Emily Short, 2001)
Brief comments on world-building, genre conventions, and avoiding cliches.
Fiction (Dennis Jerz, 2001)
Excerpt: "Putting long stretches of narrative prose into the mouth of the interactive fiction narrator will not turn a great puzzle-fest into even a passable story.... The interactive fiction player is supposed to live the story." (See also a brief taxonomy of interactive fiction puzzles.)
Against Mimesis (Roger Giner-Sorolla, 1996)
An argument that an interactive fiction game must include puzzles, and detailed reflections on what makes a reasonable puzzle that does not interfere with the player's enjoyment of the story portion of the game. (It's worth noting that puzzles are only one of many categories mentioned in the XYZZY Awards (the People's Choice for interactive fiction), and that now-canonical games such as Galatea and Photopia are either completely puzzle-free, or they integrate their puzzles so fully into the narrative that they successfully challenged the central thesis of "Crimes Against Mimesis").
Craft of Adventure (Graham Nelson, 1995)
Of particular note is the Player's Bill of Rights, in which Nelson encourages IF authors not to kill the player without warning, not to let the player get the game into an unwinnable state without warning, and to go easy on the in-jokes that will only make sense to your friends.
The call-and-response form of IF -- "TAKE LAMP", "I don't know how to take the lamp" -- has been a familiar gag for thirty years now. And somewhere, in the basement of the computer game world, a few people are still writing text adventures. A few people... a few games... Actually, lots of games. Over a hundred last year, with rapidly-advancing development tools. This is a more active fandom than you might think. So why am I interested? Books are more popular than IF; even short stories pay better than IF. What can I do with text adventures that I can't do with traditional fiction? --Andrew Plotkin
Other than being a highly domain-specific language, the deepest differences between Inform 7 and most everything else in programmer-land are:
- Identifiers may have spaces. When objects, variables, functions, and actions are named appropriately, the result is extraordinarily readable code. Knuth would approve.
- The language is rulebook-based. Rulebooks are containers for rules. Rules give it a declarative flavor at the high level while remaining plainly imperative at the low level.
- The language is currently the most natural language-like programming language in the world.
From the Player's Perspective
When writing IF, it's always a good idea to keep in mind the expectations of first-time players.
How to Play IF
This is a handy IF-for-beginners card that we came up with for the People's Republic of Interactive Fiction Hospitality Suite at PAX-East 2010. If somebody is sitting down in front of an IF game for the very first time, this card should give him or her an idea of what commands will work -- and what commands are likely to work. It's not trying to teach everything an IF expert would know; it's just conveying the pattern.