Getting Back to Basics
Posted by midiguru on August 23, 2010
If I keep harping on this, it’s because I’m happy. I want to share the excitement. Inform 6 is just ever so much nicer to use than Inform 7! I can’t even begin to tell you.
If you just wandered in from the music industry, you will have no idea what I’m talking about. This is about writing interactive fiction.
Inform 6 is, I suppose, old-school. It lacks the depth and complexity of TADS 3, and it lacks the cute veneer of Inform 7′s “natural language” syntax. There’s no integrated development environment, either. On the other hand, it is a full-featured development system for IF. It’s not a bogged-down “for dummies” system like Adrift or AGT.
Last night I found a terrific freeware text editor for Windows called Notpad++. This is an important piece of the puzzle. Notepad++ has a standard multi-tabbed interface (which Inform 7′s IDE doesn’t have, because Inform 7 won’t let you separate your source code into multiple files), plus user-configurable syntax coloring, auto-indent, brace matching, code folding, and bookmarks … and those are just the features I’ve found in my first day of using it.
There’s a raft of 3rd-party extensions for I6 on the IF archive, with which you can do things like build hint menus, parse the names of your in-game objects using adjectives that are separate from the nouns, handle objects like doors and locks more gracefully, and so on. There’s good tutorial material, from Roger Firth and others. To be sure, there are a lot more extensions for I7, but I’m not jealous. The nice thing about I6 is that it’s not difficult to build your own widgets, if you need to.
This afternoon I went through the list of unfixed bugs in the 6.11 library and did some tinkering with parserm.h and verblibm.h. I’d never want to try that sort of thing with the Standard Rules in I7, because the Standard Rules are a lot harder to understand — to say nothing of the template layer, which is the foundation on which the Standard Rules are built.
Once you pop the hood, Inform 7 is for experts only. It’s extremely complex. Inform 6 is a stroll in the park by comparison. And of course, I6 doesn’t limit you in any way as an author, because I7 compiles to I6 code as an intermediate step. So, by definition, Inform 6 can do absolutely anything Inform 7 can do. It’s just as powerful.
So, if all that complexity doesn’t actually gain you an ounce of power, what’s it good for? As far as I can see, it does two things. First, it’s the girders and plumbing for the “natural language” programming paradigm, which a lot of people seem to be attracted to. Second, it allows I7′s syntax (the stuff the author uses while writing) to be based on a concept of rules and rulebooks. Rule-based programming is quite different from more traditional or more mainstream object-oriented and procedural programming.
I happen to like object-oriented and procedural programming. It meshes well with the way I think. And I find the “natural language” paradigm more enigmatic than helpful. The syntax of Inform 6 is simple, consistent, and clear. The syntax of Inform 7 is fuzzy, inconsistent, and somewhat opaque.
Old-school? Though this be madness, yet there’s method in it.