Teaching IF to new players

I’m relatively new to IF, so I don’t know if this has been done or not, but what about keeping the room description in a separate window, so that it’s always there? The commands and responses could scroll by, but you’ve always got a window where it shows you your current location. It’s kind of like the old graphical adventures with text input, but instead of always having a picture of the location, you always have the description.

-Kevin

The Scott Adams games did that (and they predated Zork I on the store shelves).

Perhaps the best way to teach a new person would be to download a game that’s new to both of you and play it for the first time together. That should get them used to the phrasing and such.

I realize that this answer is platform- and language-dependent, but perhaps every game engine should have a NEWBIE command. We provide lovely Zork-inspired commands such as VERBOSE and BRIEF for the old hands, but what about the newbies?

I think there ought to be a module or extension to handle that, really.

The NEWBIE module/interface could do many things:

  • In the first room, it can show a list of suggested commands like GO WEST and TAKE ENVELOPE. (A list of suggested newbie commands can be supplied by the author.)
  • It should recognize overly-verbose commands such as GO TO THE NORTH or PICK UP THE ENVELOPE or LOOK AT THE ROOM and suggest briefer alternatives.
  • It should contain a real-time clock; if there is no input for a significant time, it should ask if the player is new, and if he needs instructions.
  • It should intercept commands such as WHERE AM I?
  • While in newbie mode, the first few rooms can contain objects with “suggestion flags.” For instance, an examine-me flag will encourage a new player with a standard line like “(You might wish to try the command EXAMINE THE JAR OF PICKLES.)” while a take-me flag responds with “(You might wish to TAKE THE CLASSIFIED ADS. You may need them later.)” The author can choose which items are flagged for a newbie’s convenience, but the engine just picks a random suggestion-flagged thing in the room.
  • It could also have objects with “clue flags.” If you have spent more than 20 moves in the kitchen and you haven’t opened the refrigerator, it could prompt the player with “(You haven’t tried to OPEN THE REFRIGERATOR yet.)”
  • It could contain a text-formatting script so that interactive objects are bolded in the room description text.
  • It should recognize and acknowledge unnecessary commands such as GO OVER TO THE [fixed scenery object], or GO THROUGH DOOR, providing an appropriate response.
  • The first time you go more than 10 turns without typing LOOK, it can prompt you “(If you want to see where you are, type LOOK.)”
  • It could count the number of times you try to interact with unimportant scenery, and provide a default response. After the third time you try to do anything with the AQUARIUM, it can say, “The aquarium isn’t really important. The author put it here to make the room more interesting. Isn’t it nice?” or something. Actually making scenery objects for all of those items is the author’s problem. :slight_smile:

If making a module or extension is out of the question, then perhaps a focus on writing a few extremely newbie-friendly games could help a great deal. If you want to get somebody involved playing IF, you can start 'em off gently with a game designed to give the player as much help as possible, before getting them into the harder stuff. (I seem to remember an Infocom game … Seastalker? … that had a bunch of hints built-in.)

You can get most of these by merely downloading and including the following extensions:

Include Smarter Parser by Aaron Reed.
Include Tutorial Mode by Emily Short.
Include Keyword Interface by Aaron Reed.

This would get you all of the following:

The remaining are all good ideas, too.

And I should also mention the project Juhana and Drew are working on to do just this: inthecompanyofgrues.com/iftraine … ha_testing

For fun, here’s a transcript a non-IF-playing friend sent me of encountering release 1 of Sand-dancer (where I’d accidentally, but usefully for our purposes here, left out all of the newbie-friendly extensions I meant to include.) Warning: foul language.

As far as extensions that would have improved this experience: “Modified Exit” recognizes things like “Get out of truck,” “Smarter Parser” would have responded to several of the questions asked with helpful instructions, and stripped some of the words getting in the way (“>then switch them off” would have become “switch them off”), and “Extended Grammar” would have gotten some of the verb synonyms like “inspect” and “escape.”

This isn’t the first time I’ve seen evidence to show that the “I only understood you as far as…” error message isn’t so easy to understand if you don’t already know what it means. Does anyone have a better wording for it, or another way of handling the error of the player that’s supplying too much information?

Maybe things like this are what prevent IF from gaining wider acceptance?

I know there are threads in this forum talking about this, but (and I’m speaking ignorantly here) maybe this should be the next major thrust of IF development, making IF accessible to non-IF players.

Although I’m sure most will react the same way my wife did the first time I asked her to play a game.

I think that’s exactly right. I know Aaron has done a lot of work on this already, with Smarter Parser and so forth, but I haven’t yet put it through the torture test, so I’m not sure what may remain to be done. (Nor would I be the right person to torture-test it…)

Ultimately, though, we can hope that an expanded Smarter Parser will be bundled with Inform by default. An extension is only useful if authors know that they should use it.

–JA

I find this part interesting:

I just can’t wrap my head around this. Why did they write “give me back my cigarettes”? Who is “me”? Did the player consider himself being a separate person in the game world, as someone other than the PC, even though the story is narrated in second person? Maybe the “Sure thing, man” response gave the impression that the PC took the cigarettes from the player?

Looks like it. The narration resembles dialogue, so it’s natural (I think) to assume it is a character speaking, not a disembodied narrator.

