Choosing a dialogue style

Now that I’ve made adequate progress with fleshing out my story, map, and items, I have to face a decision I’ve been putting off. It has to do with choosing the type of dialogue system I should employ. I don’t want use a menu style, and as far as I know, that leaves me with two general approaches:

  1. ask/tell about method:
ask the longshoreman about the parbuckle
"What does that thing do?"
He replies with a snort, "Nothing your type would be interested in."
  1. Direct dialogue when in the presence of certain NPCs (without needing to use ask/say/etc):
Why am I here?
"We want information.", says the pudgy one in the chair.
Whose side are you on?
"That would be telling.", he replies.
Why did call me that?
"I said that you are number six, because that's who you are."
I am not a number. I'm a free man.
The man laughs.

I much prefer the second method but I fear that it is beyond I7’s reach, maybe even requiring an openAI level of capability. Is this truly the case?

Is there another approach I should consider? The ask/tell style feels like a compromise that breaks a bit of the immersion for me. Yeah, I know it worked for Cyrano de Bergerac, but…


I’m not trying to shoot down your question; I just have a different take on this issue. I think the magic of parser IF is the illusion of freedom – not actual freedom. There aren’t any games out there where players can do absolutely anything they think of. This isn’t just because of the limitations of computer AI; if allowed, it would be impossible to guarantee the telling of a particular story. Conversation is an extreme example.

Imagine an AI-driven conversation with an NPC where every conceivable question or statement was followed by a sensical response. Even if this were possible (with Inform, ChatGPT, or whatever), would it be desirable? Every response generated by the AI rather than the story author could potentially become a red herring. How would players know if they were asking the right questions?

Having said that, coming up with a conversation model which performs the illusion of what you want, while keeping players on track with the story would be cool indeed.


Not to be flip, but now much of your life would you like to devote to this game? Probably the best example of approach number two is Facade, which is entirely focused on conversation/“interactive drama” – it was I believe a full-time job for a pair of academics and wound up being compelling but also still very wonky.

It’s not so much that this kind of thing is beyond I7’s reach – it’s beyond anything’s reach. In addition to AI Dungeon, there have been various chatbot games that can succeed well enough at what they’re trying to do, but the LLM approaches are all vulnerable to the same issues – making stuff up that won’t match what’s actually been established about the world, getting confused, breaking character, etc.

(The alternative, of trying to manually code up this kind of dialogue parsing, would be an incredible amount of work, requiring probably round after round of testing, and is still almost certainly going to be very wonky even after all that).

There’s a reason why after decades of experience, IF – and narrative games in general – have converged around keyword-based ask/tell and choice-based menus. Does that mean new approaches can’t work? Of course not, but I’d be very wary about doing something radically different without being clear-eyed that that’s going to be the major focus of your project and it’s going to multiply the amount of effort required by at least a factor of ten.


You could direct it to pick up on keywords and offer responses based on a single keyword or set of words. But that wouldn’t work for a question like “Why am I here?”.

But usually I am interested in asking NPCs about objects or puzzles or other people or themselves, and I think that’s pretty standard, so picking up on keywords could do a lot of what you want, as long as you have a conversation-triggering command like TALK.

I don’t think people want to type out ASK LONGSHOREMAN ABOUT THE PARBUCKLE, so I’ve been using a TALK (T for short) command-- so T PARBUCKLE (or TALK PARBUCKLE or T ABOUT PARBUCKLE, etc) would be the command. This only works when there is one NPC available to converse with, and it takes some good error messages and player training to get them out of the long form of traditional conversation.


Most Interactive fiction is trying to be a story and/or a game.

From a story viewpoint, you want the action to progress without getting bogged down. There needs to be some narrative arc.

From a game viewpoint, players need to have the controls clearly communicated. In this case, the “controls” are the commands you type.

Either way, story or game or both, it’s essential the players know what they can type to get a good response.

With the method you describe, you’d have to be explicit about what kind of commands you can type.

Inform actually supports direct dialogue if prefaced with the npcs name and a comma. Like “Brian, who are you?” It’s called the Answering it that action.

It was used in early Infocom games but it makes it hard to guide the conversation as there are so many possibilities.

I prefer any method that is clear to the player. I have had the most success worth a modified topics method that lists possible topics (I have an extension that does that), the second most success with just numbered menu Dialog choices, and the least success with Ask/tell. I had a game where I wrote hundreds of responses to ask/tell about literally every noun in the game from literally every NPC, spending months, and everyone hated it because the responses were bland.

Edit: Just going to throw out the way my extension looks in game:

You can also code it so topics that are related can be ‘linked’ to make new topics.


I wrote lots of responses to questions to a ship’s computer and no one really looked at them. Players generally are not interested in diving into the depths of a conversation’s possibilities, they want responses that advance the plot. That’s the conversation that worked for me. For that a topics method like yours (Brian) is really strong.


