Fall Comp 2008
Fall Comp 2007
Fall Comp 2006
Fall Comp 2005
Fall Comp 2004
C32 Comp 2004
Older IF News
The IF Archive
The IF Wiki
Author: RagtimeNerd / Gabor de Mooij
Played On: October 12th (25 minutes)
Platform: MechaniQue (Java)
F:1 + T:0 + P:1 + S:0 + W:0 + B:0 = SCORE: 2
This is a snack-sized adventure game written in my own hobby programming language MechaniQue. I will make it available as a web page so you don't have to install anything (see walkthrough for details and URL).
Man oh man. Oh man.
Nerd Quest is written in “MechaniQue,” a programming language invented by the game’s author, which is itself written in Java. I could get it to run on my work laptop, but I didn’t want to play on my work laptop today, so I installed the Java 6 runtime environment from Sun. That worked. I set my DOS-mode window to 9999 lines of scrollback (intending a makeshift cut-and-paste transcript at the end), and plunged forward into the wacky world of Nerd Quest.
First impression: It needs line breaks. I should get a blank line before each command prompt, if nothing else. It’s really hard to read as is.
Second impression: Man oh man oh man this is bad. B-aaaaaaaa-d. The author is evidently a capable Java programmer, but he’s clueless about today’s interactive fiction. I have a hunch that the author remembers text adventures from the 80’s, but mostly played hobby efforts (that was the case for me as well, when I got back into IF authorship a decade ago). So, going strictly on rose-colored memories as to how they worked, the author set forth in writing his own Java-based IF engine, and a game to showcase it. The end result: I feel as though I’ve been operated-on by a surgeon whose only qualifications are the purchase of a scalpel and some VHS recordings of ER and Grey’s Anatomy.
The previous home-brewed game I played in this year’s IFComp suffered from the same failure in ambition. The author has written a custom game engine, but has showcased it with the least interesting game possible. Worse, the game highlights the system’s numerous weaknesses, without proving it has any strengths. In truth, I have no idea what to make of the MechaniQue game engine. Is it capable of SAVE and UNDO, but the author just didn’t use the abilities in this particular game? Does it support a transcript feature? Does it have any kind of world modeling, so that it can understand in-game objects that relate to each other (containers, platforms, etc.)?
My guess is “no” on all accounts, because the parsing in Nerd Quest is entirely context-sensitive. The game tells me I need a key to unlock one door (incidentally, there appears to be no such key in the game), yet it doesn’t even understand the same command issued for a door in a different room. It gives no hint that its parser is doing anything more than keyword matching (and this is easy to recognize -- every one of my own home-brewed text adventures worked the same way), meaning that anything the game doesn’t expect gets the same “not possible” response.
It even lacks the simple niceties of other IF systems. The author wasn’t aware that “x” is a shortcut for “examine,” or even that “examine” should be an alternate for “look at.” Each command prompt is prefaced with the open-ended question “what are you going to do?” as though it’s actually capable of understanding the variety of things I might want to do. As far as I can tell, output is dumped directly to the screen (instead of to an output management routine), making it necessary for the author to format appropriate line breaks as part of the output. Even this he fails to do in sensible ways, since words are sometimes broken between lines, and some lines end far shorter than is required in an 80-column display.
If the author had written Nerd Quest in another IF language -- Hugo, for instance -- it might have the shortcuts and conventions of today’s IF. It wouldn’t, however, be much better as a game. It’s the epitome of 80’s amateur IF, where the author has thought up a simple setting and a couple simple puzzles to go with it, but nothing more. It has a story, but it shows all the forethought of a daydream. Nothing suggests to me that the author didn’t just think up the whole thing while booting up his computer to write it.
You are an IT geek, tasked with server maintenance. You have a new girlfriend, but you can’t make the date unless you can escape the locked server room. Fixing the server and letting your date know you’re running behind (you have a cell phone, after all) isn’t an option. Nevermind that spiking the boss’s coffee and skipping out on work is going to get you fired (or, at the very least, seriously reprimanded) tomorrow. Then again, being locked in an overheated room you’re not supposed to leave gives you a decent case for criminal charges against your manager.
The author has done just the bare minimum (and every time I say that, I think of Mike Judge talking about “pieces of flair” in Office Space) to allow a player to get from the server room, through the offices, to freedom. Almost nothing is described. Everything simply “exists” in the game’s world. For instance, I found a “beamer” in the conference room. “Does he mean to say that a BMW -- the automobile -- is here in the conference room?” I asked myself. “Well, let’s find out,” I replied to myself.
The game has a handful of very simple puzzles, dealing primarily with finding stuff. The only real stretch -- spiking the manager’s coffee -- was solvable without the walkthrough. That particular puzzle completely ignores the obvious solution (involving no additional props), and makes me an expert in something I (as this protagonist) have probably never even done before, but okay.
Even for a home-brewed system, implementation is pretty poor. In addition to the lack of a consistent world model (making command recognition a veritable crap shoot), it isn’t well constructed. If you try to “talk to manager” in the same room as the manager, you’ll actually call him on the phone. Synonyms are lacking, like “door” for “trapdoor.” The “pantry” sure sounds like a kitchen to me. Problems in the text -- like missing punctuation, missing articles, “achive” instead of “achieve”) -- were aplenty. In the conference room, certain commands directed at objects other than the computer keep assuming I mean the computer.
It’s a better game than the first home-brewed effort (a CYOA) that I played for this competition, but I’m scoring it lower. It loses the point for writing (Nerd Quest is as minimal as you can get without resorting to descriptions like “you are a in a room. An item is here.”) It even loses the bonus point for thwarting my efforts to get a transcript. My hope of grabbing the entire scrollback was dashed when the game window exited on its own after my final move. Really, it doesn’t even have a proper ending. I leave the building. That’s all. Presumably, this “Debby” was worth the effort.
So, with the one free point and a point for puzzles that at least give the player something to do, Nerd Quest gets a mere “2” from me. My advice to the author -- if he’s open to advice -- is to play the top games from the past few competitions for eye-opening insight into what’s possible (and expected of IF) these days. Also, read this page at the IFComp website, which gives a simple overview of typical IF interactions.
Also, re-think your parsing system so that its world model is more object-oriented (you’re using Java; presumably you’re familiar with this). As an example, you should never need to code command recognition for every door the player encounters. Give all “door” objects an “openable” attribute, let your parser figure out which object in the game world the player means when he types “door” (i.e., your “door” object will need noun and adjective properties), and then check to see if the object is “openable” or not. If not, say “that isn’t something you can open.” If so, check if it’s currently “opened.” Allow the author to override the default messages and even “handle” requests to “open” (where “this particular door” is the object), and you’re set. That’s the direction I suggest for your MechaniQue game engine.
An alternative is to download the free compiler for any of the existing IF languages. If you want to write interactive fiction -- no matter how much you enjoy the construction and tinkering allowed by writing your own system -- you’ll be much better off. I know this from firsthand experience.