Having cut my teeth on Adventure back in the early days of desktop computing, I’m comfortable with and partial to parser-based interactive fiction. Apparently the new version of Twine has some very nice point-and-click hypertext features, but that whole way of interacting with the story seems too passive to me. The attraction of IF is, I think, that the fictional world of the story has a sense of mystery and discovery. You don’t know precisely what will work and what won’t, until you try it.
Personally, I’m partial to the TADS 3 authoring system, and in particular to Eric Eve’s adv3Lite library for T3. But Inform 7 remains the more popular authoring system for several reasons, some of them good, some of them not so good.
Back in 2009 I wrote The Inform 7 Handbook, an alternative to the official documentation. It’s now quite out of date. Possibly I ought to be thinking about rewriting it. So today I’ve been having a fresh look at I7.
If you’re new to the whole idea of IF authoring, what follows will make very little sense to you. Sorry about that.
I7 provides, by design, a bare-bones world model. The model includes some strikingly powerful features, such as scenes and regions, but there’s a lot that it doesn’t do. Graham Nelson’s intention in making this design choice was to encourage third parties to write extensions for the I7 language. This both streamlined his own already Sisyphean task and encouraged the growth of a community.
Numerous authors have created and uploaded I7 extensions; I’ve written two myself. By including an extension such as Bulky Items or Exit Lister in your source code, you can produce a text game that more nearly approaches your vision of how you want your interactive story to be presented. You don’t have to know how the extension works — just put the line “Include Exit Lister by Eric Eve” at the top of your story, and you’re jammin’.
Sounds great. There is, however, a fly in the ointment.
Inform 7 has gone through several versions during the past ten years. As a result, extensions written for earlier versions quite likely won’t work with more recent versions. This is especially true with respect to I7 version 6L02. Released in May of 2014, 6L02 was a major upgrade. (The current version, 6L38, is mostly a maintenance release.)
Not infrequently, the author of an extension doesn’t upgrade it to work with the new version of I7. Possibly the author has lost interest in interactive fiction, or is simply too busy. For whatever reason, functionality that an author might like to employ by using an extension may be difficult to gain access to.
The Inform 7 website has a long page devoted to extensions, complete with download links. Unfortunately, this page is entirely out of date. None of the extensions that work with 6L02 and 6L38 are to be found there, and most of what’s there won’t work with the latest version(s). Technically, it’s possible that an author who is still using 5Z17 or some other earlier version might want to have access to the old extensions, but basically the I7 site is now riddled with digital rot.
Some of the new extensions are in a github repository. Others are on IF star author Emily Short’s website. But the I7 website itself won’t tell you how to find any of them. (Nor does it mention that the contents it does provide are nearly useless.)
Edited to add: The best way to get a functional pile of extensions is to make sure you don’t have any (at least not where Inform can find them) before installing 6L38. Then use the Public Library page of the IDE to download the new ones with a single click. This works pretty well, though in my preliminary testing I find that the compatibility is not complete. [End of edit.]
It’s possible to download an outdated extension and edit it yourself so that it works with the new version of Inform — but instructions on how to do that are not to be found in the I7 documentation. In particular, older extensions sometimes use a type of widget called a procedural rule. Procedural rules were deprecated a couple of years ago, and they’re now no longer supported at all. So how would the author who wants to use a given extension edit it so as to get rid of the procedural rules?
Don’t ask me. I have no clue.
I was able to update my Notepad extension for 6L38 compatibility quite easily. All I had to do was delete the word “indexed” about ten times. Other extensions will require more labyrinthine revision. I’ve also updated Secret Doors by Andrew Owen, a very nice (and old) extension.
The interactive fiction community is all-volunteer. Nobody is getting paid for maintaining code; nor for maintaining a website. As frustrating as the situation is with respect to I7 extensions, there’s nobody to blame. Okay, we could mildly suggest that Graham Nelson really ought to update his own website, but hey — he has a day job. He has already done tons and tons of hard work that we can all take advantage of for free. Would it make sense to kvetch because he’s let the website slide, or would that just be bad manners?
Maybe instead of rewriting my Handbook, I ought to corral the scattered extensions, fix the most useful ones, test them thoroughly, and upload a zip file containing 30 or 35 assorted items. That might make a good project for this month.
Footnote: Keyword Interface by Aaron Reed is one of the nominally compatible bunch (available as part of the Public Library) that doesn’t exactly work. I now have it sort of halfway working, but a couple of features are not active. I’ve sent an email to Aaron. If I wasn’t down with a bad cold this week, I’m not sure I’d bother. Maybe I would.