Archive

Archive for the ‘Mouthwash’ Category

Trapped in Amber

November 19, 2011 6 comments

Last time I checked in with you guys about Mouthwash, I mentioned that I was no longer sure I wanted to use D&D-style dice rolls to determine skill effects, but didn’t know what to replace it with. On Twitter, Stephen Winson suggested I look into a diceless tabletop roleplaying system based on Roger Zelazny’s fantasy series The Chronicles of Amber. So I did.

It’s called the Amber Diceless Roleplaying Game, created by Erick Wujcik, and I was taken with it pretty much immediately. I read through the manual over the last couple of weeks and came away pretty intrigued by the concept. (If not by Zelazny’s books, which appear to be remarkably awful if the excerpts in the game manual are representative.) There’s a lot to the system, and much of it isn’t something I’m interested in copying. But I love how it handles determining the success of actions without using dice. Having read the manual, it’s actually both simpler and more nuanced than how it’s described in the Wikipedia page.

Read more…

Categories: Mouthwash

The Next Step

November 6, 2011 11 comments

A screenshot from Mouthwash testing, showing a short and nonsensical dialogue between two characters name Roni and Maryam.

Fuckin’ Shakespeare, I know. But this insipid nonsense represents an important step forward for Mouthwash, because Maryam (an NPC) is now capable of having goals: in this case, making Roni (the player character) happy and expressing her own emotions. She’s also capable of taking simple steps to meet those goals, provided she has access to a skill that will instantly produce the intended effect.

What’s going on in this exchange is that Maryam initially has the “make Roni happy” goal. Since she doesn’t know Roni’s emotional state, she uses a skill (Query Emotion) that will give her that information. Questions, when successful, have the effect of giving the listener the goal of providing the given information to the speaker. So when Roni dodges Maryam’s query with one of her own, Maryam now has the goal “express my emotion.” She does so, and is now happy because she achieved a goal. This also makes her old “make Roni happy” goal the new active goal, so she asks for the information again, and this time gets it: Roni is calm.

And that’s where things fall apart, because Maryam doesn’t actually have any skills that can make Roni happy. The bit where she says “Oh no, I’m incapable of making plans!” is just an error message triggered when the agent can’t generate any moves. (Roni ends the conversation by lying, but that’s not important right now.) This is a point in the development of this system that opens up a few questions, which I’ll be tangling with for the next week or so. Namely:

1. How should skill effects work?

2. Should I have a class system or not?

3. What’s the best way to handle AI plan-making?

Question #3 is going to take some trial and error more than anything else, so let’s put that aside for now. Questions #1 and #2 are a little more philosophical. I intended from the start to have classes in Mouthwash, but I’m starting to question that. There was a bit of talk on Twitter last night about Skyrim‘s abandonment of classes in favor of pure skill-based character development. It sounded like a good idea to me – god knows I’ve never played an Elder Scrolls game with anything other than a custom-classed character – and I started wondering why I was so stuck on classes in my system. I suppose I’d always thought of it as a way to organize skills and make the possibility space of character development less intimidating to a player, especially given that this is going to be kind of a weird system. But maybe that’s unnecessary, and I can get that organization with skill trees without putting up walls between classes?

The most urgent question is #1, as I’ll be working on it today. At this point, since I’m just testing things out, skills are always successful. But pretty soon I’ll need a way to make that success dependent on character ability and the situation. I’ve always figured that I’d use a quasi-D&D-ish system for skill effects. That is, there’s some chance of success for each action based on the stats of the speaker and the listener, plus any other buffs or debuffs in effect. But then I imagine a big conversation with more than two speakers, all with potentially conflicting goals and play styles, and I wonder if there’s not enough uncertainty in the dynamics of that system without dragging random rolls into it.

So, what do you think of classes vs. skill-based systems? Is there a good way to design a system that takes character stats into account without using dice rolls?  Let me know your thoughts!

 

 

 

Categories: Mouthwash

A Mystery to Herself

October 21, 2011 Leave a comment

Hey, so blog’s on hold this week after all due to personal matters. I’ll be back in a week or so. I’ll have a bit more to say about Mouthwash then, since I’ve actually made progress on the AI basics after a long stretch of brickwalling.  For now, I leave you with the observation that programming social behavior often produces weirdly poignant errors:

