My notes on how this 1985 beta game was finally released as a "polished" version 32 years later:
~ 1985 ~
It was 32 years ago. A fifteen year old boy living in the snow-covered hills of West Virginia was trying to program his own text adventure. That was me, and I had a few helpers. First was the monthly Commodore 64 magazines such as Ahoy, Compute!, Compute!'s Gazette, and Run. (British magazines never made it to our shores at that time.)
I had also purchased a few books: The C64 Programmer's Reference Guide, Mapping the 64 by Sheldon Leemon (Compute Books), and Compute's First Book of Commodore 64. I think it was this last one that had a chapter on writing text adventures, so off I went in figuring out how to program my own adventure.
My only goal was to see how to make my own version of Infocom's "Zork I: The Great Underground Empire". I started programming the multi-dimensional room arrays and text descriptions of objects and creatures. I became enamored with the notion that I could place objects in rooms and then move them to other rooms. Remember that this was 1985, modern game concepts such as 3D graphics and movie-like rail systems did not exist and much of the adventure of gaming occurred inside your head.
My original game was completed in about a year, and was 114 blocks (Commodore 1541 diskette terminology) long. I did a lot of playtesting and had my brother play it, but it never saw the light of day beyond our house. Obviously there was nothing like the internet then, although some adventurous souls had VIC modems connecting them to BBS services at 300 baud rates. It would have been neat to get feedback on the game and pointers from others.
I put in a lot of "features" for the game, like being able to type "take all" or "drop all", just like the Infocom Zork Interactive Language (ZIL) system. Figuring out those subroutines took a lot of mental effort. And I had a few timesaver commands, like "again" if you were doing something repetitious like fighting the troll. I thought the game was professional and polished.
Although the game was nowhere near that, I am proud of various programming concepts I learned for the game. The title scrolls the cursor to look like an old teletype system (think "Wargames" and the WOPR). I used a fancy "on goto" system for routing the game to various actions based on your verb-object commands. I worked out timers for "lamp dying", "dark room", "troll poisoning", "dragon bored", and "flooded dam" events. I guess the fun of the game is to see the various ways you can die before you figure out the order of which rooms you need to visit first. The game goal was to avoid death and see all the room locations (55 rooms in total).
Looking at the game in 2017, I am amazed at how little originality I had put into the game. I literally wanted to see if I could make Zork I. Why would anyone else want to play a two-word version of a professional game? Plus, I didn't program in any closing touches like an achievement system. Remember that even the Infocom games kept a score list on things you discovered and treasures you found. I guess I just wasn't as creative as I thought at the time. Here I was crudely duplicating something in 1985 that was already behind the times by 1979 (when Jim Anderson, Marc Blank, Bruce Daniels, and Dave Lebling of the MIT Dynamic Modelling Group made Zork I,II, and III).
A memory of playing Infocom adventures with the 1541 disk drive: If you typed something nonsensical ("yell"), the game engine would instantly respond with some sarcastic phrase. But if you typed something that moved the story along, the disk drive would power up, the drive access light would come on, and the game would slowly (and I mean SLOWLY) start looking up the relevant paragraph or two that indicated success. That was a thrilling moment when playing. I know that sounds sad in later years, but these were the pleasures of the early days of gaming.
Why Text Adventures Suck: After making "The Dungeon", I realized I never really liked text adventures, anyway. They were written to be obtuse and to hide information from the player, it was all a trick. Like in Zork II, a big game element was to take a black thread and stick it in a clay brick. I had to learn this from a "hint booklet". This was supposed to create a plastic explosive bomb! Yet the game gave no hint that this is what these two objects were for. I tried smelling and examining the objects in question over and over, and no clues were given. It was a black string, not a fuse. It was a clay brick, not a bomb. And you could not complete the game without pushing these two objects together! It was an impossible condition for victory. But that didn't matter, you were supposed to buy the hint booklet. What a rip-off. I never finished Zork I, II, or III on my own. Sort of put me off the whole concept. But when the Infocom adventures first came out in the early eighties, they were amazing and as close to "talking" to your computer as one could get!
~ 2017 ~
I haven't looked at the Commodore 64's version of BASIC since 1991. Still, I was able to get back into the mood of things relatively easily, using my CCS64 emulator. It's weird how memory works, I was remembering little typing tricks and shortcuts for basic commands (like how you didn't need closing quotes at the end of a line of printed text). It only took me a week of studying a printout of the original game, and figuring out where to insert a few new ideas to make it user-friendly.
How do you make a 32-year old Beta version playable? This may be a record for product develop lag time (and you thought Duke Nuke'Em Forever took a long time to see release).
Here are the things I added to the game to clean it up for general release:
* Taking a page from modern game console "achievement" systems, I simply have a count adding up whether the player got into the rooms with all five treasures. If you quit or are killed off before finding all of them, it tells you how many you found. If you find all five treasures, you get a special message from me personally as a 2017 reward, explaining why I made this game in 1985.
* I removed various insults ("cretin!", "dork!") that were funny to a 15-year old programmer, but are needlessly insulting to the player. I'm happy you are playing, why am I insulting you?
* For speed, I had the compass commands shortened to "s", "se", "n", "d" and so on. Yet the room descriptions say "north" and "southwest", so why can't the player type it out? So I cobbled together a brief set of IF-THEN statements to allow the player to type the full compass directions if they desired. (I suppose I could have added new keywords, and had the game engine gosub the appropriate section, but I don't remember that much about C64 programming!)
* I added a new command that activates one of three random responses when you type "hint", "help", or "?". One of these responses says to type "commands", which simply lists the 33 command word verbs. An obvious feature with such a limited vocabulary, right? Only obvious after 32 years.
* If the player fails to search for the sharp knife before reaching the troll, the resurrected player gets subtle hints to explore the forest area before going into the house again. If you die again against the troll without a knife, the hint becomes obvious.
* Fixed some typos. If you try to go swimming without a raft, the game says you are not "Jaques Cousteau". With the internet, you can find a correct spelling in seconds. Maybe I should have cracked one of his book's back then. (Go read "The Silent World", Cousteau's first and best book.)
* When I programmed my Commodore 64 originally, I had a hardcover dictionary and my mother's Thesaurus handy. There was no spellcheck. In December 2017, I just noticed I had a typo in my 2017 version! Fixed it just in time for Christmas.
~ 1985 game notes ~
* The game was not intended to be a huge challenge, wandering from one end of the dungeon to the other to find needed things. So if you needed a shovel in the cave, it was sitting outside the cave entrance. Same for the cross needed to fight dead demons. (No, I don't know why dead demons are still a threat.)
* The oil painting treasure in the game is dedicated to Alfred Wilhelm the III, who was a friend from Westminster middle school. I hope he is well.
* Just like Zork, you can get silly responses if you type jump, sit, f--k, hello, or shout. (Although I wrote routines for "take all" and "drop all", beware of typing "f--k all".)
* The hardest part of the game development was simply testing what would happen if all commands were used with all objects in all locations. Just took a lot of bug-swatting to work out the details.
* I spent an inordinate amount of time figuring out how you could wind the clockwork canary, break the canary, and otherwise harm it in some way. I don't remember why.
* Wouldn't it be nice if you could talk to the Cyclops and not kill them? Not that kind of game.
* Once the dam is burst (by you pushing the control panel red button more than once), that area is sealed off behind the boulder until you run the game again. There is no game purpose to this or falling off the waterfall. It's just to see what interesting ways there are to end the game.
* I worked out a random result generator for the troll battle. Although I tilted the odds slightly in the player's favor, there is a good chance you will die and not be able to complete the game. At that point, run the game again! I liked that there should be some penalty that is unrecoverable, just like in the Infocom text adventures.
* What is a Grue, anyway?
~ final ruminations ~
* If you are a new programmer, set out to have a clear goal for your game. I had no clear goal and put a lot of work into a game that was simply derivative of other people's work. I never asked "Is this fun? Should I make it an original story?". Some game elements are my own, and those are quite satisfying. So why not be completely original and make it your own? A wholly original concept should be your goal, not just duplicating other people's success.
* There's a reason only a few people succeed in their life goals while the rest of us curse our luck. The winners get up, dust themselves off, and keep trying. That's the only difference, although some luck helps. At middle age, I have the following advice: Never give up. Follow your dreams now. Tomorrow is always too late (Bill Drummond of the KLF).