Search This Blog

Sunday, October 3, 2010

Creating Interactive Fiction With Inform 7

So before I go ahead and start reviewing all of the IF Comp entries, I've decided to review something else! A book! A book called Creating Interactive Fiction With Inform 7, by one mister Aaron Reed.

Warning: The rest of this blog post will be very boring if you are not interested in CREATING INTERACTIVE FICTION WITH INFORM 7. I don't mean the book, I mean the concept. If you're looking for crossword puzzles or amateurish cartoons, stop reading now before you lapse into a coma.

For the rest of us... follow me after the jump!

I actually haven't seen much written about this book yet. Andrew Plotkin gave a nice write up over here, but I'm not exactly sure he qualifies as the demographic this book is geared towards, seeing as how he's already an Inform mega-genius-super-star.

Me, on the other hand. I think I'm actually one of the people this book was most designed for. Technically the book can be picked up by someone who knows nothing about Inform 7, but I think it works best if you've at least already fiddled around with the language, which describes me quite nicely.

Before I continue, I was a little hesitant to order the book to begin with. Every copy of Inform 7 (which you can download for free over here, if you're interested) already comes with a comprehensive manual filled with example after example. Not only that, but Jim Aikin has written an introductory textbook geared towards the programming newcomer (hello!) which is availabe for free as well.

Moreover, there are two forums teeming with people who are bright and willing to stop whatever they're doing to answer any kind of naive or stupid question that pops up when you're working on your own project. Furthermore, many of the most ambitious and emulation worthy games out there have their source code completely available for study.

The question is: with all those resources available why would you plop down thirty bucks for a text book which should, in theory, tell you nothing you couldn't get somewhere else??
Well, I think it depends. For me it was a completely worthwhile investment and I would whole-heartedly recommend the book, but I wonder how helpful it would be to someone with more Inform chops (which describes a lot of the people in this community) and I think people who are just starting out with Inform or writing Interactive Fiction in general would be better served by playing around with the various tools available (Inform, Tads, and Adrift) and seeing if this kind of writing even appeals to them before they make the purchase.

But back to me, this book was perfect for where I am as an Inform writer. Yeah, there was retreading. I know how to create a door, or regions, etc. But there was a ton (I'd say at least half of the book) that either illustrated stuff that was entirely opaque to me or introduce completely new and fascinating concepts.

The book comes with a "tutorial" game, and by tutorial, I mean as you read the book you are prompted to construct the game along with it. Each chapter revolves around general core concepts, and the game is added to thusly. You can play the game here, called "Sand-Dancer". It's an interesting game, very representative of good contemporary IF, if perhaps more sparsely implemented than most. (though so much of that is tedious and would unnecessarily increase the book's length).

A funny thing: when I was waiting for my book to arrive, the author announced that the source code was available on the book's website. Being the delayed-gratification-never-heard-of-it kind of guy I am, I hopped over to the website and dove in to the text.

And here's my problem. I read the source code a full week before I got the book. I tried to study it. But there were big odd parts, or weird sections where I had no idea what the author was doing and why he was doing it. I just thought I was dumb (which might very well be true), but in truth what I needed was a guide and a mentor.

And that's what this book is. As someone who is really intrigued by IF concepts and who has big IF ideas, part of my problem is that as intuitive as Inform is, (and believe me, I spent two months last spring trying to teach myself TADS because they have such a wonderful conversation system already built into the language, but I was still flummoxed and went back to Inform because it IS much easier to figure out for someone with absolutely no programming skills) there are still ways that I manage to get desperately confused. Still. There are parts in the book that I find myself going back and rereading because the concepts still don't come naturally to me. I'm the type of IF programmer who finds a tool (say scenes) and then tries to accomplish EVERYTHING with that one tool.

Despite appearances, Inform is a robust fascinating language, capable of quite a lot. Aaron Reed claims that the book doesn't really touch on many of the advanced Inform 7 concepts (really? Tables are advanced? They're practically the only things about Inform that I understand easily!!), but to these innocent eyes this book opened up an entire world of possibility.

Aaron Reed, despite not having a huge output, is an extremely respected author. His enormous work Blue Lacuna is a titan in the medium, of which I can only think of two works large enough to rival it. (though my favorite piece of his is his first, a charming little piece called Gourmet, which remains by far the funniest IF I've ever played). This guy knows his stuff, but he never assumes too much about the knowledge of his audience, and yet he moves at a brisk and entrancing pace. This is an elegant tightrope from which he never waivers a step.

But again, I think that I represent an ideal audience. More experienced authors may not find the book as enlightening and people just starting out might do better to first fiddle around on their own than jumping into the investment of this book. But for people like me, the Goldilocks authors, this guide was just right.

One more word: Aaron does not spend much time talking about IF theory. There are plenty of fascinating articles and words-on-the-Internet already written on the subject. This book is purely for people wanting to learn Inform 7. So go elsewhere if you're looking for a general IF conversation.

One last word: The only thing that angered me about this book is that it spoke extensively about Emily Short's Conversation extension, despite the fact that this extension is presently unavailable. As a playwright, dialogue is extremely interesting to me and I find that I only like using Eric Eve's conversation extensions with alot of my own tweaking. What I'm saying is: Where's my Conversation extension?? I have no patience! I have a feeling of gross entitlement! I want it NOWWWWWWWWW!!

But all in all, great book.


  1. Thank you for taking the time to write this. Your perspective is quite valuable to someone who is even more of a neophyte with Inform in particular and IF in general. I don't think I'm quite the target audience for this book, but if I decide to get more into it beyond the basic playing I've been doing, I will almost certainly pick it up.

    Thanks again.

  2. This is a very well written review. I'm in the novice category. I haven't played around enough with Inform 7 yet.

    I've read many, many tutorials (and forum posts) and I'm still feeling the need to try it on my own.

    I can see this book in my future, though.

    Again, nice review.

  3. You can fiddle around with Inform 7 all you like, and you can try to make sense of the free documentation; but what I found was that the documentation of mostly incomprehensible, and I was initially frustrated because I couldn't get anything but the most basic things to work. My brother found Aaron's book and sent it to me. All I did was read about 150 pages of Aaron's book, I sat down in from of my computer, and I started coding. Just about everything I coded either compiled and worked the first time, or else I knew immediately what I had to fix to make it work. Aaron's book helped me understand what was actually going on, and that gave me the confidence to actually start using Inform 7. I recommend that anyone interested in getting started authoring IF with Inform 7 just get this book from the very beginning. Trying to figure out Inform 7 on your own is most likely going to lead to nothing but frustration, as I did for me. If you're a beginner, you've got nothing to lose by getting this book.