Making Haunted House for the 2011 Indigo Speed-IF Comp
This text was meant to form part of a never published article for the SPAG e-zine where participants of the Indigo Speed-IF Comp would share their experiences working with an IF creation tool they had never used before.
Haunted House was originally a 1979 explore-the-abandoned-house game released for the TRS-80 machine. As a text adventure written in BASIC language and meant to fit in 4 KB of memory space it would be judgegd as deficiently implemented and hardly playable by today standards, but it is, on the other hand, an invaluable source to know what made the player’s imagination start to fly 30 years ago, going for hours through its barely texted descriptions, its many sudden and unfair deaths, the naive puzzles which managed to make you exclaim a triumphant “YEAH!” when solved…
Last year a fast-comp for Amiga programmers was organized by an Amiga enthusiast Australian girl. The only premise was to create a quick remake of any old game of our choice, and I had recently adquired a phisical copy of the TRS-80 Haunted House game at e-bay, so I tried to enter writting some kind of enhanced version. My first idea was to write some real plot over the original map, or at least a bit more elaborated story than “Oh, I entered the house just for the sake of it and now I must get out!”… but I hadn´t the time, so I finally just made a plain port of the original text using the popular Amiga AMOS programming language and added it some graphics, a couple of sound effects, a soundtrack and an auto-map feature… but no real story there.
Now jump to a couple of weeks ago, when I knew of an IF enthusiast Canadian girl who was making a speed-comp for authors using any IF-making tool for the first time. I had recently adquired Aaron Reed’s Inform 7 book with the hope of using it to get slowly into the language. Still now I haven´t had the time to go beyond the introduction… but it happened that the intro itself was so damn encouraging, so effective in convincing you that writting IF works is worth it, that I had to give the step, and this comp happened at the exact time to give me an excuse to sit and write my first Inform 7 thing no matter how embarrased I could feel about the foreseeable legion of bugs!
Well, I should also feel embarrased enough about my not quite polished english (ahem…!). I had at least a former experience writting an english IF work (english not beeing my native language). The Haunted House Amiga remake was just a copy and paste affair as far as text stuff was concerned, but I made a short IF story also in Amiga AMOS for another previous fast-comp the Christmas before. It was an Amiga related story, full of details concerning the machine itself in order to get the attention of an action games oriented Amiga audience. It was a moderate succes, or so I can guess by the positive but scarce feedback it received. All of it came from european non native english speakers though, people who would tend to be forgiving with my typos and mistakes, so I hadn’t a real idea of how my english texts were actually working. Later I read Marius Müller article at SPAG 57 about the same subject, which made me feel a lot better just for knowing other people had been through the same issue before!
So far I had the motivation and the language. Now I needed a story to tell! I had that Haunted House project which I enhanced with multimedia stuff but couldn´t improve on the story side. That was the time for it! Then again, I still had no ideas for a plot and, worst of all, I only had a fuzzy notion of how Inform 7 actually worked. Something about “instead rules” instead doing this, doing that, or going there… I found a rushed but effective way out from that dead end which could (hopefully!) solve simultaneously both issues: my entry would be story-guided for its major part, faking it as best as possible with the player beeing free to go all around the scenario while watching non player characters do the job (the job consisting basically in solve the original game puzzles). That leaded to create some NPCs, a couple of player friends which happened to be a boy and a girl, which leaded to a potential love triangle, which… Wait! the comp rules demamded an Indigo reference somewhere. Aah.. that was easy! Abandoned houses are known to have ghosts inside, and even a ghost should have a name… It all helped to make a lame excuse for a plot, which would hardly stand in a real project, but could be fair enough for a speed-comp.
And then there was Inform 7.
Surely most of you are familiar with that feeling of “How the hell do I do this or that?” we all have when stepping out from a comfortable enviroment in which we know how things work and must face the challenge of the unknown. In most cases our first, instinctive, approach is searching for the equivalent. I had made a few little things in my own language before with Inform 6. I used a lot of object oriented programming techniques there, with my objects capturing actions with their good old before and after routines. So my first attempt was to find out how I could create objects and add them my well known before and after routines in Inform 7. To some extent that could work, but now I know this is the painfull and tiresome road to disaster. Even if you knew how things worked at low level under I6, I7 adds such an overwhelming layer of its own stuff into it that it’s not a matter of “how do I do the things I used to do before?” anymore, but a question of “what new things do I do here now?” and then take the easy way towards how to do them. As the emergentism theories suggest, you’ll never understand how the human mind actually works if you just knew everything about neurons and synapses, ‘cause even when they are the basic pieces, it is the interaction among millions of them what establishes the “rulebook” that makes each of us perceive, feel and react to the same world in a different way.
In that sense, my first experience with I7 has left me with the strong impression that, even if programmers are not its intended target of users, it is actually an ideal tool for programmers… but not just for any kind of programmer, to be precise, not for the latest generation of programmers.
Young programmers have been educated in the latest programming paradigms from their very first steps. Somehow they lack the experience of the uncertainty older generations had that fateful day when they had to abandon the comfort of their line numbered world and jump into the chaos of labels and procedures. The feeling of getting lost when they innocently asked “How do I number my lines now?” and someone abruptly answered “No, you don´t, the sooner you forget about it, the better”. The angst of facing visual oriented GUIs in which things never happened in a pre-established order anymore. The time consumed in uderstanding that classes and objects labyrinth and why it was suppossed to be useful when you had never needed it before… That vertigo-like sensation when you realize that all your former knowledge is more an obstacle than a help.
Latest generation programmers will eventually know how it feels in years to come, when the “paradigm” gives a couple or more of steps ahead. Meanwhile I still hear them moaning about I7 not having a reference guide as they are used to with other programming languages and asking how do they apply bucles, variables, and classes here and there. If my personnal advice is of any relevance I would just ask them to take things easy, face that we are in an unknown scenario where things are definitively not what we expect them to be… and make the most of it with all those new possibilities… that’s what programmers do!
By the way, I haven´t read Ron Newcomb’s Inform 7 for Programmers yet (and first of all I must thank him for his Custom Library Messages extension which was vital to write Haunted House in the past tense!) so perhaps I’ll find insights there which could make me see things in another way!
And last but not least, I want to send a very big thanks to everyone at Clubfloyd for the useful info I got from playing HH together (now I also have a clearer idea of how much of a proofreading my english requires!) and the nice wellcome!