Interactive Fiction

There’s a deep part of me incredibly fond of text adventures. I remember waiting for my  Uncle’s TRS-80 to load (it took so long — I remember it as hours — to read that tape) and then to play for just a bit. To open the mailbox and see the house on the hill. To have the whole thing crash and have to be reloaded.  I spent several days with them that year and made no progress in the game.  Later, I got Diplomacy for my Apple ][c, and played Hitchhiker’s Guide on a friend’s Commodore.  I wasn’t really a gamer back then, games didn’t fascinate me the way they do now, but there was something about text adventures I liked.

In the past few years, I’ve played a few. I’ve watched the AIF community grow and wane and grow again with different types of “adult interactive fiction” games. I’ve played more point and click adventures in their renaissance than I ever played in their heyday. But while I like them, I don’t really play them. On the other hand I yearn to make them.  This seems contradictory to me, but there’s something about the possibility space of IF that fascinates and challenges me as a story teller.

So maybe it’s a bit of hubris that I think I can write a kind of game I barely play and tell an interesting story.  It’s definitely hubris that I think I can write a parser and make a JavaScript parser game designed to be played in a browser. I’ve done a bit of research and have found some partial projects, but nothing really developed. That probably means I’m the main audience for this as well. The truth is, I’d hoped that TADS3.0’s HTML implementation had been more like Twine’s, but it requires a working server to function.

And speaking of Twine, why not use and extend that?  Twine is pretty awesome, and it offers something really pretty amazing for people to create stories with.  I’ve thought about adapting my stories to that medium (and wrote 2 or 3 games for it last year).  But ultimately, I’m a programmer too, and just as I’m drawn to TADS’s object oriented structure over Inform’s more narrative structure, I’m drawn more to writing JavaScript that editing a wiki.

Inform does have a web-based exporter, IIRC, and it will be simple to find an interpreter for Inform that will run on just about anything.  That’s pretty cool of Inform, and is certainly worth anyone’s time.

So it’s hubris to think that this is needed; it’s hubris to just think I can do it and be successful at it.  But then, hubris is for this very reason one of the traits of a great programmer.

The project will be split into two pieces, much like TADS. One will be the parser/disambiguator (which figures out what verb/command you are giving, and which objects you are referring to. It figures out you are taking or putting and that it’s the red ball not the blue pencil that you are taking. I’m calling it Mydas because it touches every other part of the project, and because it’s the species name for the Green Turtle (Chelonia mydas).  The other part of the project is the library of objects which the parser uses and which authors will instantiate or override as part of their game creation.  It will be called Chelonia, for obvious reasons.

I’ve already started and had some missteps, which will be the subject of future posts.

Leave a Reply

Your email address will not be published. Required fields are marked *