Prologue: This thing may well bore you to pieces. If so, just skim it. Most of what's here was for my own benefit during development. The House of The Stalker By Jason Clayton White Back in the mid-80s when text adventures, now called Interactive Fiction by its cult following, were the most popular kind of game out there, that would have placed me(the programmer/writer) at about eight years old. I had Zork and Wizard and the Princess, but I was young then, and I was looking for the coolest graphics and sound my little 'puter(a C-64 then) could concoct. I didn't really like text-adventures. I didn't pay much attention to those games. I thought they were all roaming through dungeons, looking for treasure, killing an occasional imp/gnome/troll/etc type nasty, and so on. Boring. So I was busy playing arcade video games. A few years later, I would have been about fourteen. I had an Amiga, but I couldn't bring myself to sell my 128 and it's software(I still haven't to this day. It will die in my posession.). I had by then gotten very heavy into writing stories. Still, though, text adventures didn't appeal to me. Playing them, or writing them. After all, in it's time, the Amiga had the best graphics and sound available on a PC. One day, though, I walked into a computer store to explore. I don't know where they got them from or why, but they had an entire shelf full of old Infocom games. Hundreds of copies of about ten different games. All in their original shrinkwrap, and the versions WITH the little goodies included. If I had known then what I know now, I would have raided that gold-mine. But not really into them at the time, I bought Ballyhoo, and the Science-Fiction Classics pack, which consisted of Hitchhikers, Planetfall, and A Mind Forever Voyaging. The only real reason, honestly, that I decided to get the package was the fact that AMFV used the native 128 mode. That would be the ONLY commercial game I had that used 128 native. And the price? Get this. $3.99 for ALL three. I had already played part of Hitchhikers, so no surprises there. Planetfall didn't turn me on that much, but then I booted up AMFV. As I was waiting for it to load(Remember loading Infocom games on the 64? Picture it taking twice as long since it has 128K to fill. Scary.), I found myself reading the introductory text. When I had finished reading, the game had started. I turned out the lights, and sat down at the computer with my companion of munchies for what I knew already was going to be an all night game-run after what I had read in that text. After that, I went around looking for text-adventures all-over, and found I couldn't find any. All the rest of the games at the computer store I got the first few from were for the Apple II, 8-bit Atari and so on. Again, if I had known then what I know now I STILL would have raided the place, incompatible or not. I should have expected it. Text adventures were dead. I knew it. But at the time of the genre's death I was far from mourning it. When I was maybe sixteen was when games started going COMPLETELY to hell. This was maybe 1993, when CD-ROMs were getting cheap and readily-available. And we all know what that did. Great graphics, breathtaking animation, booming sound, and completely mindless games. Even Sierra, who I will confess to even having LIKED, has since gone awry. Ever play Phantasmagoria? Don't bother. Go rent a video. It's pretty much as interactive. Even Shareware games were measured in how good they looked, nobody seeming to care how they played. In my hunt for the good games, I went to the Internet. And I found, gasp, a text adventure. A text adventure dated, gasp, '92. Wow. You mean to tell me there are actually people still interested in those text-adventures? Well, anyway, I got it, played it(wasn't too overwhelmed with it's workmanship), and found it was made with a shareware program called AGT. Being a programmer and a writer myself, I right away got this programming system, and thought it was kind of neat. I couldn't make Infocom games, but, hey, Infocom probably used this awesome development environment that I'd NEVER be able to get ahold of. The game I had downloaded pissed me off. I don't remember the name, but it was a dungeon/treasure game. How original. Sheesh. But I started learning AGT. And to teach myself, I started to program this game called The House of the Stalker. Conceived purely as a simple game idea to help me learn AGT, I got the idea for the first puzzle(exiting the attic), and found that the solution I wanted(The same solution that I have in this version) wouldn't work right with everything I did. I could keep opening the door over and over again, and never did figure out how to fix that. So I put it away and gave up for about two years, until 1995, making me my present eighteen. Out of boredom, I went to go see if I could find a newer version of AGT, as mine was dated from about 1988. Evil. Yeah, I found one. Master's edition. But, alas, all it did was add a valiant attempt at object- orientation, and, sigh, multimedia capabilities. Christ, that's what I was trying to AVOID with these text adventures in the first place. He who can't draw can't make arcade game. But on my AGT search, I found a web page. A web page by Graham Nelson. Need I say more? Anyhow, with the new Inform I had found, I set off to write The House of the Stalker again, written for the same reason as before - to learn that language. This time, the attic door puzzle was a snap. It took about five minutes. I knew I had found something. Something I could use. And now all my CD-ROM seems to do is play music CDs. My rules for greek naming ------------------------- Pre-Alpha: A test version released before the game was even playable to the end. It is to make a few immediate needed bug-fixes. There are few of these versions, and they get little(!) circulation. Alpha: Not much more circulation, but the game is playable to the end. Beta: At this point, I make a public request for beta-testers to everyone on the Net BBS(A local WI system), as the game is, at this point, ready for it. (I hope) Gamma: It is publically posted as a file attach to the Net BBS - they don't even need to ask me for it anymore. And, more importantly, it is posted to the Internet at this point, as I have a mailing address for replies to be sent to. Release: (A new greek letter of some sort, of course) The 'done' version of the game. As good programmers know, a program is never done. And as good writers know, a story is never truly done either. So a poor interactive fiction game is never going to even get close. This is a now a game, though, that could be presented as a final version. But, alas, bug reports aren't going to stop for awhile, if ever, so the releases get numbered and as the fixes increase, a new release with fixes is sent to the usual distro. sites(usually The Net BBS and the Internet, not to be confused with each other. (are we confused yet?)) Final: As I said, no game is ever done, but this will be the last version released. It doesn't mean I think it's done. It means I'm not going to screw around with it anymore. So I retract all requests for bug-tests. I only do this if people seem to lose interest, and no more bug reports get sent, or the bugs that are reported are so obscure they aren't worth fixing, or, more probably, I have another project to work on. Or...maybe...more than one project to work on. But I don't do that. Really...I...don't... README for Pre-Alpha 0.1 and Pre-Alpha 0.2 Hi. This is the Pre-Alpha version of The House of the Stalker. For those of you who tested the other version, you may notice that there is no more in the game than the old version. There is, in fact, less. The reason for this one is that I switched programming languages. I'm using INFORM now, and it is SO many worlds better than AGT. ************** README for Pre-Alpha 0.3 Wow, this game is progressing FAST. There are now 24 complete steps needed to reach the current end, there are two working daemons(timers). - Here are the stats the compiler gave me, just for your information: Input 6307 lines (17066 statements, 215422 chars) from 4 files Version 5 (Advanced) story file 39 objects (maximum 511) 373 dictionary entries (maximum 1300) 28 attributes (maximum 48) 28 properties (maximum 62) 23 adjectives (maximum 240) 104 verbs (maximum 140) 122 actions (maximum 150) 0 abbreviations (maximum 64) 135 globals (maximum 240) 1537 variable space (maximum 4000) 3334 symbols (maximum 6400) 275 routines (maximum 500) 0 classes (maximum 32) 8 fake actions (unlimited) 22577 characters of text (compressed to 17484 bytes, rate 0.774) Output story file is 50K long (maximum 256K) Essential size 50812 bytes: 211332 remaining Completed in 10 seconds. Now, I didn't make ALL of those entities - some of them were included with the compiler's library, but it's still growing to be a pretty large game considering the short amount of time spent on it. ************** README for Alpha 0.4 It's not a Pre-Alpha anymore, because the game can now actually be played to completion. I'm sure there are a plethora of bugs - especially on the last scene, but that's what the play-testers are for. :) - Here are the stats for this release: Input 6735 lines (17831 statements, 229171 chars) from 4 files Version 5 (Advanced) story file 56 objects (maximum 511) 416 dictionary entries (maximum 1300) 28 attributes (maximum 48) 28 properties (maximum 62) 23 adjectives (maximum 240) 110 verbs (maximum 140) built in) 127 actions (maximum 150) 0 abbreviations (maximum 64) 137 globals (maximum 240) 1537 variable space (maximum 4000) 3460 symbols (maximum 6400) 303 routines (maximum 500) 0 classes (maximum 32) 8 fake actions (unlimited) 29890 characters of text (compressed to 22878 bytes, rate 0.765) Output story file is 57K long (maximum 256K) Essential size 58084 bytes: 204060 remaining - Enjoy, and send me feedback. ************** README for Alpha 0.45 This is just a menial little bug-fix, and it is barely worth mentioning. - EXCEPT: I have a new distribution method now. This format, called the ZIP format, is machine independent. So the .Z5 file can be run on any computer, as long as there is a ZIP interpreter made for that computer. (And if not, you can always get ambitious enough to d/l the source and port it yourself). Well, the archive .ZIP(Geez, ZIP the language and .ZIP the compression format are 100% different things. Ack.) contained this README, the .Z5 file, and the IBM-PC JZIP interpreter, because I THOUGHT the majority of my play testers would be using PCs. Well, that was foolish. The first request was for a Macintosh interpreter. It exists. I got it. I sent it to him. But all I did was send the .ZIP file that I sent to everyone else, and a .CPT file for the Mac interpreter as an addendum. Then I got a request for Amiga. Did the same thing. When I got a request for a Linux kernel, I decided to change how I worked this: 1) The .Z5 file and this README are by themselves, in .LHA(for maximum portability). 2) The .LHA by itself does nothing, so when a person requests to be a tester, they have to tell what platform they are using. 3) The interpreter for whatever computer they specify(so long as it exists, and it probably does. I mean, hell, there's an interpreter for the Acorn Archimedes.) is sent separately. (This only applies to local area testers, who probably have no idea what Inform even is.) - No statistics this time, because they're identical. ************** README for Beta 0.5 Welcome to the local test version of the game. This is being publicly posted to the Net BBS for testing. Thanks to Eric and Andy, this is the biggest bug-fix yet. I need more people to do this, though. - Input 8023 lines (21599 statements, 270343 chars) from 4 files Version 5 (Advanced) story file 61 objects (maximum 511) 438 dictionary entries (maximum 1300) 27 attributes (maximum 48) 28 properties (maximum 62) 23 adjectives (maximum 240) 101 verbs (maximum 140) 112 actions (maximum 150) 0 abbreviations (maximum 64) 163 globals (maximum 240) 3915 variable space (maximum 4000) 4071 symbols (maximum 6400) 340 routines (maximum 500) 0 classes (maximum 32) 9 fake actions (unlimited) 38130 characters of text (compressed to 29610 bytes, rate 0.776) Output story file is 71.5K long (maximum 256K) Essential size 73024 bytes: 189120 remaining Completed in 14 seconds. - Also, I installed the new version of the include library(5/12), which was just released today. (Although it doesn't seem to affect this game at all, besides adding a K.) - The manual for Inform has been re-written, too, and in perusing it, I found some really nifty things that the old manual didn't tell me. Most of the changes are invisible to you, but they made the source smaller, and made me much happier. - The most visible change is I found out how to print quotes. So a direct quote that once was: 'I'm going to kill you and make a meal out of your entrails!' now says "I'm going to kill you and make a meal out of you entrails!" Much nicer. - I also re-wrote the intro text. It's actually has a style now. Whoa. - I also have to thank Andy and Eric. If it weren't for them, this update, while it probably would have happened, would not have been as enhanced as it is now. - Added a help system. Type HELP or HINT(Among other things) to bring up a help system, kind of like Infocom's Infoclues. One catch, though. Every entry into the help system costs you a point. Moohaha. - Added the computer, which will play two freeware games(I didn't write them), Tetris and Robots. How's THAT for making a game uselessly bigger? - File grew by around 14K. ************** README for Beta 0.6 Well, the game didn't make it to wide gamma by Halloween as I would have liked, but I want a less buggy game. And there are still bugs this far into testing as Jenni found out for me in 0.5. - Mostly a bug fix. I actually breached a limit on the game. Thanks to the added little games on the COMPUTER, the MAX_STATIC_DATA(The variable that holds the game's tokenized text) has to be increased when I debug it(and only then). - This may well be the last beta version. It may soon go onto the Internet as a gamma version. - I added scenery objects. You can now examine the banister, the closet, and a frightening number of other things. - Whee. I'm glad I didn't try to distribute this version, because, um, I made a boo-boo. Suffice it to say that the stalker was put in the wrong room, and therefore could not be killed. But. Nobody saw it. Nobody noticed except me. So I didn't do it. It never happened. Nope. I don't even know what I'm typing about here. - Edited the ending text. Nothing special - I just cut the 'thank you for playing' jingle so there's no need to play the entire game all over again just to read the end. So relax, all you out there who are completely obsessed with this game, which I know you all are. (Uh...) - Added a Compass Rose, programmed by Joachim Baumann (21 November 1994). Thanks, man. - Added a ROSE ON and ROSE OFF command in case you don't like the rose. (It does slow the game down somewhat) ************** README for Gamma 0.7 This is basically a version to playtest in preparation for the 1996 IF competition. - A few appearance changes were made, nothing special. - I'm not including any more compiler statistics, because: 1) I expect nobody cares. 2) The changes are getting very small between versions now, as its near done. ************** README for Gamma 0.8 Looking back on it, I must have forgotten to write this for 0.8. Oh, well. ************** README for Gamma 0.85 Inform 6! Yay! So, all this is, then, is a compilation under Inform 6.3, to see how many things break anew. ************** README for Gamma 0.9 We're almost there, folks. This is nearing what is going to be entered into the IF contest! Yeehaw! Cool things to do: KILL the CAT KICK the CAT (Thank Jenni for that one) USE (or TURN ON) the TV USE (or TURN ON) the Computer LISTEN (or HEAR) in any(and every) room Swear at the game, it's cool. (I didn't code that, it's built in) Read the HINTs after you win. THe help screen has the same attitude the parser does. Try to examine as many scenery objects as you can. Some of the best prose in the game is locked away in the scenery objects. If you find other cool things, let me know. Some of them are quite hidden. >:) And, for those of you on the Internet who know all about Inform, maybe even more than I do myself(it's not hard, really), this README file is probably the equivalent to an Elementary School textbook. But most of the testers are from a local area BBS, and most of them have never even heard of Inform. But, these people are as valuable as the veteran players, as they will be more apt to complain about confusing, convoluted design, where a veteran player might just work around it, as they know their way around the system, or maybe even the library itself. DO note that this game was purposefully designed to be genderless. It's simply done - it just doesn't refer to gender at all. The game was simple enough so that it worked out fine. Notice the ex-lover's name, Jamie, could be either a guy or a girl, and so forth. ************** Here are the stats put all close to each other for easier reading: 0.3 --- Input 6307 lines (17066 statements, 215422 chars) from 4 files Version 5 (Advanced) story file 39 objects (maximum 511) 373 dictionary entries (maximum 1300) 28 attributes (maximum 48) 28 properties (maximum 62) 23 adjectives (maximum 240) 104 verbs (maximum 140) 122 actions (maximum 150) 0 abbreviations (maximum 64) 135 globals (maximum 240) 1537 variable space (maximum 4000) 3334 symbols (maximum 6400) 275 routines (maximum 500) 0 classes (maximum 32) 8 fake actions (unlimited) 22577 characters of text (compressed to 17484 bytes, rate 0.774) Output story file is 50K long (maximum 256K) Essential size 50812 bytes: 211332 remaining Completed in 10 seconds. 0.4 --- Input 6735 lines (17831 statements, 229171 chars) from 4 files Version 5 (Advanced) story file 56 objects (maximum 511) 416 dictionary entries (maximum 1300) 28 attributes (maximum 48) 28 properties (maximum 62) 23 adjectives (maximum 240) 110 verbs (maximum 140) built in) 127 actions (maximum 150) 0 abbreviations (maximum 64) 137 globals (maximum 240) 1537 variable space (maximum 4000) 3460 symbols (maximum 6400) 303 routines (maximum 500) 0 classes (maximum 32) 8 fake actions (unlimited) 29890 characters of text (compressed to 22878 bytes, rate 0.765) Output story file is 57K long (maximum 256K) Essential size 58084 bytes: 204060 remaining 0.5 --- Input 8023 lines (21599 statements, 270343 chars) from 4 files Version 5 (Advanced) story file 61 objects (maximum 511) 438 dictionary entries (maximum 1300) 27 attributes (maximum 48) 28 properties (maximum 62) 23 adjectives (maximum 240) 101 verbs (maximum 140) 112 actions (maximum 150) 0 abbreviations (maximum 64) 163 globals (maximum 240) 3915 variable space (maximum 4000) 4071 symbols (maximum 6400) 340 routines (maximum 500) 0 classes (maximum 32) 9 fake actions (unlimited) 38130 characters of text (compressed to 29610 bytes, rate 0.776) Output story file is 71.5K long (maximum 256K) Essential size 73024 bytes: 189120 remaining Completed in 14 seconds. ************** Official List of Beta Testers ----------------------------- Eric Kjellmann Andy Reichert Greg Buxton Jenni Ruck Diane White Tyler Smith Damon Sanchez Kevin Johnsrud Tony DiMaggio Kati Western Grey (These are the people who played the game and actually reported back bugs. Others have played it, but never gave any feedback, so they're not in the list. Nyah.) The Award for the finder of the worst bug ----------------------------------------- If you have a pre-0.6 version around, try this: GET the RADIO the normal way, go to a different room, PUT the RADIO DOWN, then LOOK at the effect. The finder of this bug? Jenni. Known Bugs ---------- My testers told me that you should be able to unscrew the hinges from the attic door to get out. Well, they're right - you should. But I am just so sick of looking at this damned code, and I want to get started on Hybrid Child. So, at least for now, just keep in mind that you CAN'T do that. Another beta-tester, when I told him the above, actually nixed it. He kind of jokingly suggested that maybe the hinges are on the other side of the door. I laughed back, but then realized: Hey, they WOULD be. If the door opened downward, which it clearly does, then the hinges would have to be on the side of the door that the player can't get at until the door has been opened anyway. So there. :) (Does that mean my game is bugless now? Snicker snicker.) Jason Clayton White perseid@inxpress.net