Another interesting little minefield which authors must circumvent.

It occurs to me that currently the parser tries very hard to pretend that it understands more of the player’s input than it actually does. It might be best to drop that pretense completely and just be brutally honest with the player, otherwise the newcomer has no way of knowing what input is expected. Something like this:

That’s just a quick draft but I do believe that if you make the parser’s logic transparent the player catches on much quicker. In Aaron’s example script you can see that the player tried to have a conversation with the parser and acted as if they were talking with a human (“sigh” or “TURN OFF THE HEADLIGHS!”) all the way to the end of the script. “I didn’t understand that sentence” or “I only understood you as far as…” contains zero information on how to actually modify the command to make the game understand it.

Just this past week, I had the experience of playing IF with my young cousin, who had only been introduced to IF by me the year before, and only for a brief time. I was reading the game out loud to him, and asking him what to do, so obviously that eliminated most of the problems he would have had with the parser, since I was interpreting his commands. However, I did notice that he repeatedly wanted to go towards something in the same room. That is, when I read a room description, including the list of the objects and NPCs in the room, his first reaction was often to tell me to go to the object or NPC that caught his attention the most, for instance, “GO TO GIRL” or “WALK TOWARD GIRL”. He also sometimes wanted me to do things that can’t really be expressed in typical IF commands very well, such as standing in a particular direction or getting in front of something/someone.

So, it seems one thing that newbies may not catch on to right away is the IF convention of spacial relationships within rooms. And it makes sense that wouldn’t assume that the PC’s movements within a room would be implied, when you’re supposed to be telling the PC what to do. Other than these difficulties, my seven-year-old cousin seemed to understand IF fairly well, though it’s hard to say, since he was only interacting with the parser through me.

Here’s an example of just the misunderstood commands from the first transcript and the first part of the new response, with some of the existing newbie-friendly extensions turned on:

Include Extended Grammar by Aaron Reed.
Include Smarter Parser by Aaron Reed.
Include Poor Man’s Mistype by Aaron Reed.
Include Modified Exit by Emily Short.
Include Small Kindnesses by Aaron Reed.

I’ve actually revised some of these heavily in the last few days: the new version should show up on the extensions page momentarily. Most notably, I’ve revised the output style for Smarter Parser to be more streamlined: when attempting to reparse a command it reprints the new version in caps in front of a new prompt.

The above response seems incongruous due to the way Modified Exits handles something-- I’ve made a suggestion to Emily that this ought to work a little differently if the exit in question is “outside.”

So out of the original 31 errors, we’ve turned 9 of them into correctly parsed commands, and given more helpful error messages for 6 more. This still leaves 16 inputs the same (or in one case slightly worse) than they were, but many of these are just a frustrated player messing around, which weren’t expected to have responses anyway.

(Note that this is a blatantly unfair and unscientific comparison, since this was one of the data sets I was using to improve the extensions. I’m hoping to do some tests with some other collected newbie-friendly input soon. But my general sense is that these extensions should recognize something like 15-30% more newbie input than the baseline parser.)

Fantastic observation – thanks! I’ve just implemented a way to handle that type of command in the game I’m starting to work on, using a newbie-friendly instructional message.

–JA

What’s the message? (Is it a secret?)

Smarter Parser’s message for this is “Usually, you don’t need to worry about the exact positioning of things. You can get more detail about something with the EXAMINE command, or use compass directions like [get direction example] to change your location.”

([get direction example] prints a random connection from the player’s location.)

No, but I’m using Inform 6, so I doubt anyone would be interested. It needs more refinements; at the moment, it looks like this:

[code]Extend ‘go’
* ‘to’/‘toward’ noun → Approach
* ‘over’ ‘to’ noun → Approach;
Extend only ‘move’
* ‘to’/‘toward’ noun → Approach;
Verb ‘approach’
* noun → Approach;

! Note: Approach needs further modification to allow 'go to .
[ ApproachSub;
if (noun in player) {
print "You’re already about as close to “, (the) noun, " as you’re
going to get, since you’re “;
if (noun has worn) print “wearing”;
else print “holding”;
if (noun has pluralname) " them.”;
else " it.”;
}
else “An understandable impulse, but that command is not necessary.
Except in special circumstances, everything that you can see in an
interactive fiction story is essentially in the same location you’re
in. If you can see it, you don’t need to do anything special to get closer to
it – and in fact you can’t get any closer to it (though the command TOUCH may have an effect).^^The
special circumstances would include situations such as if you’re lying in a
hammock. In that case, you’d be able to see nearby objects, but you would need to
use the command STAND UP in order to be able to touch them or pick them up.”;
];[/code]

That’s nice, but how come you mention the not-very-common “touch” command without explaining “examine?” If I remember my IF beginnings correctly, that’s what I was really trying to do when I attempted to get closer to an object in the room.

Good point. I hadn’t thought of that.

My guess is, it’s a losing battle trying to put together a system that will address the misunderstandings that all new players may have. I’ve expanded on that code already to allow the player to ‘go to’ distant but visible objects, and now I’m working on a way to allow the player to follow NPCs when they’ve left the room. It ain’t simple…

–JA