Games that do conversation well

Hello all,

The two and a half Inform games I’ve written thus far haven’t really delved into the intricacies of conversation. When I started I figured conversation was a complex topic all of its own that I didn’t need to confuse myself with while learning to program IF in general. In my first game, I used a technique where “asking” and “saying” and all those other conversation-verbs worked in exactly the same way, and the NPC’s simply gave you five soundbites of information when you spoke to them, in any way, five times.

I’ve played a lot of old-school IF, but not a lot of newer, so I haven’t learned much about conversations through playing either.

Now I’m ready to start thinking about it, and I’d like to solicit opinions. In the case of inform, do players really pay a lot of attention to whether they’re “asking”, “saying”, etc? Is it desirable to program different responses depending on which of these verbs was used?

Do most programmers use a table with keywords, where certain words from the player elicit certain responses from the NPCs? What are some of the other techniques?

What are some IF games that I can play around with, that do conversation especially well? For this exercise I don’t really care if they are stellar games in any other capacity. I’d just like to learn something about what a good implementation of conversation looks like.


Emily Short’s Galatea is the gold standard of realistic ask/tell conversation, that also incorporates a narrative that hinges on whether the PC can actually believe the NPC is a real person. As an example, if you ask the NPC the same question several times she might (depending on the context) suspect that you’re testing her to try and get her to repeat herself robotically.

The Elysium Enigma by Eric Eve is a nice demonstration of the concepts that Michael J. Roberts feels are good for IF games and made easy to implement in TADS 3 (and which Eve has also made available in Inform 7) - namely topic inventories and conversation ‘nodes’ which prompt you with non-standard interactions (“You could laugh or cry.”) I… don’t actually feel that some of the choices here are especially sensible - eg. having to ask about something several times to get all the facts, or the way it’s possible to get the characters into a state where the narration will only provide you with summaries of what they’ve already said and the NPC is left strangely mute.

Adam Cadre’s Photopia is the first game with multiple choice conversations that comes to mind. I think it shows that strong dialogue coupled with a simple system of interaction can result in something that’s still very compelling.

Pytho’s Mask, again by Emily Short, demonstrates a hybrid ask/tell multiple choice conversation system where you can pick options from a menu or ask characters about subjects that may open up new choices.

Andrew Plotkin’s Spider and Web only allows you to answer yes or no in conversation - although the conversation is actually an interrogation.

And for the sake of completeness, my own Gun Mute includes a character who is unable to talk and can only point at objects, wave, nod or shake his head (essentially an ask/tell system limited to visible objects).

I think in general you can give the same response, unless it’s on a subject where the PC specifically knows more than the NPC - in which case the player might be expecting to be able to fill the other character in on the details, or at least get a response as to why the PC doesn’t think it’s a good idea.

Here are some useful links: Articles about conversation, games tagged with “conversation” at IFDB and a one-room conversation game poll.

My opinion is that it’s good to implement at least ASK and TELL separately. There is a difference between the PC informing an NPC about a topic and the PC inquiring about the topic. When players use those commands, I think they have in mind whether they are imagining the PC giving out information or (more often) begging for it. If they don’t care whether the PC is asking or telling, its probably because they already have a feeling that the game is not immersive enough to differentiate. I think implementing ASK and TELL as separate commands may do more for realism and immersion than making the NPC say a different quip each time it is asked about the topic.

I could see how implementing SAY as a third conversation command might further increase the player’s level of engagement and immersion. I don’t think a SAY command would have nearly as much applicability, but if the author took the trouble to have NPCs respond to certain words that the player can SAY, I think that would be awesome!

Just my thoughts. Good luck. :wink:

Thanks so much for all the replies and opinions. The examples and links are very helpful. I especially liked Nitku’s link covering the various ways conversation has been implemented.

I have more to comment but have had a family emergency and haven’t been able to follow up. I appreciate the info and would love to talk more about this soon!

This is the link that I found super helpful:

It covers all the various ways anyone has ever done conversation, to the author’s knowledge, with the pros and cons of each. Here are its basic conclusions:

Cheap AI/Keyword matching (responses from NPCs are derived from keywords in PC’s statement/question) - Lacks context sensitivity, fails to cope with homophones, doesn’t fool anyone

Ask/Tell - doesn’t maintain a conversation state, is unnatural, NPC may repeat itself, limited range of expression

Menus - can create a “menu maze” that the player feels the need to exhaust, eliminates guess-the-keyword problem, awkwardly breaks from the usual UI

Hyperlinked replies - same pros and cons as menus