I think some games are very much suited for the ASK ABOUT command but just as @AmandaB mentioned, it is very slow for the player to write ASK LONGSHOREMAN ABOUT THE PARBUCKLE. So we might as well offer some short cuts. I don’t think those who loved the old days with ASK ABOUT would mind if it was shortened to A TOPIC or T TOPIC as AmandaB proposed:

The only detail I’d like to mention is that ASK would be more natural than TALK here in my opinion. I implemented A TOPIC in my game A Difficult Puzzle.

EDIT: In case of 2+ NPCs you could first TALK TO JOHN: You are now in conversation with John and all questions will be directed to John. (or something like that)


In a way, you can do this with the Threaded Conversation extension, as used in Counterfeit Monkey. Mind you, it is menu-based, but hides the menu:

We want to explain Brock’s probable reasons or ask whether we can leave now.


“So talk to me,” we say. “Is everything ready? Can we leave?”

Basically, it presents a list of topics, but understands many synonyms for each possible reply, so that, say, ASK ABOUT LEAVE will work in the example above. It also understands some topics not on the list, You can always ASK ABOUT things in scope, for example, and you can have any number of “hidden” topics which won’t show up in the list.

The advantage of this is that it creates the illusion of greater freedom compared to a simple numbered menu.


I think mimesis or immersion has more value as a concept than it does in practice. It sounds good to say we want something to be real, or believable. Naturally, who wouldn’t want those things?

Except people seem to like licking things, or yelling, or going PLUGH, or whatever their poison is in IF games, whenever we leave mimesis at the curb. I don’t think the case has been cracked when it comes to mimesis. It’s important, but I’m not sure I’ve read a fully satisfying theoretical treatment of it. There was a lot of critical hay made, years ago, about “ludonarrative dissonance,” but eventually I think everyone realized that a lot of those games were more dissonant in theory than in they were in practice. They remained interesting and fun in a very theory-resistant way.

I also think it’s common for freedom to be mistaken for immersion. If the Chief of Detectives in Deadline could ask Mrs. Robner about MY TIE or GORILLA GLUE or THE SUEZ CANAL or else say MRS. ROBNER, WHY DON’T YOU OWN A CAR? or even MY COUSIN LOOKS JUST LIKE TELLY SAVALAS that would be more free, but less immersive. And probably less fun, unless you didn’t want to solve a mystery in a mystery game.

I’ve found that many players of games (I am one) like knowing what the rules are, and that they enjoy conventions that lead to reliable results. This is sometimes related to one’s conception of “fairness,” or, at a more mechanical level, “solvability.” We often enjoy games because they might be more fun than some parts of everyday life are. I think there are many reasons for this, but I imagine that one of them is that a game can be fair in ways that life cannot be. That requires limits, not boundless horizons.

As a writer, I would never be interested in letting some agent or service produce text, on the fly, in something that I made. My writing matters too much to me. But that’s a chicken or egg thing. I think some people are in this for the writing, and others are in it for the tech. Or some mix. I see the tech as helping me tell stories. I’m in it for the stories. Stories that I write, I mean.


That’s one of the foibles of parser IF (and certain other types of games): The author in most cases has very little control of pacing and plot momentum. Since real people don’t need to consult lookup tables, conversations usually progress effectively. If you don’t ask the Salty Pirate about “LOOM” in real life he’d finish his grog, leave the tavern to catch his bus and you’d miss out on that entire side quest.

(For reference this is a Monkey Island joke making fun of the “NPC Has One Job” trope - the pirate gives single-syllable answers to everything but wears a button that says “Ask me about LOOM!” and when you do he launches into a sales-pitch for one of the company’s previous games. Guybrush of course lampshades this.)

But this is why I’ve said before that parser games tend to excel when it’s “character exploring the aftermath of Something That Already Happened (with interactive conversations being rare or absent)” because typical players want to comb every nook and cranny before proceeding. So it’s quite typical that (if the author doesn’t want to be cruel) the flight attendant will stand and announce boarding for the player’s flight in increasingly assertive tones while the player looks for gum wrappers and loose change under the seats of the waiting room and reads all the signs, then explores the bathroom and makes sure the faucets and the toilets all work as expected. I parodied this in Cursed Pickle - the only person who can rescue the orphans from the burning building is the player - using one of their skills or wandering away to go find the key and coming back a good deal of time later to find the orphangage still blazing and people still fretting about the orphans inside but not doing anything, holding in place for the hero to do their thing.

Long story short, too late, this is why conversation is difficult - especially with ASK/TELL: You get characters idling with their ambient comments until the player finally hits a keyword they can discuss.

