Marooned by Bruce Davis [Comp00]

IFDB page: Marooned
Final placement: 45th place (of 53) in the 2000 Interactive Fiction Competition

Marooned was the first ADRIFT game I’ve ever played. Anytime I review a game whose system is new to me, that review can’t help but be partly about the system as well as the game itself, since it’s often difficult to disentangle who is responsible for what in the overall playing experience. Unfortunately, what with all the growling on the newsgroups from ADRIFT advocates who feel their system isn’t getting a fair shake, it’s a little tough to advance an opinion on it — anything less than unadulterated praise runs the risk of getting me labeled a “snob” or an “elitist” or something. Nonetheless, I shall brave the waters, and try to discuss the entire experience of playing Marooned, starting with the things for which I suspect ADRIFT was responsible, then moving on to those things that I’m guessing were done by the game’s author. In the interest of diverting the WOAA (Wrath of ADRIFT Advocates), I’ll even begin with the things I liked about the interface.

The ADRIFT runtime has a clean environment with two windows: one for the command line and one for the game text. The overall presentation was attractive and aesthetic, though the text window used a few too many newlines for my taste. One particularly interesting feature is that clicking on any word in the text window will insert that word into the command line. I’m too much of a typist to be messing with the mouse in that fashion, but I can see where it could be a really cool feature, especially after one got used to it. (I was so unused to it at first, unaware of it in fact, that when I clicked back onto the interpreter window after doing something in another window, I accidentally clicked on a command word and couldn’t figure out why the game seemed to be executing commands without my typing them!) A similar convenience is the “auto-complete” option, which allows you to just type a couple of letters from any dictionary word and attempts to guess what you mean, Microsoft-style. This option was a little wonky at times — for example, you find a “dented gas can” at one point which the game will auto-complete if you start typing “gas”, but not if you start with “dented” or “can”. Still, quirkiness aside, this was a great time saver, because it also shows you right away which nouns in the descriptions haven’t been implemented.

Some other cool options are available from the menu bar, most notably an excellent automapper, which operates in a separate window but creates a lovely map of the game’s landscape. This is an innovation for which many people have been clamoring, and it was especially welcome in this game, where many of the locations have the exact same name. There’s also a “control panel” which can execute common commands for you, even a “goto” command which gives you a listbox of discovered locations and sends you there via the best path. Finally, I must mention that I appreciated the inclusion of “Verbose” as a menu option, something I can just leave turned on for all games rather than having to explicitly request it each time.

OK, so there are a substantial number of things I liked about the ADRIFT interface. Sadly, there are also a number of things I really hated. First and foremost is the problem of the parser. ADRIFT’s parser violates all three of the current tenets in Paul’s Parser Manifesto (which I made up in response to another nonstandard parser, the one in last year’s homebrew game Lunatix.) Those tenets are as follows:

  1. Parsers must not pretend to understand more than they do.
  2. Parsers must not give smarmy, unhelpful error messages.
  3. Parsers must not ask questions without being prepared to receive an answer.

Well, I’m not actually sure it breaks #3 — I got too angry to try it. The exchange went something like this (I’ve inserted prompts before my commands for clarity’s sake — ADRIFT doesn’t put command prompts in its text):

> look in it
(the first aid kit)
This is a standard issue first aid kit. The first aid kit is open.
Inside the first aid kit is a small bottle.

> x bottle
This is a small bottle for pills. The bottle is closed.

> open bottle
You open the small bottle.

> look in it
(the small bottle)
This is a small bottle for pills. The bottle is open.

> x bottle
This is a small bottle for pills. The bottle is open.

> look in bottle
This is a small bottle for pills. The bottle is open.

> empty bottle
I don't understand what you want me to do with the small bottle.

> get all from bottle
You are not holding a small bottle.

> get it
(the small bottle)
You are not holding a first aid kit.

> get kit
Take what?

> ^%$# you! [Expletive removed to protect the easily offended]
I really don't think there's any need for language like that!

Frustrating exchanges like this were not uncommon, but even more infuriating were ADRIFT’s violations of tenet #2. Probably the worst offender was this one:

