Expanding the parser for beginners?

Continuing the discussion from Philosophy and goals of Text Adventure Literacy Jam:

I wonder if the parser can be expanded (for example for Tads and Inform 6 and 7)? Would it be possible to react to typical “messages” a complete beginner player enters? Like “Hello” or “How are you”? It would of course be neccesary to first answer the question “what are typical beginner messages”.


My question here would be, what are the benefits of specifically responding to “I don’t get it” or “what should I do” compared to just having a good response to unrecognised commands? Wouldn’t that cover those cases as well?

When Aaron Reed (I think) did some investigation into this kind of thing, I think the case he found that wasn’t typically being covered was newbies just repeatedly submitting an empty prompt, which he thought should redirect to >LOOK or >WAIT (personally I think a specifically tailored error response is fine too).



would be more productive. Ask yourself what would you tell the player if you see a frustrated one repeatedly banging the ENTER key?

1 Like

I’d ask them what they were expecting that to do, and the answer Reed had was they wanted to see the game do something, hence mapping that action to LOOK.

But, yes, personally I make my games respond with an error message that includes info from the general unrecognised command response (which should help the player find a recognised command) but also specifically highlighting how to repeat the room description or make time pass.


yeah, some prior art of interest:

Aaron Reed analyzed mostly newbie’s transcripts of people playing For Whom the Telling Changed. Contemporary r.a.i-f commentary.

Attempts to be newbie-friendlier by Reed include:


I had always thought you could do online beta testing and track everything people enter. Make sure you get newbie feedback.

Then you apply responses to every command that’s been tried.

1 Like

I am a fervent proselytizer for making parser IF more accessible.

But I do not believe providing responses for every command you see is necessary or appropriate. Games of all kinds train players in what buttons to push or what keys yield action, and parsers should be no different.

Parser games should be smarter and friendlier. Lots of implicit actions, lots of verb synonyms, lots of redirection to HELP. But as important is training the player. Many video games start with a mandatory tutorial-- this has become expected. We don’t do mandatory tutorials very often. I think this is because we’ve grown accustomed to having only a handful of players who are already parser players. Also because writing a tutorial is a real beast.

I am not going to implement “nope.” I’m not going to implement “run my tongue along the edge of the mirror.” I’m not going to implement “dance with sofa.” The amount of weird commands people try is staggering. Some of it is just trolling. Most of it comes from not reading instructions and not engaging with the medium on its own terms.


The Adv3Lite library for TADS implements responses and some really simple behavior pattern trackers to stuff that new players apparently are said to type in a lot.

(Though the responses are a bit… rude, so I’ve been going through them and rewriting them.)


You just lost @rovarsson.



I actually implemented “lick” with a response tailored to @rovarsson when he was testing The Spectators and nearly forgot to take it out before publishing it. So I have at least some credibility in the bank there.


Ah heck, we’re supposed to take out the custom Rovarsson responses before uploading a release version…??? /silly


I actually wasn’t thinking of implementing weird commands, but rather a kind of dialogue partner who can be addressed with things like “Hello” or similar stuff. You know, when a player is really new to parser IF. (Edit: A player who types “lick sofa” has already understood the basics.)

I still am not sure if it is really a good idea that I have here.


In my WIP I have a beta tester known as “R” following the player and acting as my hint engine (I much prefer an NPC to help out the player instead of a faceless “parser voice”.) I do keep talking to NPCs simple (basically I use “talk to NPC” and let the NPC do the “right thing”.) “R” will also suggest commands to try if the player indicated at start they are new to IF (like the tutorial mode used by Emily Short.)


The problem is that a totally new player isn’t aware of the syntax “Bob, hello” but might instead try to enter direct “messages”. Maybe simply writing in the intro how a parser game works, will do the trick. Maybe the tutorial mode you mentioned does.


Aah I see where you are going. You mean handling commands like

> hello

This is a good idea, I think, but maybe things like HELLO should redirect the player to a “How to play parser IF” section. I always ask “Are you new to parser IF?” at the beginning of a game and then have a stock paragraph with basic command info. People don’t often answer “yes” even when they clearly should, so things like HELLO should bring them to that section automatically.

In case anyone wants to include that “new player info” in their games, I hereby give anyone and everyone permission to copy that from any of my games. It’s at the very beginning of everything I’ve written except for the speed IF games.


I basically do the same as Emily Short does… invert the question so people automatically saying NO do get the tutorial mode enabled:

A tall, thin man suddenly appears, seemingly out of nowhere. "Hey there!" he
says, grinning broadly. "My name is R; I beta-tested this game. I am here
to offer guidance if you need it. Have you played interactive fiction before?"

In either case, I mention the HELP command which lists all commands available to the player. I probably have to split that up into multiple sections if things are getting out of hand (like what Andrew Plotkin did in his Dreamhold game.)


Awww, that should be a game winning (or losing) command.


That pretty much is what I thought about, only more clever than what I had in mind. :slight_smile:


I also implemented licking but I guess almost nobody knew about it unless I told them beforehand…

>lick me
You are a warrior, not a beta tester trying to lick yourself.