Please welcome James Knapp to the blog. He’s here to talk about the nerdiest of nerdy video games… the text based ones 🙂
Oh, and he has a new book out called Alice in No Man’s Land – with a giveaway! So check out his site for details.
Thanks for joining us for Fun With Nerdy Things.
From the moment I first played Space Invaders, I knew I loved video games.
Back when I was a lad if you wanted to play video games you had to go to an arcade and I went as often as I could, pumping quarters (then later tokens) into machines you’re most likely familiar with like Pac Man, Donkey Kong, Galaga, and Defender, but also a ton of games maybe not so well remembered like Crazy Climber, Jumpman, Wizard of Wor, Gorf, and Qix but while they were fun distractions none of the truly got under my skin. It wasn’t until later, when gaming consoles began to make an appearance alongside the early personal computers, that I found my first true video game love – the text adventure game.
The very first text adventure I played lived on a mainframe at our local college where my friend’s father worked. It was called ‘Colossal Cave Adventure’ (launched by entering the command ‘advent’) and in it you used simple commands like ‘north’, ‘east’, and ‘get sword’ to navigate rooms that were only described in words with no visuals whatsoever:
The goal of the thing was basically to find and collect a series of treasures, and then bring them back to the building where each new game begins. That’s it.
It was amazing. There were magic words, treasures, twisty little mazes, snakes, giants, dwarves, and puzzles…so, so many puzzles. There was no instruction manual – it would dump out a paragraph or so explaining basic syntax if you answered YES to the question in the previous screenshot, but you were pretty much on your own. There was no internet then (certainly not as it exists today anyway) and so there were no walkthroughs, no forums where you could get advice, there was just you trying to figure out how the heck to get past the snake in the Hall of Mists. The deeper into it you got, the better it got. It was amazing.
My friend and I spent hours playing it but while he eventually tired of the thing I never did. Years later when my father brought home a Commodore 64 computer with a 5.25″ floppy drive, I discovered a game called Zork I which was basically a retelling of the original Colossal Caves adventure but with a better parser:
I played it, and was hooked. The game was released by a company called Infocom, and I quickly became a borderline obsessive fan. I played Zork I, Zork II, Zork III, Enchanter, Sorcerer, Spellbreaker, Starcross, Suspended, Planetfall, Stationfall, Cutthroats, Seastalker, Deadline, The Witness, Suspect, A Mind Forever Voyaging, Trinity, Infidel, Ballyhoo, The Hitchhiker’s Guide to the Galaxy, Bureaucracy, The Lurking Horror, Borderzone, Moonmist…heck, I even played through Nord and Bert Couldn’t Make Head or Tail of It. I loved those games. I understand why they aren’t popular these days with games like The Last of Us being released, but back in the Infocom days they competed with games where the player was generally represented by a handful of cobbled together pixels. By just ditching graphics altogether and letting the player use their imagination, they weren’t just as good as the graphical games of the time, to me they were better.
I loved them so much that I eventually sat down in front of a Commodore 64 and attempted to come up with a simple text adventure game like the Infocom games that I had grown to love so much. However, I only got a few rooms into it before I realized on some level that I didn’t really have the tools I needed to make it work the way I wanted it to. Not that it couldn’t necessarily have been done in Basic (maybe it could have), but at the time I didn’t understand the concept of ‘classes’ and ‘objects’ and so everything was just one long spaghetti string of if/then clauses that didn’t take long to become a tangled mess. I saved the final copy to a cassette tape, and shelved it. For those of you too young to know, cassette tapes were once actually used to save computer data. For those of you too young to have ever encountered a cassette tape, they came after LPs but before CDs. If computer technology had advanced slightly faster than it did then who knows, maybe I would have saved my games on an LP.
Much later, after text adventure games more or less went the way of the dodo, I found myself in a job where I did a lot of scripting (mostly in TCL/Tk) to run automated tests against data switches (exciting, I know). It marked my first foray into programming, and so when I learned that there were still people out there writing text adventure games (now given the moniker ‘Interactive Fiction’) using a fan-created toolset similar to what the folks at Infocom had used, my curiosity got the better of me. I followed the links, downloaded the tools and manuals, and got to tinkering.
In a way, the game that resulted was the first computer program I ever wrote. It used a language called ‘Inform’ rather than C++ or Java or something like that, but it did use a computer language that then compiled into a runnable program. I called my game ‘And Ye Shall Find’.
And Ye Shall Find is not a great game – I’ll be honest about that right up front. It’s probably too large, certain things are kind of broken, and all in all it was my first attempt at a real game. I was so excited about the possibilities this new language offered that I spent more time coming up with cool things to interact with than I did worrying about the rest of it (including proofreading – if you’re brave enough to get maybe a quarter of the way through the game, you’ll find a ‘canister’ and a ‘cannister’ literally in the same room together) but man was I having fun.
To give you an example of what I mean there are lots of gadgets in AYSF (teleportation pads, matter transmitters, syringes with drugs, a two-way radio, a personal library terminal, etc) but to start with, in the different living quarters units it made sense to have things like a bedroom with a bed, and a bathroom which of course meant a toilet. Since objects in the game world are only as interactive as you make them, this meant I actually had to come up with a working ‘toilet’ class that I could use as a base to populate all of the game’s bathrooms. Now, this might seem like an inconsequential game object but remember – I was giddy with power. I began to think of all the things a player might try to do with a toilet beyond just the obvious. I figured it had to open, close, and flush but what else? Would people try and put things in it? Flush things down it? Drink from it? I came up with a template for a ‘space-age’ toilet with three buttons, white, blue, and green (which you’ll find throughout the game), and the end result ended up looking like this:
And of course controls for the fancy toilet:
You may notice there is not mention of water in the TOILET class, and that is because water in the game is its own class. During initialization, all of the toilets (and everything else containing water) get filled with an instantiation of the water class, so that you can fill, say, a drinking glass with toilet water if that’s your bag.
And that was just the toilet, something you don’t need to interact with at all in order to complete the game. Other things were more difficult, like the ‘mind-reading gun’. Did I mention the game has a mind-reading gun?
Unlike the toilets, you *do* need to use the mind-reading gun to complete the game. It’s useful for gathering certain information from people (or animals, or aliens) who can’t otherwise speak to you:
I feel like the game is probably way too hard, too, but if you get stuck there’s always the hint system:
Basically I was like a kid in a candy store, who got locked inside after hours. At the end of it I was discovered lying on the floor in a near diabetic coma, sporting a five-o-clock shadow made up of pixie stix dust. I created, debugged, and created until the itch had been at long last scratched. Later I would try and make another, much smaller game called ‘They’re Everywhere’ which consisted of a house, shed, and surrounding woods. The idea was that there would be six additional NPCs who used a very rudimentary intelligence to move around and act every turn that you did. Over the course of the game several timed disasters (all of which were purposely overused tropes) would strike – first a mind-controlling parasite, corrupt Men in Black coming to cover it up, then zombies, then finally an alien invasion. I wanted the game to be different every time (all six NPCs could be transformed by the virus before the MIB ever showed up, or some might actually survive all the way to the invasion to help you) but alas, it all proved beyond the capabilities of the text game engine. I shelved it, and got back to writing novels like a responsible writer (when I wasn’t playing Morrowind).
So that’s my tale of one of my nerdier pursuits over the years – if you actually want to play the thing you can; I dusted off what was the latest version and recompiled it using the latest version of Inform. To run it, you’ll need to also install an interpreter (called Glulxe), which you then launch and use to open the .ulx file (the game file). I’ve included both on my site, and you can find them here:
The .zip file contains the interpreter installer, as well as the game file (aysf.ulx). Since the .zip file in the download contains an .exe (the Glulxe installer) your browser may throw a warning so just be aware. If you’d prefer to download it yourself you can find it at this address:
Even if you aren’t interested in playing AYSF you might find it interesting to download the interpreter and go online to find other (better) IF games that have been written by enthusiasts over the years. If you’re an older feller like me it will take you back and if you were born into a world that already contained this new-fangled internet, you might find a little gem from the past that you enjoy in spite of its low-tech origins.