[parser game dev] How many unique responses are enough?

influenced by this thread:
Silly commands you try in parser games - Playing / Beta Testing Requests and Discussion - The Interactive Fiction Community Forum (intfiction.org)

It’s fun and satisfying to try a command that might be a little kooky and get a good response, so authors might want to implement some of those. It also seems advantageous to change default messages like “That’s hardly portable” (Inform 7) because players have seen all of the defaults. Readers generally prefer fresh prose.

The goals of such accommodating code have to be balanced, of course, against what can become a massive effort if not applied judiciously. “Scan,” as in evaluate the meter of a line of poetry, would not be discovered by players unless they were nudged (or outright shoved). Discoverability is a factor, then. Implementing specific “kiss” feedback for every noun would likely grow tedious for players and authors alike unless the story (or the protagonist) is very interested in kissing.

How far do you go in implementing verbs and verb feedback for cases that do not affect the main throughline? As a player, how far would you like a game to go? If you knew that there were custom verbs that could be used on almost every noun, would that encourage you to experiment, or are you sufficiently amused by a single clever INSTEAD?

3 Likes

I thought a lot about this after starting that thread and reading through the responses, and determined that any custom verb really does need to have connection to the story. Obviously I implemented KISS in Fairest, because of all the kissing of frogs and sleeping beauties and such in fairy tales. But I did not implement PICK NOSE (sorry, @rovarsson ), because then I would have to consider all the other funny, weird suggestions like FART and PRAY. I think Grunk could fart, but then, that makes sense in the context of that game. But I don’t really need to see the command FART in Anchorhead. A game with a religious theme or religious elements might well want to to incorporate PRAY.

If you try to cover everything, you’re just encouraging the player to do weird things that take them out of the story, and players try enough weird things without encouragement.

5 Likes

----looks up, distracted from engrossedly inspecting some greenish goo on his pinky he just dug up from his left nostril----

Who, me?

----mumbles something, lifts right buttock, farts, then leaves----

5 Likes

I’m afraid I won’t be accommodating nose picking (or licking) requests, either. The protag and the narrator are fixed characters that just wouldn’t do those things. nofunallowed.jpg

But there are things like “listen,” which most people do in the course of the day. That has a default of “you hear nothing unexpected,” which will often contradict a room’s description. Even customizing a default will have issues. So one thing I wonder is what to do with listen? I could kill the verb altogether, or do a reply per room (or per region).

Then again, do players even bother listening since they are used to the default response? Would it be worth the effort?

I can think of cases like this where there is potential to do something relevant to the setting or characters, but it might not be worth the trouble.

Or, there is a custom verb, let’s call it frobbing. Well, frobbing is an action applying to one thing. And in reality it is beneficial for the player to apply it to many things. I worry that if it is only customized for the throughline, then people won’t experiment (when they should). So I wonder how many responses are needed to encourage that sort of play.

4 Likes

If the game is really focussed on sensory input in any way, then yeah, LISTEN and SMELL would be good. I had an area where a song was an important clue, so I implemented LISTEN because that had some bearing on an important thing in the game. If there’s nothing important to listen to, though, then you could leave the default response.

I just asked myself with each verb: is this relevant to anything in the story? If the answer was no, I didn’t worry about it.

4 Likes

I LISTEN (and SMELL and TOUCH) all the time in text adventures.

Some games have puzzles built around using other senses than sight, which I find very original and refreshing. Extra points for that.

But even when that’s not the case, custom responses to those commands are great for the ambient atmosphere. Hearing bees buzz in a flowery meadow, smelling stale puddles in a dank cellar, feeling rough bark on an ancient oak tree…

Completely unnecessary information, but I’ll appreciate a game that much more for incorporating it.

I do agree with @AmandaB that customizing the lot and even implementing new miscellaneous commands leads the player astray. It quickly devolves into a funny but pointless contest between the player and the author to see who can come up with the most obscure commands/responses.