>undo
I can't undo your blundering.

Let me tell you an easy way to get me angry fast: give me an insulting message in response to a reasonable command. This one broke all previous speed records. Finally, there were the violations of tenet #1, most obvious when you type “x [anything the parser doesn’t understand]” — instead of telling you it didn’t understand you, it just says “Nothing special.” I hope that Santa will still bring me presents this year despite the fact that I couldn’t resist typing “x adrift.”

All these parser problems more than blew away any pleasure I derived from ADRIFT’s other innovations, because the parser is more important than the nifty features. Let me say that one more time, and listen up, system authors: THE PARSER IS MORE IMPORTANT THAN THE NIFTY FEATURES. Further crippling the ADRIFT experience was the sublimely aggravating policy that there is no scripting option as such — only a menu command that will record a transcript of the game thus far, a command that is naturally unavailable after a game ends! Who uses scripting, you ask? I do — I use it to write reviews.

Because I didn’t find my way around this misfeature until I’d been playing Marooned for an hour or so, it’s difficult for me to assess my experience with much accuracy, except to say this: Marooned is not the game I’d use to champion ADRIFT. To the problems in ADRIFT’s parser, this game adds its own irritations. For one thing, there’s a starvation puzzle. Game designers, please quit it with the starvation puzzles. Like mazes, they were interesting long ago, but no longer. They’re not clever, they’re not challenging, and they’re not fun — they just suck. This one was especially offensive because none of the food you find actually staves off starvation, and a couple of perfectly legitimate food items aren’t edible, according to the game.

Compounding this problem is the fact that there are tons of red herrings in the game, which means that you waste your time trying to figure out how to use something that’s actually useless, and consequently you keep dying over, and over, and over again. Dull, dull, dull, and ultimately rage-inducing. The premise of the game was fine, but it’s hampered by severe design problems, as well as the more fundamental weaknesses of the ADRIFT interface. All in all, I’d rather play Guess the Verb again.

Rating: 3.6

Lunatix: The Insanity Circle by Mike Snyder [Comp99]

IFDB page: Lunatix – The Insanity Circle
Final placement: 12th place (of 37) in the 1999 Interactive Fiction Competition

Early on in Lunatix, I typed “X TUKE.” The game responded, “It looks just like you might have expected.” Of course, there’s no “tuke” in the game — I meant to type “tile” but my right hand had strayed a bit from its accustomed spot on the keyboard. I’m glad it happened, though, because the incident taught me something important about Lunatix: its parser pretends to understand more than it does. In my book, this is a big no-no. In fact, if I ever write a Parser Manifesto, my first principle will be, “Parsers must not pretend to understand more than they do.” Even a fairly innocuous violation of this rule, Inform’s famous “You can’t see any such thing,” has caused no end of debate on raif. When a game pretends to understand more than it does, you can never really be sure when you’re encountering a bug, because bugginess has been built directly into the interface.

What’s more, it’s a cop-out. Instead of doing the often tedious work of creating descriptions for the available objects, the game elides the absence of these descriptions by acting like it recognizes them when it doesn’t. As a player, I find this pallid deception infuriating. Unfortunately, Lunatix‘s parser does something even more infuriating, which has led to the formation of the second principle in my hypothetical Parser Manifesto: “Parsers must not give smarmy, unhelpful error messages.” My encounter with Lunatix was filled with exchanges like this (the words after the ellipses are my input):

...FILL WATER GUN
Your logic, although interesting, is flawed.
...TURN ON FAUCET
That's a pretty crazy idea, but it didn't work.

These kinds of responses make me want to scream obscenities at the game, and sometimes I did, along with feeble protests like “No it isn’t! Wanting to fill a water gun with water is not flawed logic! Turning on a faucet isn’t a crazy idea!” Then I remembered that talking to yourself is a sign of impending mental collapse, so I stopped. But my blood pressure stayed high.

The problem with this kind of message is that the game is willfully occluding its own shortcomings at the player’s expense. Error messages that insult the player, when in fact it is the parser that has failed, piss me off. I’d so much rather see the game say “I don’t know that verb” or “You can’t fill that” — that way I know exactly what hasn’t been implemented, and that knowledge will be useful to me throughout the game. Instead, Lunatix sneers at me and acts like its flaws are my fault.