Menu-less TALK TO (PC initiates conversation, but has no control over what is said) - is context-aware, decreased player interactivity with increased authorial control, is too distancing

Emotion words rather than talk words - never satisfactory implemented

Avoid conversation (such as setting game in a foreign land)

NPC asks and PC responds - contrived, limited

The author’s recommendations:

Use ask/tell with full exchanges, perhaps with topic suggestions (sort of like a menu)
Don’t hide important info in conversation at all

After reading about all this, I was left preferring what the author calls “cheap AI” – but he was pretty critical of it:

Do others really find it that unsatisfactory? Ask/tell isn’t too bad, maybe even better with topics. But I do find myself really not enjoying a menu system when I encounter it in a game.

It was enlightening to see the many possible other options – the article was exactly what I was looking for.

I agree with the article that if I play a game with cheap AI, I just use keywords, so you might as well use an ‘ask about’/topics system, which I think is much easier for people unfamiliar with parser-based games.

That said, I think IF can really shine when the conversation system is not just tacked on to the game structure, but integral with it – Spider and Web and Failsafe come to mind. This does kind of leave you hanging if you need a general purpose system – but maybe the trick is to figure out how to more fully integrate the conversation system in the first place.

I did play a game with cheap AI once. You get exchanges like this:

Player: I think John is a horrible person.
NPC: John lives in the old windmill. I hear he’ll pay good money for any dragon’s teeth you give him.


Player: I feel like an idiot for not realising that.
NPC: There’s no need to call me names!

And you realise pretty quickly that you’d have got the same response if you’d just typed ‘John’ or ‘idiot’ by themselves.

One of my favourite conversation systems of all time is the one used in the SNES RPG Shadowrun. Highlighted words appear in the dialogue, which are then added to an inventory of topics that you can bring up with anyone else. To start with you can only talk about a few things, but eventually you’ve got all sorts of topics to discuss.

Exactly what ‘using’ a word entails is left open to interpretation, which meant there could be some funny exchanges when a discussion turned out to use a word in a different way than you might have expected. (Most of the time you just got a default response, though…)

Could you use this system in a typical IF game? Probably. But I suppose you might have to limit the number of topics to make them more easy to display without a GUI.

This is what I am planning to implement for an IF/RPG. A similar system was used for Ultima VI, I think. I may attempt to turn it into an extension, but I’m going to study how ask/tell works in adv3 first. (I haven’t even started to think about conversations yet - still on page 60-ish of “Learning TADS”.) It may be that one can just modify the library, as opposed to building something from scratch.

I was very inspired by the conversation and the prose in general in Galatea.

As a random side note, I think I have a hard time switching from left brain to right; while I’m making my logic work correctly I’m not in the best shape for writing pretty prose, even though I’m capable of it at other times.

So I think I’ll start following a process whereby I do one before the other. Creating the game with simple placeholders where the text would go, and then filling in better text when it’s all working, is the obvious way. But I can also envision being inspired by the story first and writing it all down in paragraph form before starting on the game construction.

Does anyone ever do this?

I do this when there’s complex logic involved - for pretty much the same reason you said. Although I find it is possible to get into the right frame of mind to do both when you’re familiar enough with what you’re doing.

I’m vaguely surprised Alabaster hasn’t been mentioned, given that most of it is a conversation, and a remarkably fluid and engaging one at that. It makes use of the ‘topic inventory’ concept that article mentions, and does it extremely well.

On the other hand, I hadn’t bothered trying Galatea until I saw this thread…

… and I don’t know if it’s just me, but I find the opacity of Galatea somewhat infuriating and baffling. It’s utterly unclear how to push things forward, at least so far, and on several occasions I tried to make use of what looked like an intended conversational hook only to get this maddening response:

You can’t form your question into words.

I don’t know about other folks, but this type of response is a large part of why I’m growing to hate the tendency towards second person in IF.

I get the rest of your criticism, and indeed player responses like yours to Galatea are part of the reason Alabaster is designed as it is.

But I’m not clear on how the problem has anything to do with the use of the second person; wouldn’t it be just as annoying (in the sense of the computer failing to carry out your wishes) if it said something like “I can’t form that question into words”?

I don’t know if this is what ALear was thinking, but I can see how the second person can be more annoying. “You can’t form a question” feels like the game is saying that the player can’t find the words or phrase the question right when in fact the player probably does know how to form the question, but it’s the parser that doesn’t know how to handle the input. The parser is basically accusing the player of its own limitations. It feels more honest and less annoying if the parser acknowledges the true reason why the input wasn’t accepted.

