Adventures in Interactive Fiction

Success is North of Failure

Various Random Musings from Days 4 and 5

It’s funny the things I have taken for granted in my decades of playing text adventures.  Little things, like “look behind”, that I try in just about any game I play, and have always assumed were just standard commands.  Of course, when I decided to put something behind a painting, I quickly realized the folly of my ways.  I couldn’t just write a simple “Instead of looking behind” statement, I had to first explain to the thing what “looking behind” was in the first place.

The good news is, I managed to do this pretty quickly.  A couple of fairly intuitive lines telling the game what looking behind was, and voila, ’twas done.  Then because my painting had a couple of parts attached to it, I decided to treat the act of looking behind any of those parts as looking behind the painting itself.  Flying completely by the seat of my pants, I whipped out:

Instead of looking behind something that is part of something (called the parent): try looking behind the parent.

When it compiled, I whooped.  When it worked, I did a little dance.  It was a fairly easy and straightforward accomplishment, but it taught me a good and valuable lesson: even the seemingly simplest things require effort on the IF writer’s part.

This revelation could have been a bit daunting.  I do admit that part me of groaned inwardly, and thought “Is every little thing going to be like this?”  But actually, I was really quite pleased – one because this is exactly what I was looking for when I started this whole process: a learning and growing experience.  And two, because I actually managed to achieve it without spending 4 hours combing through the documentation.

Not to say that everything else went so smoothly…

Part of the problem is that because I actually have fleshed-out a fairly comprehensive idea of how I want things to go, I keep getting distracted.  For instance, I was writing a doorbell into the game, and thinking of likely ways that people would try to interact with it.  The most obvious choice, of course, was to “push doorbell”.  Easy enough.  But what if someone tried  to “ring” the doorbell? Writing an action for ringing something and defining things as ringable and unringable didn’t take me too long, and actually boosted my confidence  – the whole process is becoming a lot more intuitive; rather than trying to figure out what I want to do, now I just have to figure out exactly how to do it.  I know I need to write an action – so all I have to figure out is how to do so.

Anyway (there I go, getting distracted again) – as I allowed for ringing the doorbell, it occurred to me that at later parts in the game, when telephone conversations become involved, I might want to use “ring” in a different sense.  With the doorbell pretty much complete, I turned my attentions towards laying down the groundwork allowing for the whole telephone system.

Next big realization:  telephones are going to be hard.  I’m going to have to skip that part for now because it’s going to be a pretty major part of the game, so I’ll need to really plan it out properly.   That will probably be my Tables trial-by-fire.  I have yet to figure out exactly how to work with tables, but because I haven’t gotten to the point where they come into play, I haven’t really given them much thought, either.

I also realized that I am probably the world’s messiest coder.  Because of my flaky attention span, I tend to work on one thing, then bounce off in another direction, then back to something I was doing yesterday, and so on.  In an effort to clean up the code, I have been inserting headings/chapters/books and taking a more organized approach to things.  Today I tried taking more of a room by room, hierarchal approach.  I went back to the starting room, and wrote in all the scenery items.  Moved onto the “logical” next room and did the same.  Because some of the scenery items would actually be interactable in this room (like said doorbell), this took a little more work, but I think it paid off.

I’m a big fan of thorough implementation; the quickest way for a game to win points in my favor is to never say to me “You can’t see any such thing” or “You don’t have to worry about [some noun mentioned in the description]”.  If you (the game writer) tell me something is there, and I want to know more about it – tell me more!  Even a simple five word description is better than nothing in my book.

My question for myself is now whether it’s better to do all the low-level implementation for all the rooms involved (15) and then go back and tackle the grittier stuff, or to continue going room by room, working from low-level upwards.  Probably the former is the best approach, as once I start coding in some of the puzzles, things will start getting even messier. If I try to code part of a puzzle here today, and the rest of it there next week, I’m just going to get hopelessly lost.

Things I Learned Today

I’ve sharpened my “Instead” skills quite a bit.

