Adventures in Interactive Fiction

2012-02-20

catch that cat tads

It's been almost a year since I last looked into IF authoring systems, and the market has shifted again. A Hugo title became the most talked about game in 2011 -- one that features extensive multimedia and random combat to boot. Yay for Cryptozookeeper! There is also an ever-increasing number of (choice-based) Web games, outnumbering those written for my new favorite platform, TADS 3.

Speaking of that, soon after a new release of TADS came out with Web play support, thus bringing the old powerhouse in line with its main competitor, the news spread like fire that a online service came out enabling people to author Inform 7 stories online. To top it all, mere days later the young Quest system announced official support for a similar feature!

All that rekindled my interest in authoring, so what started as a test drive last year turned into a serious porting effort. Whether a tiny, retro-styled text adventure is a good match for a modern authoring system and the current IF scene remains to be seen. But whatever happens, the porting process taught me invaluable lessons.

On the one hand, a more sophisticated authoring system requires some adaptations. Puzzle solutions that couldn't be implemented with a two-word parser become the default; others must be adapted to the full containment model. Unimplemented nouns become unacceptable and so on.

But! Not everything needs to be changed. The original Catch That Cat relies entirely on nonverbal communication with the NPCs, and that still makes perfect sense for the cat. Using explicitly listed objects to decorate a room, as opposed to flowery prose, is part of the game concept, and that works even better when you can outright mark them as Decoration.

Verbs are more of an issue. Two verbs that any casual IF player will try are TALK TO and USE. Luckily, TADS 3 has the former by default, as for the latter, the default response for non-existing verbs is:

The word "use" is not necessary in this story.

which cuts down on the number of extraneous verbs I need to implement. (That, and TADS 3 has an enormous list of built-in verbs.) On the minus side, those verbs I can't get away without involve more boilerplate than I'm used to. Oh well.

One stumbling block was turning a large, hairy block of if-else instructions into declarative code. Not only it required considerable lateral thinking -- not my strong point -- but it resulted in more code, not less. At least the interaction is more natural now, and hey, that's the kind of thing that makes game development as fun for me as playing games.

Last but not least, I managed with a bit of work to install the latest FrobTads and figure out how to use it, only to realize I will still need the official Windows version to build stand-alone games, as well as for syntax highlighting, until I can find or make my own.

Looks like the adventure is just starting... again.