Error code from Java debugging, in which an NPC fails to find her own emotional state.

Categories: Mouthwash

Mouthwash: Viewpoints

August 31, 2011 6 comments

In previous discussions of Mouthwash, I’ve mentioned that there are four domains in which actions can take place: goals, emotions, viewpoints, and relationships. I’ve talked a bit about goals and emotions, which brings me to viewpoints. This was the domain that scared me the most when I started sketching out Mouthwash, because it’s the domain that deals with knowledge.

Read more…

Categories: Mouthwash

Mouthwash: Emotions and Stats

July 22, 2011 6 comments

The time has come to check in again on the Mouthwash conversation engine. Earlier I mentioned that speech acts in Mouthwash have effects in four domains: goals, emotions, viewpoints, and relationships. Basically, this is meant to be similar to saying that an action in turn-based RPG combat can affect the domains of character health/MP, stats, and status effects, along with all the other domains unique to specific battle systems. (For example, Chrono Cross‘s element field.)

I’ve since expanded a bit on the “goals” part of this, but not the rest. Of the four, I think of emotions as the most straightforward, so they’re what I’ve been starting with in my prototype system. Emotions are basically just status effects. You can be in one emotional state at a time, and each emotion has a unique set of effects on your stats and abilities. The character stats I have in mind are as follows:

Charm: Your ability to get people to like and believe in you. Affects deceit, performance, relationship management, seduction, etc.

Composure: The primary defensive stat. Affects the damage you take from attacks and failures, control over your own emotions and relationships, and protection against people “reading” you.

Empathy: Your ability to read other people. Affects detection of emotions and relationships, influencing other people’s emotions, and how much people trust you.

Intelligence: Logic and reason. Affects debate skills and the ability to imagine new ideas, make plans, and detect lies.

Willpower/Aggression/Pride: Whatever it gets called, this is the stat that governs how forceful you’re able to be in a conversation. This would affect your leadership skills, ability to convince people of your point of view, and how much you can dominate a conversation. (I still haven’t figured out a good name for this one. Aggression sounds too negative, Willpower is confusing because it’s not very similar to the traditional RPG definition of this stat, and Pride isn’t a good description.)

So for example, Anger might increase your Willpower while decreasing your Empathy and Composure. Sadness might increase your Empathy while decreasing your Composure. Things like that. An emotional state might also make you more or less susceptible to certain kinds of skills. For example, people who are Angry might be better at ignoring logical arguments, but more susceptible to insults of all kinds. Some emotions might also be prerequisites to certain game actions. For example, you might need to get someone Angry to start a fight, or get someone Aroused in order to seduce them.

One thing that occurred to me during this process is that emotions are a simpler way of dealing with the con-game situation I laid out in this post. I had some wild, overly-complex idea about confidence and defense having an inverse relationship, blah blah.  Then I realized it made more sense just to have an emotional state called “Cocky” that lowers your Intelligence and Composure while boosting your confidence regeneration. No need to add new pieces to the system if existing pieces can cover the behavior you want.

I still haven’t narrowed down the set of emotions I want to support. Doing that might be more of a balancing issue far off in the future, anyway.  But I think this is a decent platform to start with, and I like that it’s so simple compared to the other parts of the system. I’ve been trying to test things out using only emotions, but it turns out that things get interconnected pretty quickly. First that pushed me into dealing with goals earlier than I wanted to; now it’s pushing me into dealing with viewpoints.  More on that later.

Categories: Mouthwash

Conversation Games in the Wild: Deadwood

June 24, 2011 7 comments

One of the things I’ve been doing in the course of developing the Mouthwash conversation gameplay is to analyze transcripts of TV shows with good dialogue. The idea is to have some good examples to work with while I figure out conversational skills and how all the dynamics work together.

So the first thing I did, naturally, was to go through the entire first episode of Deadwood. I figured I’d start with the best, right? I made a big Excel file with the dialogue lines in the leftmost column (thanks to the fan transcripts here) and a bunch of annotations in the other columns about how the line seemed to affect the context and the other characters. It’s a really fun exercise, and it’s been very influential on Mouthwash mechanics.