I also managed to make the front door automatically if you try going through it after unlocking it, as that just seemed logical.  I suppose I could just code it to unlock automatically as well, but I haven’t decided whether I want to do that or not.  It’s the only locked door in the game, so unlocking it once shouldn’t be an issue.  This involved learning how to “try silently” in a specific location.

I created an thing called a concealer so that I could treat looking behind things that actually hide things differently from everything else.  This also brought into use “Check [action]” and “Carry out [action]” which I was pretty proud to figure out.

Time-triggered events.  To enhance the reality of the game world, I wanted things to happen like thoughts occurring to the PC from time to time – brief memories triggered a few turns after examining something, for instance.  That, of course, meant invoking the “In [x] turns from now, [something happens]” and “At the time when [something happens] [do something].  This turned out to be easier than I’d feared, and from my POV, is highly effective in the game.

Questions I Came Up With

Of course, the more I write, the more questions I find myself facing.

What’s the best way to describe a house that’s supposed to be familiar?  Saying “Your old bedroom is to the southeast” seems a little odd to me in the context of this game, because you obviously should know where your bedroom is.  Further, you’re unlikely to tell a guest that needs the toilet to “go down the hall and walk northwest”.  I have to give this some thought.  Immersion is important to me, so I’d like to create as realistic and intuitive a world as possible.

What’s the best way to clue someone into examining something twice?  I don’t want to be willfully evasive, but I do want to hint that some things are worth a closer look (a second examine, as it were).  I just don’t know what the most effective way to accomplish that is…

And, once again, it’s after midnight, so that’s where I’ll leave off for now.


March 29, 2008 - Posted by | Game Progress | , , , ,


  1. “Saying “Your old bedroom is to the southeast” seems a little odd to me in the context of this game, because you obviously should know where your bedroom is.”

    Yes, the character in the game knows this, but the *player* doesn’t! You aren’t writing the descriptions to the character but the player. The descriptions are the voice of the narrator who tells the player what the character sees and hears, and since this is new information to the player, I don’t see it breaking the immersion. It actually *helps* it, because now the player has the same information as the character has.

    If you were writing in the first person (“My old bedroom is…”), explicitly writing the “thoughts” of the character, then the issue might be something to consider.

    “What’s the best way to clue someone into examining something twice?”

    Making important information available only at the second examine is usually bad design. There is no fool-proof method of hinting to the player that a second EXAMINE is necessary, other than outright telling them to do that.

    I’d suggest you make all the info available at the first examine, or implement SEARCH as a separate command that will give the information.

    Comment by dgen | April 10, 2008 | Reply

  2. I think I’ve been slowly coming to the same conclusions as you suggest, especially regarding the first situation.

    I’ve also decided to forego the “second-examination” route, mainly because it just seems too arbitrary – I can’t think of a good reason why something would be noticeable on the second look but not the first. And while the game will be a bit puzzley, it’s also quite story-driven, so forcing in an examine-twice puzzle will likely just interfere with the flow.

    Comment by Jules | April 10, 2008 | Reply

  3. > What’s the best way to clue someone into examining something twice?

    An alternative might be to use “second level nouns” – something which is mentioned when an object is described, which in turn needs to be examined as well. But if you’re going to do that, it kind of needs to be consistent throughout the game.

    Here are some quotes about this topic:

    (Great site, by the way!)

    Comment by David Fisher | April 22, 2008 | Reply

  4. Hi David,

    Just dug your comment out of an overzealous spam filter… sigh. Your site, by the way, is an excellent resource – if I had enough ink to print out all 183 pages of IF Gems, I’d do it in a heartbeat.

    I did take a sort of second-level approach in the end, though more towards cluing than as an actual puzzle layer. If there’s anything I hate, it’s having to step through a series of tasks just to get a game to let me do something I’ve already figured out – like looking behind a painting. On the other hand, it’s equally frustrating to realize I was supposed to look behind something yet there was nothing that indicated that it was worth trying.

    Hopefully the way I tackled it – incorporating a handful of second-level nouns pertaining to the painting and its parts as clues, yet rewarding the direct approach with success – will strike a balance between the two 🙂

    Comment by Jules | April 23, 2008 | Reply

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: