Previously, I’ve talked about conversation systems and my discontent with them. Talk is cheap; so in addition to complaining about it, I’ve been working on an engine called Mouthwash to make these ideas more concrete. Eventually I do plan to develop some games with it, but for now it’s a lot of notes and a rough testing framework with some basics implemented. I’m going to start blogging my progress here, both to collect my thoughts and in hopes of some feedback along the way.
Here’s the rough overview: Mouthwash is about defining conversation acts in terms of their function. Those functions include changes in four domains: emotions, relationships, viewpoints, and intentions. Speech acts range from basic to specialized and advanced, like RPG skills. The success and failure of speech skills is determined by something like D&D mechanics, including rolls based on character stats. NPCs choose skills based on their current intentions.
The longer version: Mouthwash is mostly inspired by pragmatics, the study of how language derives meaning from context. In practice, pragmatics theorists talk a lot about the function of speech, because that has a lot to do with how listeners resolve ambiguities. Theorists have come up with various lists of “speech acts” and what they do to the context of a conversation. For example, you might create an intention in someone else with a request; commit yourself to an intention with a promise; express an attitude with an opinion; and so on. These acts are remembered by your listeners, who use the newly changed context to determine their own speech acts.
This perspective really useful if you want abstract conversation in a way that lends itself to tactical gameplay. What you need is a set of variables that define the state of the conversation. They should be general and abstract but also meaningful enough to remind you of real conversation. The Sims does some of this, but the only real variable is the “Like” score between two sims, and some relationship stuff. That’s a start, but once you include more semantic things like intentions and viewpoints, things start getting really interesting. You can actually start playing with an NPC’s AI by changing their goals, for example. That sounds like fun. At least I think so.
There’s a lot of moving parts here, and a lot of this hinges on whether I can come up with a good set of abstractions for the four domains. Ideally, they’d be as simplified as possible while still leaving lots of hooks for good gameplay. Figuring that out will probably be a pretty agonizing process. But everyone needs a hobby.