Trading Punches by Mike Snyder as Sidney Merk [Comp04]

IFDB page: Trading Punches
Final placement: 10th place (of 36) in the 2004 Interactive Fiction Competition

Trading Punches is a lovely piece of work, with a good story and a fine design. It’s also got some flaws, so let me tackle those first, and then I’ll move on to the loveliness. The first problem I had with the game may be more just an idiosyncratic reaction: I found much of its prose rough going. It’s not that the writing was error-laden or terribly awkward — it’s just that I kept finding myself wanting to skim over it, and having to concentrate to actually read it. The problem was most severe in long room descriptions and infodumps, of which the game has many. I’m not sure whether the prose was just too dense for me, or whether it was some question of style, or what. I know that’s an unhelpful reaction, but it was my reaction nonetheless.

One definite problem with the style is that the game goes way overboard on a particular gimmick for making things sound SFnal: word-mating. Thus, the PC wanders around a landscape of “mossgrass” and “elmpines”, watching the “peacrows” and then later drinking some “brandyrum” and “whiskeygin”. Yeesh! A little of this strategy goes a long way, and Trading Punches had way more than a little; it sounded pretty silly in short order. Finally, though the game was obviously tested, a few significant bugs made it into this version. For one thing, certain commands, like “score”, draw no response at all from the game. Even more seriously, there’s a class of locations with one exit that consistently thrusts the player into a formless void from which there is no escape. At first, I thought this effect might be intentional, but further experimentation demonstrated that it’s almost certainly accidental.

So yes, Trading Punches has some problems, but I still ended my play session feeling very happy with it. Why? Well, for starters, I enjoyed the story quite a bit, and aside from the excessive word-mating, the setting felt nicely realized as well. In general, the plot and the game-world felt reminiscent of the work of Orson Scott Card, which I like very much. I don’t know if the author of Trading Punches is familiar with Card, but I wouldn’t be at all surprised to discover that influence on this game. It’s got plenty of Card’s hallmarks: bitter rivalry within a family, affecting the larger world and universe on a grand scale; a gifted protagonist with a strong moral center who has a significant impact by helping (or trying to help) others; and strong familial bonds offsetting the deep familial schisms elsewhere.

The aliens in the game feel original and well-imagined, and lend themselves to symbolic use as well. I also appreciated the design of the game — its central story of sibling rivalry is told through chapters that don’t hammer the point too hard, but still make it quite clear how the enmity grows between the two brothers. By skipping forward in time to the most important incidents in their relationship, the game develops the character of both the PC and his brother quite satisfyingly. Situating the chapters within a frame story works very well to knit the disparate pieces, and the game does an excellent job of weaving revelations about the frame story into the content of the chapters and vice versa. Unfortunately, two hours wasn’t quite enough time for me to get through it, partly because of my denseness around one of the puzzles. However, a glance at the walkthrough shows that I was most of the way through, and I felt regret at having to stop the game and write this review, which is clear evidence that the story had me hooked.

Even aside from the story and the design (and its bugs and prose tics notwithstanding), Trading Punches boasts an impressive amount of craft. Especially noteworthy are the game’s cool multimedia components. Each chapter (and each return to the frame story) begins with a full-screen graphic. These graphics are quite lovely, and do an excellent job of establishing the landscape. I found this especially helpful as I struggled with the dense prose’s attempts at scene-setting. The illustrations look as though they were created in some kind of graphics rendering software, and consequently have a bit of a Myst-like feel to them, which is a good thing.

Also effective is the game’s music, a synthesized soundtrack which loops constantly in the background. The music is generally quite effective at enhancing the mood of a particular scene, though some of the musical pieces don’t have enough melody or complexity to withstand the constant looping. No matter how good an eight-bar tune is, it’s bound to get a little grating on the hundredth repetition. The game itself is quite solid, too — it’s clear that a whole lot of effort went into this project. Aside from the few bugs I mentioned in the first paragraph, I found the code pleasantly error-free, and the same goes for the writing. The puzzles worked well for me, and the game did an excellent job of providing cues to help me know what I ought to try next. One item in particular was not only quite well-implemented, but also provided an excellent emotional through-line for the story.

Trading Punches still has a few details to clean up, and the word-mating has to go, but I’d recommend it without hesitation, especially to fans of dramatic fantasy games like Worlds Apart.

Rating: 9.2

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