One of the mechanics this inspired was how Mouthwash will handle confidence. Prior to the transcript coding, I had envisioned confidence as similar to skill points. Every time you perform a successful speech act, you get Confidence points. You can then expend those points to perform higher-level skills. (This is pretty much how skill points are handled in Chrono Cross, for example.)

This made a lot of sense to me and seemed like it could support some good tactics. Your stats would control the amount of confidence you start a conversation with and how quickly it increases with success. Embarrassing failures in the conversation would deplete your confidence, as would various aggressive skills like insults. Maintaining a high confidence level would be a major part of your strategy in a conversation.

But then I had a bunch of trouble analyzing the following scene.  Since this is the pilot, it’s not too much of a spoiler to say that the idea here is that Al is trying to run a con on Brom (the mustachioed gentleman who is out of his element).  This scene shows that con being successful.

 

Here was my question: what the hell is Al doing at the beginning?  As far as I can tell, he’s pretending to be pretending not to be angry. The thing he’s supposedly angry about is entirely fictional, part of the con. But when Brom “sees through” him, Al denies being angry. So it’s a whole weird performance of a performance. What’s the point of that?  In a similar vein, he has Brom “figure out” that Tim might be off selling the claim to E.B. with as little prompting as possible. Why not just tell him that Tim’s planning to sell to E.B.?

Okay, so from the point of view of common sense, my questions here are totally stupid. The point is that Al’s being subtle, and it makes the con more effective if Brom feels like he’s coming to these conclusions on his own. But why is that? And is there a way to model that easily in Mouthwash?

What I ended up deciding is that confidence should cut both ways. In RPG combat terms, confidence gives you more attack points, but it also lowers your defense. If you look at these guys as Mouthwash agents, what Al is doing at the beginning of the clip is giving Brom a lot of false successes that ratchet up his confidence. At the same time, this is making Brom less and less capable of detecting lies, which is a defensive skill. He’s getting over-confident; he’s more likely to do stupid things, like raise his bid as much as he does at the end, or believe in E.B.’s terrible acting job.

This idea had the added benefit of explaining the strategy behind self-effacing characters, like Wild Bill. Bill is a guy who’s afforded much respect and status in the camp. But he tends to dodge the confidence-raising compliments of others and to downplay his status as much as possible. He’s trying to be defensive. At this point in his life, his goal (conversation-wise) is to protect himself from feeling and expressing emotions as much as possible. Maintaining low confidence is a way to keep those barriers up.

I haven’t quite figured out how to balance this in-game, but I think it’s kind of a poignant mechanic. There’s a lot of other stuff that came out of this transcript, such as the fact that Charlie Utter is a fucking ninja. The things people do with language in Deadwood is just as dense and subtle as you’d expect, as far as I can tell. Might add more to this series later.

 

Categories: Mouthwash

AI and Character

June 17, 2011 3 comments

I’m starting to set up some of the basic AI programming in Mouthwash, my work-in-progress conversation system. (Some background here.) I wasn’t planning to get to that stuff so soon, but it became apparent pretty quickly that a lot of other stuff depends on the speakers having “goals.” So I’m having to deal with planning and state spaces and figuring out just what I mean by goals anyway.

This has me thinking about how you can express character through AI in games.  I’ve also been playing Persona 3 lately, which is a squad-based Japanese RPG where all your party members are AI-controlled. I’ve seen some fans theorize that the personalities of the different fighters are expressed through their default AI. They all seem to behave the same way to me, so I’m not sure I buy this. But I think it’s an interesting idea.

I found myself doing some of this with the tactics system in Dragon Age: Origins. Morrigan is selfish, so I would push any tactics that healed or buffed other party members to the bottom of her queue; conversely, I made Wynne help others before she helped herself. When characters fell in love with me, I’d make them defend me more. Zev would do this intelligently, by helping to disable or distract my opponent from a distance, while Alistair would just rush headlong to my side, because he’s an idiot. Things like that.

What I was trying to do, basically, was to get the characters to behave in battle in a way that reflected the personality I saw when I talked to them. In a Mouthwash game, you wouldn’t have this distinction: conversation is the battle.  So it’s necessary to build these kind of personality-based tactics right into the foundation of the game.  Otherwise, it’d be hard to express personality at all. Unlike other games, I won’t have the leisure of telling you about a character through a tightly controlled dialogue scene.  You have to figure out who they are by playing with them.

