Interactive Fiction: Writing Text Adventure Games

Creating interactive fiction (a genre also known as "text adventures") means writing computer code that represents objects and behaviors, while also creating interesting characters, a compelling plot, and maybe a few narrative surprises, all of which can be assembled for a reader to experience in multiple different ways.

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 the 2006 release of Inform 7, a complete package for writing, debugging, mapping, and publishing interactive fiction games playable on a wide range of platforms, including PCs, Macs, and handhelds. Inform 7 code is designed to resemble ordinary English as much as possible, and is thus an excellent choice for verbal 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

  • Inform 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)
  • Some 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."
  • Cloak of Darkness
    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

  • Making 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") 
  • Developing a Setting for Fantastical IF (Emily Short, 2001)
    Brief comments on world-building, genre conventions, and avoiding cliches.
  • Exposition in Interactive 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.)
  • Crimes 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").
  • The 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.
July 2010; by Andrew Plotkin
A Writer's Guide to Interactive Fiction
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

Jan 2009; by Ron Newcomb
Inform 7 for Programmers

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.

Mar 2010; Plotkin and Albaugh
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.
play-if-card-300dpi.png

Categories

 

Related Entries

Leave a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

Type the characters you see in the picture above.

Sponsored Links

About this Entry

This page contains a single entry by Dennis G. Jerz published on July 14, 2010 12:38 PM.

Overview was the previous entry in this blog.

Note-taking: Top 5 Tips is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Powered by Movable Type 5.02