Modeling conversation flow: NPC questions

[This is part of a series of discussions on the craft of modeling conversation, in particular using the conversation system I’m developing for Inform 7. For previous installments, see my original Homer in Silicon article which lays out the basic elements of the model, and previous blog posts on NPC initiative, subject changes, transitions in player speech, interruptions, and NPCs who repeat information.]

We’ve looked at the player asking the NPC questions, but that’s only part of the story: we’d also like the NPC to be able to ask the protagonist questions and remember the answers; pester the protagonist for an answer if one is not given; and refuse to move to new topics.

The basic set-up is straightforward: we give the NPC a quip posing a question. We represent the answer with quips that directly follow the question quip, which means that at most one of them can be used and that they will only be understood if the player hasn’t talked about something else instead.

The first thing we need to decide is whether the player will be allowed to change the subject without answering, or whether we want him to be forced to give one of the available responses before moving on to other topics.

Open-ended questions.

If the question is open-ended, that’s fairly straightforward: we implement the quip structure as usual, and perhaps add a feature so that the NPC notices and comments if the player changes the subject without giving a reply.

Restrictive questions.

Alabaster’s system allows us to mark a quip “restrictive”, which means that the player can only say one of the quips that is defined to follow it directly. (See this post for more about “direct” and “indirect” following.) When the latest thing said is a restrictive quip, it becomes impossible to change the subject more broadly, and the NPC also will not move the conversation onward until he’s answered, even if there are more items on his list of planned conversation topics.

This lets us force the player to stay on topic, for the purpose of interrogations or other intense moments when only a handful of responses are sensible — because the protagonist is too polite to ignore a question, because the NPC is in a position of physical or social superiority and able to coerce a response, etc.

Note that if we want the restrictive quip absolutely to compel a response, we must prevent the player from ending the conversation by going out of the room or saying goodbye while a restrictive quip is active. At the moment this is achieved with instead rules.

If the scene is supposed to be especially intense we might even add instead rules to prevent most actions until the player gives some answer. Since this is usually overkill, though, we want a way for the NPC to react if the player says nothing but chooses to WAIT, check his inventory, or otherwise avoid discussion. To this end, quips can also be given some “nag” text: something that the NPC will say to remind the player about the question if the player goes a turn or two (or more) without answering, as in

The nag is “[one of]’I am curious to hear your answer,’ she says again. ‘Could you kill the Queen?'[or]She watches your face.[or]’Well?'[stopping]”.

Without some such mechanism, there’s a risk of, well, this:

“Well, Mr Bond?” demands Igor. “Who is the mole? Speak now or the girl dies.”

Time passes.

You hear nothing unexpected.

Your singing is abominable.

It just doesn’t have that life-or-death feel, does it?

Restriction and Release.

A final possibility: we want something like this.

“Who was that woman with your father?” Mom doesn’t take her eyes off the road, but she’s got a death-grip on the steering wheel.

You can’t think of anything to say about that with Mom’s question hanging over you.

“You can tell me,” she says. “I mean, I don’t care what he does with his personal life, I’m just curious what sort of company he’s exposing you kids to.”

You watch the passing traffic and don’t say anything.

Mom sighs. “Okay, I shouldn’t have asked. I’ll talk to your father about her later.”

“Can you take me to the library this weekend? Mrs. Green wants us to do a report on an African country,” you say. “And we’re not allowed to use Wikipedia and we have to have three resources that didn’t come from the internet.”

Mom makes a face. “If your father had bought the house I wanted him to buy, we’d be living in a district where the teachers weren’t all a hundred and five,” she comments. “But sure, I have nothing better to do Saturday; why not?”

The effect of this is to give the player an extra option — not answering — after a turn or two of indecision if he doesn’t like the responses available to him. Probably not an effect for all occasions, since it will likely give the player the sense of being jerked around a bit. We may want him to feel like he’s being manipulated by another character, but not so much as though manipulated by the author.

Still, there are times when that’s a useful thing to do, and the trick is just to force the NPC to say something new after a certain number of turns if there hasn’t been an answer, thus moving conversation to a new, unrestrictive quip.


It’s probably wise to be sparing about passages in which the player’s conversation options become very limited. If too much of the game consists of answering questions from a short list of available quips, rather than being free to change the subject freely, the player is likely to feel trapped by the linearity of play.

On the other hand, a short sequence in which the NPC interrogates the player tends to produce a sense of heightened intensity as compared with the sequences that are more player-directed and open.

2 thoughts on “Modeling conversation flow: NPC questions”

  1. Hey Emily, the end of the bit under Open-ended questions (“add a feature so that the NPC notices and comments if the player changes the subject without giving a reply.”) looks like a link but isn’t actually functioning as one. Is it supposed to link somewhere?

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