Posted 26 February 2000 to rec.games.int-fiction
This review was written under the aegis of the IF Review Conspiracy. Marnie Parker, Duncan Stevens, and I may or may not have anything to do with this Conspiracy. Shh. If you'd like to learn more about the Conspiracy, please visit http://www.textfire.com/conspiracy/.
TITLE: Inform School
AUTHOR: Bill Shlaer
PARSER: Inform standard, with additions
SUPPORTS: Z-code interpreters, though it makes heavy demands on those interpreters
AVAILABILITY: Freeware (GMD)
VERSION: Release 1
As you might guess from its name, Inform School, by Bill Shlaer, is an attempt to teach Inform from within the confines of an Inform game. This is not exactly new ground. Andrew Plotkin's Lists and Lists was a Scheme compiler and set of exercises which masqueraded as a game in the 1996 competition. Bill's earlier game, Informatory, a 1998 competition entry, let you look at some of the game's code through the use of a codex helmet. These examples notwithstanding, Inform School has set itself a much harder task. It is not only trying to teach you a language but also how to use that language to write a text adventure. In doing so, its reach has exceeded its grasp. Inform School is an amazing example of what can be done with the z-machine, but the inherent limits of the z-machine and some poor pedagogical choices limit Inform School's effectiveness as an aid to learning Inform.
I'm not a newcomer to Inform. Though I'm nowhere near as proficient with Inform as I am with TADS, as long as I have my trusty printout of the Designer's Manual on hand I can get by. I've even written some things in Inform. (And before you ask, no, you can't see them. I've let enough bad games of mine escape the confines of my hard drive.) Since I do know Inform to a certain degree, I'm not sure that I'm the intended audience for Inform School. Actually, I'm not sure what the intended audience for Inform School is.
You begin the game a new student at the Inform School. It's the summer term, and no teachers are around. When you arrive, you must find your task list and equipment, then make your way to the lab where you'll be doing your experimenting. You are to work your way through the assigned tasks, then take the final exam. The setting is a nice touch, and plays to the strengths of a text adventure: simulation and the creation of places.
You're not alone at the school. Igor the lab assistant is there to give you a demonstration, if you so desire. I found his demonstration less than useful, as he rushed through so many concepts that I couldn't keep track. I felt like I was being shoved through the demo. I gave up trying to follow Igor's demonstration and dived into the task list.
Well, I say "dived." More accurately, I ran headlong into a cliff-like learning curve. I stepped back and took a closer look at the in-game documentation. The game recommends that you keep two copies of the game running, so that you can use one to call up sections of the documentation while performing your tasks in the other. Let me echo that sentiment. Without having a second copy of the game on hand, I was unable to remember how to use Inform School's interface.
That interface is a mixed bag. I soon discovered that Bill had added a small text editor to Inform School, allowing you to type all of your objects straight into the game. A z-machine text editor! On the one hand, that's a nifty keen hack. On the other hand, its features are limited. Programmers who are used to text editors will find it confining, and I think newcomers who have never programmed before will be overwhelmed.
Really, the entire interface is like that. You type in objects, add their descriptions and attributes, and even add code to the object. You can have react_befores. You can create new verbs. The game uses a scaled-down version of Inform, and appears to compile objects on the fly. It's a tour de force of z-machine trickery. However, you cannot edit the code of your objects all in one go. You must select an object, then select what part of the object's code you'd like to edit. The interface for doing so is about as simple as is possible, which is still far too complex for my liking. All of this adds up to a pretty snug straitjacket. I felt as if I was learning Inform while wearing an eyepatch and only being allowed to type with one pinky. I think other experienced programmers will feel similarly constrained by the interface. However, as constrained as it is, it's too complex for people who haven't programmed before. Due to time constraints I put Inform School aside for a week; when I came back to it, I had completely forgotten how to use its special interface. How is this better than a text editor or an integrated development environment?
The task list also suffers from a lack of focus. Is it written for people who have programmed before, but don't know Inform? Is it for those who have never programmed at all? At several points the in-game manual assumes you know something about programming. At other times, it spells things out in minute detail.
There are 27 tasks which build upon one another. Theoretically you are to read a task, perform it, then check your answer in the manual. In practice I didn't do this. I would read a task, have absolutely no idea how to perform it, and have to turn to the manual to find out how. Better I had been introduced to concepts, given the chance to practice those concepts, and only then asked to demonstrate my mastery of them. When later tasks required me to use concepts from earlier tasks, I had to turn back to the manual to remember how the concepts worked. Any pedagogical benefit from having me create my own objects was lost because I was copying from the manual.
There are classrooms you can visit to see finished examples of the tasks. You can look at the code of the finished objects if you get stuck mid-task. I found this to be more of a hinderance than a help, due to name-space collisions. Remember how I mentioned that you had to select objects before you could edit them? The manual uses the same object names as the objects in the classrooms. If you're following the manual, you're likely to follow the manual's naming conventions when creating your objects. (In fact, you almost need to, as later tasks involve earlier objects, and the manual will refer to the objects by the names the manual gave them.) Once you've done that, you'll have trouble selecting objects you've created, as the game won't know if you're refering to your new object or the one in the classroom. The game even tells you as much: "If you follow the tasks too slavishly, the objects you create will have the same names as similar objects in the classrooms. This will confuse the debugging verbs and make them less useful." Of course, the game doesn't mention this until the middle of task 9, long after this advice is needed.
All of this sounds fairly dire, which is unfair to Inform School. There are a number of good points to the game. The manual becomes less and less explicit as the tasks progress, forcing you to fill in the blanks with your own knowledge. Once you do get used to the interface, you can make rapid progress. And the game is often clever. The manual, in explaining how darkness is handled in rooms, says, "By default, places in Inform are dark. This is the result of evolution; our ancestors hunted treasure in dark caves." Or, when you destroy an object: "Almost silently, a destructor drops from nowhere and binds to the doomed object. Properties are ripped off one by one accompanied by a faint squealing. At last there is a soft pop, and the object implodes leaving only an acrid cloud of bits that gradually disperses. The destructor vanishes."
I have a confession, one which I tell you in the strictest of confidences: I didn't finish the final exam. I flunked Inform School.
(Don't make too much fun of me, or I will by damn write TADS School and make the final so difficult that Mike Roberts himself would have trouble passing it.)
Now, I'm egotistical enough to think that I could have finished the final, given enough time and energy, but I just couldn't make myself do it. When you start it, you are moved to "(somewhere)". There's no exit, but you must leave. You know this because every turn you are told, "You have to get out of here." But to where? And why? Once you've solved that problem, you're moved to a room with a map case you can't refer to. Once you figure that out, you must figure out that you're to open the map case and then plan how to make that possible. It's a series of guess-what-the-author-wants-you-to-do exercises, and I found it easy to make the examination train jump the rails, leaving me unable to continue. The idea behind the final exam is okay, but the implementation leaves a lot to be desired.
Whether you will profit from Inform School depends on what you want from it. As a pure game, its entertainment potential is limited, as is often the case with educational games. As an example of technical wizardry, Inform School is dazzling -- it should have garnered at least a nomination for the 1999 "Best Use of Medium" XYZZY Award. As a teaching tool for learning Inform, I fear its usefulness is sharply limited.
This article copyright © 2000, Stephen Granade