7 Likes

I don’t think there’s one correct answer here, but that won’t stop me from offering three (plus a bonus process, which while not a substantive answer does have the benefit of being correct):

  • If I have a good idea for a joke, easter egg, or something that will make me happy to include, I’ll put it in, almost regardless of whether a player is likely to come across it. Some will, because as folks have said players will do silly things, and putting it in will make me happy, so it’s win-win (there’s a potential downside of wasted effort, I suppose, but I write in Inform 7 so most stuff in this category is probably being handled with one-off actions, modifying a built-in response, or single-line rules so the overhead is usually not that bad).

  • For player characters who have typical access to the default kit of human senses, I’d try to implement at least a minimal response to listening and smelling – I find I usually wind up mentioning sound or odor in location or object descriptions, so this will wind up prompting the player and giving default “nothing to hear/smell here” responses would break mimesis. This is also usually not that hard to do in Inform 7, especially if you use regions to provide some high-level differentiation that doesn’t require room-by-room writing).

  • If I’ve got a game with a strong narrative voice – which is pretty much all of the ones that I’ve written or am working on – I do think it’s worth modifying the dozen or so most common parser responses to fit with that voice, since otherwise it can be very arresting to have a drily amused Englishman suddenly butting into things (again, working in Inform).

  • OK, here’s the right answer: take your best crack but don’t kill yourself, then get the beta out to testers, feel your heart sink as they immediately try a hundred different things you would have never thought of, then figure out which of those are worth adapting to and which are cheeky behavior that you don’t want to encourage with a custom response. If you can do this in two waves, all the better!

14 Likes

And who could possibly object to that?

I agree with the general sentiment that others have expressed here though. You don’t want to encourage players to muck about too much - you went them to get on with the game (unless you’re trying to build some sort of super-dense world simulation for some reason). I normally add custom responses to JUMP, SHOUT, SING, SMELL, LISTEN, a XYZZY (even though I’d never heard of that before I started hanging around here), and all the expletives that I can remember. Plus anything that crops up persistently in tester transcripts. Then head off everything else with a general “you haven’t got time for that” response. By the time they’ve finished trying that lot, players are normally ready to settle down and get on with the task in hand.

If your world is well enough realised then players’ imaginations should do most of the heavy lifting without having to implement a response to absolutely everything in an attempt to enrich the experience.

6 Likes

What I said about an overabundance of custom responses and miscellaneous commands:

Of course, games like Hinterlands: Marooned and Aisle live and breathe this. My biggest naggle with Pick Up the Phone Booth and Die is that there aren’t enough idiosyncratic commands recognized/responses provided.

And I have just tried in the online version of Aisle. It does not recognize FART. It should, I think. What’s more recognizable in a supermarket setting than letting one fly, paying attention to clench those buttocks just right. Tight enough to prevent any outright flubbering noises, but not too tight lest the dreaded high-pitched pinched-off-balloon FWIIIEEE-effect occurs.

I would have liked to read how the story in the aisle ended after that.

6 Likes

I think that nearby every IF ought to have custom default response, tailored to the story and narrative style, so I concur with Christopher.

FART can even became the solution of a puzzle, like, how to leave a boring lecture/meeting…

Best regards from Italy,
dott. Piergiorgio.

4 Likes

It’s not very often that I laugh out loud at a forum post, but you’ve outdone yourself this time. Very funny.

3 Likes

I usually type RESPONSES ALL in the Inform 7 dev environment to get a list of rules, then go through and edit as many as make sense. Here’s the list I did for Color the Truth 6 years ago:

