I’ve been playing through a large amount of XYZZY winners/nominees as well as IFComp winners and others. I’ve seen a lot of different conversation systems. The main systems seem to be:
- Menu-based
- Ask/tell about a hidden list of topics (sometimes shortened to ‘talk about’)
- Ask/tell about an list of all topics (or of most topics; this is common in TADS)
- A combination of the above (like Best of Three or Pytho’s mask)
I’ve been thinking for a long time about ways of making conversation more like the rest of a parser game. My initial idea was to take a pre-existing conversation game (like Glass) and represent it as a hero sailing a boat in an underground cavern, with different directions corresponding to possible topics; as you travelled, you’d hear the conversation play out around you.
I dropped that idea, but now I have an idea that I’m trying out that seems actually kind of fun. I’m modeling conversational topics as inventory objects which you ‘pick up’ in conversations or by examining things. Speech is handled by ‘giving’ topics to characters, which can release new topics. Some topics disappear over time, like responses to questions. Standard Inform responses actually work really well for this (if you don’t implement a response for a topic, it will say things like ‘Sally doesn’t seem interested in that’ if you try to talk about it).
I wanted to try this, because one of the key tropes in parser games is not knowing what items will be useful then, and feeling like you can try anything at any time.
I was scared to try and implement this, so I decided to make an Ectocomp toy game based on it, and it’s been surprisingly easy to code, as Inform is great at picking up things, giving them, listing them, changing what’s in your inventory, and performing actions based off of what items are where. It’s also very easy to integrate items and conversation, where showing items to characters provokes new topics. I’m about halfway done with my time, so it will be pretty small.
I was wondering if anyone else would be interested in trying this kind of conversational system, where you have an inventory of topics. Currently, my items appear in the inventory like this:
[code]>i
Items:
A pumpkin
Conversational options:
Greeting-“Hello! My name is Chris.”
And conversation works like this:
give greeting to woman
“Hello! My name is Chris!”
“Hi, Chris. My name’s Pat.”
[New topic: About Pat]
i
Items:
A pumpkin
Conversational options:
Greeting-“Hello! My name is Chris.”
About Pat-“So, what do you think about Pat?”[/code]
(Where here, you gain the ‘Pat topic’ to discuss with other characters. If you try discussing it with Pat, they give you a funny look).