This means I have to think about the AI of these conversational agents a bit differently. Any intelligent computer agent needs some way of measuring how “happy” it is at a given moment, and what actions it can do to get happier. In combat, these measures are pretty easy to figure out: enemies’ health goes down, that’s good.  Allies’ health goes down, that’s bad. You decide what to do based on moving those numbers in a positive directions.

In a conversation, on the other hand, people can have lots of different goals, some of which might conflict with each other. They can also have different ways of deciding how to get to those goals.  Defining a character’s goals will tell you something about that character’s story arc. Defining their tactics will tell you who they are. Most of this I plan to simplify using character classes, but there’s a lot of room to build personality into AI style in more subtle ways. Do you take a brute-force approach to problems?  How many steps ahead do you look? Are you willing to backtrack if things aren’t working?  These are all questions an AI programmer might deal with that also sound like questions about a person’s character.

Categories: Mouthwash

A Brief Introduction to Mouthwash

June 2, 2011 3 comments

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.

Categories: Mouthwash

Words as Actions

Shortly before my blog’s hiatus, I wrote this post, in which I talk about the kind of conversation systems you see in games.  I was particularly concerned with the lack of variety as compared to, say, combat systems.  Everything seems to be some combination of response triggering and branching paths.

People sometimes blame the blandness and linearity of game conversation on the cost of voice acting or the difficulty of writing lots of text.  The implication seems to be that if you could easily generate infinite dialogue lines, the branching space would be big enough to get interesting.  But I think this misses the real problem with trigger/branch systems.

The biggest reason conversation models are usually pretty boring is sequencing.  All these systems assume that without some level of hard-coded control over the sequencing of lines, there’s no way to make a conversation make sense.  Branching trees are popular because they offer some freedom to the player, but always know exactly what sequence of lines led up to the current state and what lines can follow.  Likewise, in response triggering, a line spoken by the player and a line spoken by an NPC are always paired up neatly.  Both methods offer a lot of control over the order in which lines happen.

This is a severe limitation!  There’s not much you can do to mix things up within those constraints.  But the constraints seem to exist because written dialogue is seen as such a delicate, context-sensitive thing that relinquishing control over the order of lines will inevitably lead to nonsense. Games with unusual conversation mechanics are almost always those that abstract conversation to the point that there isn’t actual dialogue anymore.

Take The Sims, for example.  That conversation system pretty much ignores sequencing altogether, letting the player pick generic actions like “Flirt” or “Insult” that have associated effects on the game state, such as making an NPC like you more.  Conversation is no longer about exposition, illuminating character, telling a story, or what have you: it’s just a set of social functions.

I believe that there’s a big untapped space between these two extremes.  And I think the trick is to take the basic idea of The Sims – treating lines of dialogue as actions that affect the world or the NPCs somehow – and expanding upon it.  You’d have to give up control over the order of dialogue. Instead, you’d have to start thinking about what defines the state of a conversation, and how the things we say affect that state.  There’s a lot of approaches you could take within this space.  I’m working on one, and I’ll write more about it later.

Categories: Mouthwash

Conversation in Games: Trigger, Branch, Repeat

April 23, 2010 11 comments
Bento Smile’s Air Pressure

Why is there so little variety in conversation systems in games?  Conversation is one of the most essential and frequent things humans do.  It is a common source of interest, drama, and comedy in both real life and fiction.  It reveals character, it advances plotlines, and it uncovers information.  It’s hugely important to most stories about people.  Yet almost every videogame, regardless of genre, that employs playable conversation uses the same two basic mechanics for it.  Some use one or the other, some use a combination.  These two mechanics are:

Response Triggering. The player employs some kind of trigger action towards another character.  The trigger could be an object, a topic selected from a list, or just the choice to talk to the character at all.  Each trigger leads to a specific canned response from the character.  Employing the same trigger multiple times will usually get the same response.  The order in which triggers are deployed is not significant.

Branching Paths. This is a variation on basic response triggering in which each response opens up a new set of triggers.  This allows for conversations with a temporal progression and usually involves choices about the direction the dialogue takes.

Read more…

Categories: Mouthwash
Follow

Get every new post delivered to your Inbox.

Join 183 other followers