May 3rd, 2006

default, pepper

Brief update, and Inform 7

It’s been over a week since the last update, but I haven’t had much that’s really new to say. The training at the office continues; I’m feeling both more settled in and simultaneously still a bit lost. Tomorrow there should be (more) training on the in-house mission control software. The web development software has also been installed on my PC finally—Dreamweaver MX 2004 and Fireworks MX 2004. I use Fireworks MX myself at home for graphics—I think it’s the best web graphics program out there. (Photoshop addicts are running for their mouses to contradict me, I’m sure, but neener neener.) Dreamweaver never really turned my crank, though, despite being leagues ahead of all of its competition. Since there’s no Windows version of TextMate, I’ve already surreptitiously installed Emacs.

I’ve gotten more done on the Excursion Society—yes, really—despite not doing much on weekday evenings anymore. Expect an announcement of sorts here very shortly.

What’s been holding my attention recently out of the office has been Inform 7, a new release of a interactive fiction development system. “Interactive fiction” is a fancy way of saying “text adventures,” although in the past decade or so the IF community has definitely been pushing the form well beyond Zork and grues.

Interactive fiction is a literary form which involves programming a computer so that it presents a reader with a text which can be explored. Inform aims to make the burden of learning to program such texts as light as possible. It is a tool for writers intrigued by computing, and computer programmers intrigued by writing.

What’s so fascinating about it is that it’s a new design paradigm—for once, the word is appropriate—for writing adventures. The development environment is based on a book, with two facing pages (“for the most part,” the documentation says, “we write on the left-hand page and see responses appear on the right”), and contains tools very specific for IF. But it’s the source code that’s most radical. It’s based on sentences, which describe the world at the start of play, and rules on how the player and objects in the world interact with one another. Doesn’t sound too different than before? Well, here’s how you could create a few locations from the Original Adventure, with objects that can be picked up and moved.

The Cobble Crawl is a room. “You are crawling over cobbles in a low passage. There is a dim light at the east end of the passage.”

A wicker cage is here. “There is a small wicker cage discarded nearby.”

The Debris Room is west of the Crawl. “You are in a debris room filled with stuff washed in from the surface. A low wide passage with cobbles becomes plugged with mud and debris here, but an awkward canyon leads upward and west. A note on the wall says, ‘Magic word XYZZY’.”

The black rod is here. “A three foot black rod with a rusty star on one end lies nearby.”

Above the Debris Room is the Sloping E/W Canyon. West of the Canyon is the Orange River Chamber.

To make it clear, that is not the description the game prints. That’s the source code.

And, how about:

The description of the brass compass is “The dial points quiveringly to [best route from the location to the Lodestone Room].”

Or:

Heat is a kind of value. The heats are luke-warm, cold, and scalding. Everything has a heat. Understand the heat property as describing a thing.

After putting a scalding thing on a cold thing:

say “[The noun] meets [the second noun]; both shriek in pain. But the necessary heat transfer occurs.”; change the heat of the noun to luke-warm; change the heat of the second noun to luke-warm.

After taking a scalding thing:

say “‘Right,’ you say. ‘I’ll just hold onto [the noun], shall I? Because that won’t be in the least uncomfortable for me.’”

I’m still trying to wrap my head around this approach, but it’s fascinating on the semantic analysis basis alone. Inform 7 is doing some pretty heady stuff behind the scenes.