Summary
The block vaguely going rule response (A) is "You'll have to say which compass direction to go in (such as NORTH, NORTHWEST, or just abbreviations like S or SE)."
 The can't take yourself rule response (A) is "You already have yourself, you know."
 The can't take other people rule response (A) is "[the noun] isn't going anywhere with you right now."
  The can't drop yourself rule response (A) is "Don't give up on yourself now."
  The can't eat unless edible rule response (A) is "[if persona is Cindy]You're saving yourself for lunch at the Chinese restaurant.[otherwise]You've already eaten.[end if]".

  The examine undescribed things rule response (A) is "You look over [the noun], but don't see anything important."
   The standard looking under rule response (A) is "You crouch down and look, but you don't find anything."
	The block showing rule response (A) is "In this game, all interaction with other characters is done through conversation."
	The block throwing at rule response (A) is "You're not one to discard something so easily."
	The block attacking rule response (A) is "[if persona is Chuck]Honestly, you don't have the energy.[otherwise if persona is Cop]Your fighting days are over.[otherwise]You're not that kind of person.[end if]".

	The kissing yourself rule response (A) is "You press your fingers to your lips. It's soothing."
	The block kissing rule response (A) is "You're not in the mood for a kiss, and you doubt they are."

	The block answering rule response (A) is "[if persona is cop]In this game, speech is handled by using SAY [bracket]a topic[close bracket], where topics can be found by typing T.[otherwise if persona is the shadowy figure]In this game, speech is handled by using SAY [bracket]a topic[close bracket], where topics can be found by typing T.[otherwise]During flashbacks, conversation advances by using TALK TO [bracket]someone[close bracket].[end if]"

	The telling yourself rule response (A) is "If you want to think about a topic, try X [bracket]the topic[close bracket]."
	The block telling rule response (A) is "[if persona is cop]In this game, speech is handled by using SAY [bracket]a topic[close bracket], where topics can be found by typing T.[otherwise if persona is the shadowy figure]In this game, speech is handled by using SAY [bracket]a topic[close bracket], where topics can be found by typing T.[otherwise]During flashbacks, conversation advances by using TALK TO [bracket]someone[close bracket].[end if]"

	The block asking rule response (A) is "[if persona is cop]In this game, speech is handled by using SAY [bracket]a topic[close bracket], where topics can be found by typing T.[otherwise if persona is the shadowy figure]In this game, speech is handled by using SAY [bracket]a topic[close bracket], where topics can be found by typing T.[otherwise]During flashbacks, conversation advances by using TALK TO [bracket]someone[close bracket].[end if]"

	The standard report waiting rule response (A) is "[if persona is cop]You stop to think for a moment.[otherwise if persona is Danny]You tap your foot impatiently.[otherwise if persona is Chuck]You pause, lost in thought.[otherwise if persona is Cindy]You stop for a second, unsure what to do next.[otherwise if persona is Maia]You bide your time.[otherwise if persona is the shadowy figure]You wait for a moment, taking deep breaths to keep your calm.[end if]".

	The report touching yourself rule response (A) is "Your skin feels smooth."
	The report touching other people rule response (A) is "You decide not to, after a moment's thought."
	The report touching things rule response (A) is "You lay your fingers on it for a moment."
   The can't pull people rule response (A) is "Persuasion is better than physical force."
	The can't push people rule response (A) is "Persuasion is better than physical force."
	The can't turn people rule response (A) is "Persuasion is better than physical force."
	The innuendo about squeezing people rule response (A) is "Persuasion is better than physical force."
	 The block saying yes rule response (A) is "[if persona is cop]In this game, speech is handled by using SAY [bracket]a topic[close bracket], where topics can be found by typing T.[otherwise if persona is the shadowy figure]In this game, speech is handled by using SAY [bracket]a topic[close bracket], where topics can be found by typing T.[otherwise]During flashbacks, conversation advances by using TALK TO [bracket]someone[close bracket].[end if]".

	The block saying no rule response (A) is "[if persona is cop]In this game, speech is handled by using SAY [bracket]a topic[close bracket], where topics can be found by typing T.[otherwise if persona is the shadowy figure]In this game, speech is handled by using SAY [bracket]a topic[close bracket], where topics can be found by typing T.[otherwise]During flashbacks, conversation advances by using TALK TO [bracket]someone[close bracket].[end if]".

	The block burning rule response (A) is "You don't need a fire right now."
	The block waking up rule response (A) is "[if persona is cop]You take deep breaths and try to be more alert.[otherwise if persona is the shadowy figure]You have never been more alert.[otherwise]You can't exit a flashback until the suspect has finished their statement."
	The block thinking rule response (A) is "To see you current thoughts, try typing T."
	The report smelling rule response (A) is "You take a deep breath, but you don't learn anything new."
	The report listening rule response (A) is "You strain to hear something useful, but you can't make anything out."
	The report tasting rule response (A) is "You don't feel like tasting anything."
	The block cutting rule response (A) is "[if persona is Danny]You could get your woodworking knives, but you don't want to dull them.[otherwise]You don't have anything to cut with, and don't really feel like it anyway.[end if]".
   
