Tuesday, December 13, 2011

Dialog Games

Another day, another conversation about how dialog trees are pathetic.

So, you talk to an NPC in a game. You choose - for the millionth time - the "good" option. Well, that's how you decided you were going to play this time.

This is games offering "choice"? This is our concept of "dialog"?

Can we make dialog more interesting?

Sure can! Let's talk about how!

First, we have to ditch the idea of a dialog tree. We need a complex and shifting play field.

For example, look at Pac-Man. You don't simply choose to win or lose. You move left, right, up, and down in an attempt to eat all the dots. But even that would be boring: you have enemies chasing you, trying to eat you. So you've got to eat the dots while always keeping an eye on where the ghosts are. Can't let yourself get hemmed in... unless there's a power pill here, in which case getting hemmed in guarantees you'll get at least one of the bastards!

This is a game: a relatively simple set of inputs affects the gameworld in a straightforward way, and you need to handle the changing challenges. Whether it's a puzzle game where you try to put together a jigsaw, or a platformer where the challenge is in not falling, or a rhythm game where you have to tackle the beats as the flow down the stream. They are all the same: basic inputs to tackle a series of challenges.

A dialog tree, on the other hand, is a highly unique set of inputs for each sequence, and you have only the faintest idea of what the challenges even are!

To make dialog into a game, we need to A) make the inputs more universal, B) make the conversations evolving challenges, and C) let the player see further, so they can see what's coming down the line and how their inputs are affecting it.

There are actually a lot of ways to do this.

One is to simply map the conversation onto an existing game. For example, we can have you play Pac-Man every time you get into a conversation. The higher your score and the more lives you have left at the end of the conversation, the better the outcome. Something similar was actually tried with Leisure Suit Larry's recent game: you had to literally steer your conversation, hitting the right notes and avoiding the fails.

This isn't terribly interesting, though. It doesn't take advantage of what a conversation actually is. What are some other options?

We could make conversation a real-time situation where you control your basic body language using the left stick and the shoulder triggers. Instead of choosing to be good or evil, you physically move closer, show interest, doubt, encourage, etc. While this makes the controls more universal, it doesn't actually give the player any way to see challenges coming down the line.

The key to this whole affair is actually seeing what's coming. Once you have an idea as to how to do that, parts A (controls) and B (evolving challenges) naturally begin to suggest themselves.

For example, we could give characters subtle animations to give clues as to how they are reacting to your actions. This makes the game one of identifying a character's clues and chasing the positive ones while evading the negative ones. This essentially makes every character a puzzle - which is not a bad thing, although it's not one particularly high in replayability or diversity.

Another option is to flat-out display the conversation topics and emotions as physical objects with shapes and proximities to each other. Sounds similar to making it "Pac-Man Social Play", but in this case you can actually embed the social in the play very deeply.

For example, you can put in a kind of social "gravity": if your conversation steers towards a sensitive topic, the conversation is repelled by the instinctive redirection of the NPC. If the course is such that the repelling isn't strong enough and the conversation impacts on the sensitive topic, that starts up a whole new conversation within the "event horizon" of the sensitive topic as the NPC begins to defend themselves or panic or whatever.

So you can plot a course through their hang-ups, ideals, moods, and so on. Probably with an actual line indicator showing your medium-distance future, allowing you to tweak the vector of the conversation to make things go smoother.

This kind of conversation can be easily controlled using a simple "turn/accelerate" IO, where the IO doesn't directly relate to your own dialog, but instead makes your dialog reflect the setting somewhat. For example, if you turn your dialog-ship more towards someone's love of the king of their fantasy nation, then your dialog would naturally turn towards that king.

You could make it significantly more interesting - for example, agreeing with someone's views versus challenging them. It might be better to think of it as whirlpools that have a particular direction of spin, rather than simply blobs.

The point here is that you can invent a kind of game which actually reflects the socializing you're doing.

"But the dialog... how will you generate the dialog? Are you going to write a billion lines of dialog?"

Nah. During the conversation, you'll mostly be focused on the game of steering the conversation. The actual commentary during that time can be pretty generic - short and informative statements like "mumble mumble king mumble mumble?" "OH! Mumble mumble mumble!"

The only dialog you actually have to write at "full depth" is the transition dialog - the dialog you would normally get in a normal game when selecting whether to be good or evil, or when getting briefed on the situation. You don't need to write up every line for every possible position you could possibly be in.

It would be good to have more depth to your dialog than less. If you can write a few dozen lines about likely topics for that character pair, it'll be a lot more interesting. You could even mark them as colored spots on the map, so players can aim for them. Put some of them daaaaaaaangerously close to failure zones.

Until natural language generation improves, having characters with detailed, contiguous conversations is basically impossible. But there is something to be said for "more mumbling, more freedom of conversation" instead of the dialog trees of today.

Of course, focusing on conversation means that the dialog is the main point of the game. So you can't think of it as serving the same in-game purpose that dialog does today. Instead, you have to invent a new position for it...

Hm, gotta think more. This post is just in passing.


Amanda Lange said...

I'm glad you mentioned Magna Cum Laude; otherwise, I would have had to! I think that game is doing something interesting and has honestly been overlooked a lot. Still, I think dialog as a dexterity challenge is a one-off design.

The problem with your approach is that you're making a better game, but, you're making a worse conversation. Conversation trees aren't very interactive really, but they allow me to choose from a list of "awesome things to say." And when I'm in a dialog situation, I want my avatar to say something awesome, and I want the characters he/she interacts with to have awesome things to say back, that showcase their individual voices and personalities. You lose on that with an abstracted approach, so much that I'm not sure the trade-off of increased interactivity is really worth it. Also, I'm not sure the same target audience that is interested in a deep interactive dialog is the one interested in a difficult dexterity challenge to create it.

I'm hoping that we'll have some awesome interactive conversations as computers get better with natural language processing. But even then I'm wondering if the average person wouldn't rather have a dialog list as a crutch. Until then, a great format for interactive dialog creation has been around for 20+ years: MUSH, MUCK, etc.

Craig Perko said...

Well, I agree with most of your concerns. But the whole point of making dialog a game is that it's less about what you say and more about the NPC in question.

Making conversation "cool" is a job for a writer, just like making combat "cool" involves scripting an action sequence where your avatar dives through plate glass and shoots ten guys without your help.

Like action sequences, it's possible to set up a room (or conversation) such that it is moderately cool just because of how everything plays out, and I can see that happening in any kind of conversation engine. But you'll never match a cutscene for pure cool potential, and that's the same here.

To me dialog trees are like quicktime events "press X to do something cool!" Except that in the case of a dialog tree, it's "press X to be good/evil!"

Anyway, I don't think every game needs a conversation engine, but I do think it could serve certain games very well, if they are designed around it. I think I'll be whipping up a prototype sometime in the next two weeks.

Phobosis said...

I guess "gamefied" dialog system could work well for a whole bunch of npcs at once. Imagine, you discover a new city, click "gather information" and see some particles flying around strange attractors in weird trajectories.

Attractors could be places like taverns and social groups like temple and rebels. Particles could be individual named NPCs that can be influenced by the player.

I suppose it could be a nice mini-game for dungeon crawls and action-rpgs, where dialogs can become a chore, because neither developers nor gamers are really interested in them.

By the way, you should take a look at how social battles are implemented in pen&paper rpgs based on FATE system (particularly in Diaspora). Essentially, they are turned into tactics and played out by regular battle rules.

Craig Perko said...

Hmmm, that's a fun idea.

I'm familiar with FATE systems and have Diaspora over on my shelf, but I don't really see how that would translate over into a fun dialog game.