Thu
17
Dec 2009
My today Google-Wikipedia "research" was about interactive fiction. I've only heard about MUD-s before. MUD (Multi-User Dungeon) is a text-based, multiplayer game genre that precede current MMORPG games. Interactive fiction are also text-based games where player reads descriptions of things (like "You are in ... now. You can see ... here.") and types console commands (like "go west"), but they are single-player and more story-oriented rather than being about the mechanics of combat and magic.
The history of interactive fiction is older than me, as it started in 70's long before personal computers era. There have been some commercial games of this genre released in the past. Today interactive fiction is still alive thanks to the Internet community. (BTW: I didn't know before that the famous metasyntactic variable "xyzzy" originates from math, where it helps to remember the way of calculating cross product of 3D vectors :)
From more technical perspective, all sources I've read agree that it makes no sense to start coding a new platform for interactive fiction, as there already are some great ones out there. For example, there is this Z-machine standard (see The Z-Machine Standards Document) that is still in use despite being very old and has interpreter implementations for numerous platforms. One could think that it's kind of a description language like XML, but it's actually a virtual machine with opcodes etc.
It's also worth seeing some of the tools interactive fiction creators use. I've read a bit about Inform 7 - a free, multiplatform IDE with its own language to develop IF games (and also debugging functionality). Rules of this system remind me of Prolog at first glance. There is much built-in mechanics already available, like visiting rooms or taking items. But at the same time it's very flexible, so e.g. there is an extension available coded in this language that introduces metric units. The syntax of this language is totally weird as it looks like... English language. Just see manuals. Programming here is like writing a book (much like the Shakespeare Programming Language, but this one is not esoteric). Sample code: "The Gazebo is a room. The wood-slatted crate is in the Gazebo. The crate is a container.". Parsing player commands is also very sophisticated to resemble using natural language. Everything here is like reading or writing a novel - even compiler errors :)
I've always dreamed about writing a platform for text-based games that would be so general, flexible, powerful and would model the world so comprehensively. Now as it turned out that systems like this already exist and evolve for decades, there is not much to do here for a programmer like me. Especially as I don't feel like writing a novel, even interactive one. But anyway it's nice to know what interactive fiction is.
Comments | #history #web #games Share