The parser error internal rule response (E) is "[one of]You typed a valid action, but it was for something that isn't visible right now, something that isn't in the game, or possibly a typo. If you're stuck, type HINT repeatedly to find the next action you can try.[or]I didn't understand the object in that command.[stopping]";

The parser error internal rule response (X) is "[no line break][lookaction]";

The parser error internal rule response (N) is "[one of]Your first word had a typo or was a word not anticipated by the author. Try a different word or type HINT repeatedly to get suggestions.[or]The first word you typed was not recognized.[stopping]"; 

The parser error internal rule response (B) is "Your sentence had too many words; you can try typing just the part where you wanted to ";

The parser error internal rule response (C) is "Your sentence had too many words; you can try typing just the part where you wanted to (go) ";
	
	The report jumping rule response (A) is "You're worried what people would think if they saw you."
	The block tying rule response (A) is "You think about that idea, then discard it."
	The block drinking rule response (A) is "You're not thirsty at all."
	The block saying sorry rule response (A) is "Don't be."
	The block swinging rule response (A) is "Persuasion is better than force."
	The can't rub another person rule response (A) is "You're not that close."
	The block buying rule response (A) is "There's nothing left you want to buy."
	The block climbing rule response (A) is "You're not in shape enough for that."
	The block sleeping rule response (A) is "[if persona is cop]You wish you could, but it's not time.[otherwise if persona is Danny]You can take a nap when you go home.[otherwise if persona is Chuck]It's hard to sleep when you're thinking about Rosalita.[otherwise if persona is Cindy]You'd love to just lie down and stop thinking, but it's not the time for it.[otherwise if persona is Maia]You rest for a moment, eyes closed. It doesn't really do anything for now.[otherwise if persona is the shadowy figure]This is not the time for sleep.[end if]".
	The requested actions require persuasion rule response (A) is "[if persona is cop]In this game, speech is handled by using SAY [bracket]a topic[close bracket], where topics can be found by typing T.[otherwise]During flashbacks, conversation advances by using TALK TO [bracket]someone[close bracket].[end if]".

	The carry out requested actions rule response (A) is "[if persona is cop]In this game, speech is handled by using SAY [bracket]a topic[close bracket], where topics can be found by typing T.[otherwise]During flashbacks, conversation advances by using TALK TO [bracket]someone[close bracket].[end if]".

	The can't go that way rule response (A) is "You can't go that way."

To say lookaction:
	say "You look around.";
	try looking;
13 Likes

Thanks, this looks very helpful.

Congrats: this deserve to be an “custom default responses by Mathbrush” extension…

Best regards from Italy,
dott. Piergiorgio.

That is a great list! When I wrote parser, updating all the default message was kind of the “frosting” if I had time - the last thing I did. Essentially I went through all the default messages and kind of rewrote them in the style of the game.

It used to be an extension…something like Default Library Messages(?), but then it was built into Inform 7. There are handy click buttons to insert the code to update them from the Index which I don’t think authors realize the value of!

5 Likes