Potential ways to dialogue (not all-inclusive):

  • Use a conversation menu tree where the player chooses a pre-authored response. Inform 7 can be gimmicked to do choice menus with several different extensions. This has the advantage that you can force the player to lawnmower important subjects.
  • Prompt the player. Threaded Conversation and other solutions will have the parser suggest ask/tell phrases, usually in helpful italics, to prevent conversation lag. You could ask Bob about his wallet, the weather, the secret mission, or his untied shoes. This is essentially doing a conversation menu tree without doing a conversation menu tree, adding an eager-to-help director over the player’s shoulder reminding them of their next line.
  • Don’t rely on the player to move the plot. If the story can only progress if the murder victim is discussed during dinner, have another character bring it up and guide the conversation, perhaps letting the player respond YES/NO at pivotal moments. Even better, fool the player’s agency - they can bring up the victim, or if they don’t, another character will do so and make sure plot details aren’t skipped.
  • Let the player be mute protagonist. This only works in certain situations and often can get ridiculous the longer it goes. “I can tell you think that’s a good idea, let’s go!”
  • Let conversation be scenery. The player doesn’t pick anything they say, and the game basically cutscenes necessary conversations when the right people are together under the right circumstances. Maybe the entire murder mystery is solved by the player luring the correct suspect into mere proximity with the detective.

In short, still too late, sometimes too much extra detail can ruin plot momentum and create unnecessary work for the author. Trimming red herrings and dead end conversations are a reasonable trade of agency for plot momentum and pace. I tend to err on the side of fooling the player into thinking they have agency but actually are on a moving treadmill toward where I want them to go.


----pulls head from under sofa cushions, spits out gum wrapper, cocks neck like chicken when the grains hit the ground…----

“Faucets! There are faucets?”


Another option:

> talk to <npc in the room>
Conversation with uncouth barbarians is beneath you.

That’s one I kind of missed - sometimes a good happy medium between “dialogue as scenery” and ask/tell - have one TALK TO command that always initiates an entire “cutscene” conversation about relevant topics based on the situation rather than making the player remember topics and whether it’s best to ask or tell or show or greet or…


For an older-school game (in which category mine would fall) I like ask/tell, because it just provides another occasion for the player to have to use deduction/inference/lateral thinking to ask or tell the things that will advance the game. But then, I come to IF for gameplay and solving, not with the goal of reading a story. I love a fun or well-done story wrapped around a good game though…


Definitely. There is an art to devising conversations that don’t feel like the NPC spouting ambient idle quips while the player keeps trying to feed them the right token like a slot machine!


A huge part of the difficulty here is that if you don’t railroad the reader along a tightly pre-determined conversational track, most of your responses will never be read. Which means either that they’re probably mostly banal, or alternatively, if they’re carefully crafted and worth reading in their own right, you expended much effort (perhaps most of the time you spent crafting text for your story) in vain.


This is in some sense exactly the same problem that all IF writing has! If you write carefully crafted object descriptions and the player never reads them, that effort is for nothing.

However, traditional IF object manipulation is pretty strongly hinted. (Players like to examine every object the game mentions, particularly if it’s called out as interesting.) IF dialogue feels like it “ought” to be more freeform. This is more or less the problem that IF dialogue systems have been trying to solve since day one.


Yeah. It seems to me that the problem with conversation is just an order of magnitude higher.


Interestingly, Fallout 1 actually implemented both of these.

They had a traditional branching dialog tree that you selected preauthored choices from, but they added a “Tell Me About” feature as well.

During a dialog session with an NPC, this feature allowed the player to click the “tell me about” button. This loaded a very simple text parser that allowed the player to type in a word. The NPC would give a response if they had anything to say regarding the word entered.


Which topics an NPC would repsond to were unknown and the player was then essentially playing twenty questions.

Sadly, most players didn’t use this feature much and it was cut from future games.


They also tried very hard to make “text parser” conversations in the otherwise graphical adventure Starship Titanic.

The game features a text parser similar to those of text adventure games with which the player can talk with characters.

They of course advertised it as “natural” and possibly AI, but it wasn’t a parser, and likely just keyword lookup.

Adams aimed to develop a text parser-based dialogue system as opposed to the drop-down conversation menus of contemporary adventure games, in which player have limited dialogue options.[28][29] The text parser includes over 30,000 words and 16 hours of dialogue recorded by voice actors.[17] According to Adams, over 10,000 lines of dialogue were recorded for the game.[16] In order to make conversations with characters convincing, The Digital Village’s Jason Williams and Richard Millican created a language processor called SpookiTalk, which was based on VelociText, a software developed by Linda Watson of Virtus Corporation.[26][30] Producer Emma Westecott thought the processor was preferable as common text-to-speech programs “made the voices sound cold and distant”. Douglas Adams claimed that they made “all of your characters sound like semi-concussed Norwegians”.[31] The bots in the game understood around 500 words of vocabulary and were capable of conversing with the player as well as each other. According to Westecott, the developers’ intention was “getting into characters” and cited games such as Myst and Mortal Kombat as contemporary games that lacked “proper interaction” with human characters.[32]Williams and Millican modified VelociText into SpookiTalk in order to improve recognition of complicated sentence forms from players, as well as reducing repeated responses, and retaining a character’s memory of an object or topic as a conversation progresses.[30][33][34] Additional dialogue support was done by linguist Renata Henkes.

In theory this is great, but I remember ending up just shout/typing keywords at the NPCs.