A Crimson Spring by Robb Sherwin [Comp00]

IFDB page: A Crimson Spring
Final placement: 23rd place (of 53) in the 2000 Interactive Fiction Competition

One thing that can fairly be said about A Crimson Spring is that it is one dark piece of work. It starts out with a funeral, and in the course of its plot will describe twisted psychotics, brutal beatings, murder, and rape, along with a generous helping of menacing, intimidation, and vile ideas. It’s about superheroes, but not your Saturday morning SuperFriends kind of superheroes, nor even your angsty Stan Lee/Chris Claremont kind of superheroes.

No, these are superheroes in more of a Frank Miller vein, tortured vigilantes who stalk through horrific corridors of urban decay, beating the living crap out of evildoers and anybody who looks at them funny. Though Miller is clearly their main predecessor, they’re also a bit reminiscent of the out-of-control metahumans in Mark Waid’s Kingdom Come, with elements of the anger and psychoses that bubble under Alan Moore’s Watchmen.

They even bear a passing resemblance to the characters from Sherwin’s own Chicks Dig Jerks, at least in the way that they tend to investigate crimes by cruising bars looking for trouble. In addition, they’re also likely to have somewhat more disturbing powers, especially the villains, such as AIDS Archer, who shoots disease-tipped arrows at the good guys, and Mucous Man, who suffocates his victims under lots and lots of snot.

As I’ve said in the past, I love superheroes, but this particular subgenre of them is not my favorite. The whole grim-and-gritty trend in superhero comics, which probably reached its peak towards the end of the Reagan years, was always rather unappealing to me. I found its insistence on the world’s rottenness to be just as monotonous and unrealistic as the post-Code, whitewashed Batman and Robin’s world of silly villains and cardboard heroes. Miller’s Daredevil and Punisher, and Claremont/Goodwin’s Wolverine were fine when they were the darker exceptions to the nobler rule of costumed crusaders, but when nearly every superhero suddenly became a clench-jawed desperado struggling against a poisoned culture by any means necessary, the whole thing started to seem more and more silly. [Pssst! Paul! Stop lecturing about comics and get back to the game! (The what? Oh yes, that.)]

Ahem. As I was saying, A Crimson Spring is one dark piece of work. It even displays its text as faded letters on a pitch black background. In addition, even besides the fact that its particular flavor of superherodom is not to my taste, it misses some pretty important opportunities. For instance, although the PC wears a mask and has a code name (Holy Avenger), he doesn’t have any superpowers. What does he have? A lead pipe. He’s surrounded by people who can fly, or are super-strong, or have unbreakable skin, or can morph themselves into other stuff, but his main skills are talking smack and whacking people with a big metal club. Oh, he’s got a perfect immune system, too, which doesn’t seem to me like a great superpower (“I’m Never-Get-Sick Man!”), though I have to admit it does come in handy against guys like AIDS Archer. I found myself wishing that I could play one of the real superheroes instead of this smart-aleck “detective” with the pipe in his hand. Hell, even Batman had a utility belt.

On the other hand, perhaps playing a character I liked more would have made it even more frustrating when I encountered one of the game’s many bugs. The bugs in ACS come in two varieties. One of these is the “huh?” bug, which happens when the game makes a reference to somebody or something you’ve never heard of before, and acts as if you of course know what it’s talking about. For instance, at one point the PC is asked (in reference to a villain), “Have you seen him since the incident on the bridge?” I read this and thought, “incident on the bridge?” The game had described no such incident.

Perhaps things like this were its way of building character by mentioning past “offstage” events (though some of the “huh?” references seemed clearly oriented towards things that were supposed to have happened in the plot, but didn’t, at least not to me), but even if this is the case, the game should throw in a sentence or two explaining the reference. I suspect that this kind of bug emerges when a game is written around a walkthrough and fails to account for the many paths that can be taken through the plot. Granted, this is one of the more difficult challenges in writing IF, but it is a challenge that must be met, or else the story deflates very rapidly.

The other type of bug is of the more traditional variety, the inability to refer to an important object or the nonsensical response to a reasonable command. Both types of bugs appear with depressing regularity in ACS, and they utterly defeat any sense of immersion that the game’s other nifty features strive to create. Among these features were a cool soundtrack of gritty indie rock and hand-drawn illustrations of various scenes and characters. The latter, while not exactly George PĂ©rez, were obviously the product of quite a bit of labor, and managed to give a nice visual sense to the colorful characters. I wish, though, that the time had instead gone into debugging — I would have enjoyed the game lots more had it been bug-free, even without its illustrations. A Crimson Spring puts you behind the mask of a dark superhero on a mission of justice, but in the end, it only defeats itself.

Rating: 6.1

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):

Your logic, although interesting, is flawed.
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:

What are you trying to pour out?
In a perfect world, that might have worked.
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