Which brings me to the third principle of my Parser Manifesto: “Parsers must not ask questions without being prepared to receive an answer.” I had lots of exchanges with the game that went like this:

...POUR CPU
What are you trying to pour out?
...CUP
In a perfect world, that might have worked.
...POUR CUP
You empty the cup's contents onto the floor.

OK, so I made a typo in my first command, and the game asked me a disambiguating question. Fair enough. But wait! Further evidence reveals that the question only appeared to be for disambiguation. Actually, the parser wasn’t asking me a question at all, but giving me a message along the lines of “I only understood you as far as wanting to pour.” By phrasing that message as a question, Lunatix tricks me into thinking it is following the standard set by every other major parser: ask the player a question and process the answer. Instead, it’s only prepared to follow through with the first half of that standard, and gives me a snippy error message in the bargain. Grrr.

These kinds of problems have been more or less eliminated in the default library parsers used by most major IF tools, but Lunatix doesn’t use one of those parsers. Instead, it is a “homebrewed” creation written in (from what I can glean from the readme) QBasic, and presenting a radically different interface than most IF games do. The game splits the screen into four windows: the top half of the screen is split vertically between a square graphics window (displaying a picture of the current room) and a square text window, which always displays the textual description of the current room. Taking up most of the bottom half of the screen is a rectangular text window, which displays the game’s responses to the player’s input. Below that, a frame around a one line text field, is a window for the player’s input. It’s a bit reminiscent of the Legend interface, except instead of a compass rose and clickable command menus, there’s just a room description next to the graphic.

The graphics themselves are grainy and pixellated (or at least, they were on the two monitors I used to play the game), but still manage to be appropriately atmospheric at times, and even rather attractive once in a while. More importantly, they add significant content to the game — there are some objects that would be difficult to envision when described in text, but the presence of the graphic clarifies the setting a great deal. The window with the textual room description was nice, too, as it allowed systematic examination of the first-level nouns without having to periodically “LOOK” to remember what those nouns are. Of course, the game doesn’t actually implement most of these nouns, but that’s not the window’s fault.

The only difficulty I had with this window is that it didn’t always automatically update when something drastic had changed about the room, unless I explicitly typed “L” again. Thus, after solving a puzzle I might see a picture of a normal hallway, while the description alongside it raved about the giant squid blocking my path. In addition, lots of keen features were implemented in the interface, like command recall with the up-arrow, splash screens at the beginning and end of the game, a weirdly pulsating cursor, and nifty sound effects. So I can say with certainty that Lunatix is the most technically competent homebrewed game in the competition, perhaps even the most technically competent homebrewed game in the history of the competition. Unfortunately, all the snazzy windowing and gee-whiz effects in the world don’t really make up for its substandard parser.

The other part of the game’s core, its story, is OK. It’s one of those IF scenarios whose premise rationalizes why it is full of patently ridiculous things. In this case, you’re the unscrupulous director of an insane asylum and you’ve been given a drug which replicates insanity. This is a cozy explanation for why nothing you see really makes any sense, and seems to be just a setup for lots of different code and one-use-object puzzles. These puzzles are mostly OK, too. They’re more or less logical (within the confines of the completely nonsensical story) and, with one or two exceptions, pitched at the right level of difficulty. There is one real howler towards the end which makes almost no sense but will be deeply appreciated by fans of The Penguin on the old Adam West Batman show.

So in other words, the story and puzzles aren’t great, but they aren’t terrible either. Unfortunately, the combination of fair-to-middling plot with really-irritating parser makes the game less fun to play than it should be. See, (he said, mounting his soapbox) an IF game is a fusion of parser and story. The beauty of the modern IF languages is that they have freed designers from most of the hassle of worrying about the parser, allowing them to focus the bulk of their creative energy on the story. When a game eschews these time-tested solutions, it doesn’t just double its work, but increases it exponentially. Lunatix, strong as it is, isn’t quite up to the task.

Rating: 7.1