(I suppose this also depends on how much the player feels like “you” is referring to the player directly, or is the player taking some role while playing the game and “you” refers to that role and not to the player himself.)

Yeah, the intention (at least) is that it’s the protagonist, not the player, who is limited about what to say. (Which is consistent with the rest of the game, after all – it’s the protagonist’s childhood, etc., that will be described if you talk to her.)

I’m trying a method I first saw in Ultima 6 with the game I’m working on now. Words that are valid topics appear in different colors, and if you >think about characters to get a list of currently-available topics.

(It’s probably been done by a ton of text games that I can’t think of now.)

I was playing through The Circuit’s Edge a few months ago, and I think I’ll try its method next. TCE gives you a menu with about three choices (say hello, say something complimentary, say the most terrible thing you can think of) and then an option to “TALK ABOUT.” But I don’t know. Maybe a combo method would actually be worse.

There’s no great way to implement it, and I guess you really have to think, as an author, that you’re making a game, and you’re going to implement an arbitrary method of communication, and just try to make whatever method you choose as fun and engrossing as possible.

I understand that a common criticism to ASK/TELL might be “it feels unnatural”, but it doesn’t have to. “Anchorhead”, whose conversations comprised entirely of ASK/TELL, was the first IF game in which conversation felt extraordinarily natural. I suppose it’s all a matter of coding and design, as it usually is.

I haven’t played Pytho’s Mask, but if it’s like City of Secrets, then I have to second that - it’s a mixture of ask/tell and topics-based, which can give very interesting, broad, detailed results. Hell to implement, I’m sure, but heaven to play through. More than once, in the case of City of Secrets.

I did implement something in my WiP in an attempt to make an ASK/TELL system sound more natural. I made it so that typing “NPC, topic?” or “NPC, topic” would ASK the NPC about the topic, and “NPC, topic.” or “NPC, topic!” would TELL him/her about it. It had the advantage of working seamlessly with a “say” command which has been mentioned very early in this thread - “NPC, hello” (or “NPC, hello.”) would be as easy to parse as “NPC, John”. And it would only be a matter of adding extra responses to “NPC, where is John” or “NPC, who is John”. Downside is that I couldn’t find a way to then restore the original Inform ability to command characters about, but it didn’t bother me for my WIP.

When testing the game, I personally found it much better to type this than to type “ask NPC about TOPIC”. Felt more natural, even though it completely strips away the illusion of it being anything but a keyword system. “Carmen Devine”, I was surprised to see, implemented something similar, without the punctuation marks, and I was glad to use that alternate style of conversation.

Other than this, I can only echo what has been said - it depends mostly on your game, and on your design, and on your writing, and what you feel comfortable with. Apart from Cheap AI, which I find pretensious and frustrating, there is no wrong answer, and the answer you feel right with is sure to be the right answer. Experiment! :slight_smile:

Which is part of why I dislike second person. When there’s not intended to be a real distinction between the player and the character, second person works… but when the player character has their own history, their own thoughts, their own methods, then the division shouldn’t be blurred so much.

That is a separate entity, so why should the game confuse me and this other person?

EDIT: I just realized this might have come across a little more negatively than I intended. I’m just trying to convey that, at least for some of the audience, this kind of conflation makes it a lot harder for us to enjoy what is otherwise well written material.

I wish IF authors would use the first person more often, but I do think there is a use for a second person narrative in a game with a characterised PC.

In a game where you are supposed to enter the character’s head and think like them, I think referring to them as ‘you’ can be appropriate and even powerful.

On the other hand, if the game wants to tell a character’s story more than it wants to put you in their shoes (especially if you’re not going to be making many choices on their behalf), I think first person feels a lot more natural.

I’ve been following this last part of the conversation in a slightly confused manner.

Em, am I to understand that when you, the player (represented by an art critic), type in a command to question the NPC (Galatea), and the response is “You can’t form your question into words”, that the “you” referred to is Galatea? Why would she be attempting to form a question in response to your question?

I didn’t process it that way, especially since responses are built into Inform like “You jump on the spot, fruitlessly” after the PC says “jump”, clearly mapping “you” to the PC. I’m not saying you built this in Inform (don’t know), but that it seems like a convention that could cause confusion if broken.

That said, responses like “You can’t form your question into words” don’t bother me. I realize I’m playing IF, and that there are going to be a million things I can say that will garner a default response, because they aren’t part of the story and weren’t implemented. I don’t really care how that default response is written.