Lately I’ve been working on the IF I started ages ago when I first got into Inform7 (probably in 2016), and contemplating how to proceed. I think it’s kinda big (as of the last build, Inform says it’s 57k words with 146 rooms and 715 things), but a section that could be considered “chapter 1” is pretty much done and beatable (in several different ways), and I think the world has mostly finished being mapped out.
There are several core systems that probably need a lot more work (AI, reachability, food, maybe more), but I think maybe one of the biggest might be conversation. There are a lot of other people in the game (the kinds index says 30), and while “chapter 1” allows interacting with 4 of them, only one of those involves any conversation (and not much at that). But given how “chapter 1” goes, it’s clear that conversation will be important going forward, so I need to think about how it should go. I currently have Eric Eve’s Conversation Responses included, but I’m not using it anywhere yet and not even sure if that’s how I want conversation to go.
So, I guess I’m looking for thoughts on how conversation can work so I can pick the one I like best.
This really depends on the type of game and the role of the NPCs, IMO - are they mostly there to serve as puzzle elements (in which case simple ask/tell might work best as working out conversation subjects is part of the gameplay), is detailed character work part of the narrative arc (here menu-based conversation with deeper characterization of both PC and NPC dialogue is probably best), or are they mostly there for verisimilitude and comic relief (menu-based or ask/tell with topics highlighted so the player won’t spend too much time on incidental characters might make sense)? Or something else?
I will say 30 characters is alot for a medium-sized game, so I’d probably lean towards a more streamlined system to avoid things ballooning.
Note that “30 people” is not exactly “30 characters”. That includes, for example, a kitten you can befriend (which can, though it’s not implemented yet, help you uncover certain things, but certainly won’t be engaging in any conversation) and a crow you need to shoo off to get at certain stuff, as well as the player character. They are not all equal in importance, in other words.
But that said, it is indeed a lot… and there’ll probably be a few more in areas of the map that are only roughly sketched out.
I looked up “verisimilitude” and it seems that a good number of the characters could be said to exist for that reason, so that suggests that this might apply:
are they mostly there for verisimilitude and comic relief (menu-based or ask/tell with topics highlighted so the player won’t spend too much time on incidental characters might make sense)?
But on the other hand, when it comes to the most important characters, I think perhaps this is true:
is detailed character work part of the narrative arc (here menu-based conversation with deeper characterization of both PC and NPC dialogue is probably best)
On the other other hand, the player character is a blank slate with no particular personality. This is also somewhat true of the sidekick character, though to a lesser extent.
And certainly some of the NPCs exist to serve as part of a puzzle. The kitten and crow previously mentioned are obviously among those, but they’re not the only ones.
What exactly is “ask/tell with topics highlighted”? Does “menu-based” mean interaction via a menu rather than via commands?
There are three main types of conversation systems in parser games:
Abstracted. TALK TO NPC narrates a whole conversation and then it’s done. This one’s simple enough to implement yourself that there generally aren’t extensions for it.
Parser-based. NPCs are interacted with via parser actions like SHOW APPLE TO NPC or ASK NPC ABOUT APPLE. Eric Eve’s conversation extensions take this approach.
Choice-based. Conversations are implemented with some sort of menu or choice interface, showing bespoke conversation options at each stage. Emily Short’s “threaded conversation” system is in this vein, and I’m sure there are other extensions that do it with a menu, though I can’t think of any off the top of my head.
Which of these is best depends on the purpose the NPCs serve in your game.
It may be useful to try some games that use the systems Mike and Daniel mentioned. Some of the most popular games of all time use different systems.
Photopia uses a menu based system.
Galatea uses ASK/TELL where you must guess the topics to discuss.
Counterfeit Monkey and Alabaster use the system where it suggests things for you to type and you can choose which one to type.
Superluminal Vagrant Twin uses the TALK TO approach.
Eat Me has no player input on conversation at all, it just happens to you as you walk around.
All of these games show off conversation pretty early on, so it can be useful to play with them for a second to see what they’re like.
Emily Short has some more complex systems in Pytho’s Mask and Best of Three, but they are quite hard to implement.
I did not like Photopia at all. Even limiting my comments to just the conversation, it felt awkward to have to type “talk to Alley” 7 times just to say 7 different things. (Okay, I didn’t actually have to type it each time, I just pressed up twice and enter. I suppose G might’ve worked too but I didn’t try it. Still, that doesn’t really change the argument.) I think it might’ve been fine though if it didn’t go back to a regular prompt after you picked an option but instead presented you with the next set of options.
The conversation in Galatea and Counterfeit Monkey seemed fine. Haven’t had a chance to try out any of the others you mentioned.
(Speaking of Counterfeit Monkey though, that map is quite awesome. Can that be done without any art skills? It kinda looks like the text might’ve been procedurally drawn onto the map. …though this is kinda off-topic here.)
I’ll probably try out Superluminal Vagrant Twin and Eat Me later as well. Are the conversation systems in Pytho’s Mask and Best of Three also shown off early on?
Dialog games also tend to use a menu system for conversation, because that’s what the standard library offers, but I don’t remember how early in Impossible Bottle and Impossible Stairs you can get into a proper conversation.
The Counterfeit Monkey map definitely requires art skills, but if you’ve got an interest in typography, it’s a beautiful aesthetic!
Trying them just now, Best of Three starts off with a conversation that ends in 3 turns, then cuts to a scene where you have to wait 3 turns for another conversation that is the rest of the game.
In Pytho’s Mask you can try TALKING TO the minister in the first room. As an example of changing topics, you can T MOON.
I don’t seriously recommend using the conversation system of these games (it turns out it’s the same system), and I don’t even know if there is an extension for it, it’s just an example of a supremely complex conversation system.
Even if you don’t recommend it, I think it would be bad to just ignore its existence entirely. It might give me some ideas even if I don’t like all the specifics.
If you’re interested in even obscure conversation systems, you might as well try out my game Color the Truth, which has an inventory system of conversational topics that have a single-word name (for typing commands) with a one-line description, and where topics can be combined to create new ones. I didn’t recommend it earlier because it’s essentially just a cosmetic variation of the Counterfeit Monkey system and those who have tried using the extension I made for it ran into trouble, but like you said, perhaps the cosmetic variation might give you some ideas.
Parser-based. NPCs are interacted with via parser actions like SHOW APPLE TO NPC or ASK NPC ABOUT APPLE. Eric Eve’s conversation extensions take this approach.
Alternatively, if there are different characters you play as they could say different things about the same objects. Maybe while organizing your inventory a character is allergic to something, they cannot carry.
If the player repeats dialogue maybe the character could get annoyed as well, making them feel sentient.
My preference for conversation in I7 would either be Eric Eve’s “Conversation Responses” which simplifies and extends ask/tell conversation rules,[1] or the “Hybrid Choices” extension by AW Freyr to make numbered conversation menus which can be affected by and affect the game world.
Response of Bob when asked about Bob:
Response of Bob when asked about “life”:
Response of Bob when told about “[money]”:
Response of Bob when asked about a container:
Response of Bob when asked about something fixed in place:
Response of Bob when told about Jim:
Response of Bob when shown the wallet:
Response of Bob when given the wallet:
Response of Bob when asked for the wallet:
Response of Bob when asked for “sympathy”:
Response of Bob when anwered that “probably”:
Response of Bob when saying yes:
Response of Bob when saying no:
Response of Bob when saying sorry: ↩︎
So I tried out a bit of Superluminal Vagrant Twin, Eat Me, Pytho’s Mask, and Color the Truth. I don’t think the conversation system in SVT really works for me, and I didn’t really see anything that counts as conversation in Eat Me. The list system in Pytho’s Mask seems functionally identical to what HanonO and kamineko just said, only with an extra UI layer over it. The system in Color the Truth seems a interesting but I think it probably doesn’t fit for me.
So if I list the systems I didn’t dislike, we get the following:
Topic-based conversation – there is a list of topics which you can choose to ASK ABOUT (or perhaps use some other verb in some cases). This is like Galatea or Counterfeit Monkey.
Choice-based conversation – you TALK TO the character and are presented with numbered options. This is similar to Photopia (though that one did it awkwardly) and Pytho’s Mask (though not necessarily quite as complicated).
I am not sure that the first of those equates to Eric Eve’s Conversation Responses, so that might be a third option. What extensions do choice-based conversation? People have mentioned Hybrid Choices and possibly Threaded Conversations?
I’ve used Michael Martin’s Quip Based Conversation for this in the past; I think it’s a bit less robust than some of the alternatives but it worked pretty well.
I’ve seen that one (and I’m also in an IRC channel with him so I could actually ask about it if needed!) but I thought I remembered it being more keyword-based than choice-based. Though it’s been awhile since I looked…
There’s a funny architecture where QBC relies on another extension, Reactable Quips IIRC, that might be more what you’re thinking about re keywords? But QBC does menu based conversation just fine (if you want to check out what it can look like, I implemented it in my game Sting, which has a conversation in the first couple minutes and publicly-available source code).
That is definitely choice-based, yeah. And I can see it allows commands to be intermixed with the choices at least to some degree, which seems good if I want the player to throw in a “SHOW LOCKET” command in the middle of conversation. Pytho’s Mask also seems to allow that. Do other choice-based systems allow it? I think I remember Photopia not allowing that…
I believe most of them allow you to intermix regular commands by default, but it’s possible to lock the player into a conversation if necessary (that’s a generalization based on incomplete information, though, so take it for what it’s worth!)
Hmm. It seems that QBC disables the ask, tell, and answer commands, which might be fine for my purposes, and also disables requests, which is not fine at all…
Conceptually, dumping the quips for every NPC into one giant table also doesn’t feel so good to me, though I suppose it could be split up into any number of “continuations” to keep the lines near the NPC in question in the source, but still…