[This is part of a series of discussions on the craft of modeling conversation. For previous installments, see my original Homer in Silicon article which lays out the basic elements of the model, and previous blog posts on the issue.]
Modeling conversation flow gets more challenging when there are multiple participants in the scene. I’ve tried two approaches to this.
Model the group as a single entity. If you have a scene where the same set of three or four people are going to be talking — no one entering or leaving at an unpredictable time, everyone involved throughout — then it’s possible to model the conversation much as though it were a conversation with one interlocutor. Quip responses contain whatever is said by every character who isn’t the player. Any member of the group may be narratively responsible for moving the conversation forward.
I’m only partway through writing the game that uses this method a lot, but I would say that it works (where it does work) because the game has a strong narrative shape that isn’t up to the player. The player can affect the outcomes of scenes, certainly, and has considerable agency over what ultimately happens, but has little influence on pacing.
Model each character individually, and allow everyone at least the chance to speak after the player speaks. This is what I did with Fugue, an experimental mini piece in which the protagonist is having a conversation with several friends (who are really several internal voices of her own). Each NPC, once addressed, continues to contribute to the conversation, until all three of their voices are engaged.
Fugue really doesn’t attempt many of the interesting things that could be done with this, because on the technical side it really was just playing with whether I could get the characters to have planned conversation that ran in tandem.
However, the same model is what I’d want if I were writing a conversational sandbox in which the point is to have a number of characters wandering around exchanging information. Conversational facts are known by everyone who has heard them spoken, which means that it’s possible to have characters react to things said in their presence but not said “to” them.
To make a compelling game of this would require a considerable amount of modeling to do underlying the quips, though. The quip model I’ve discussed here is designed to create a sense of context; interpret the player’s input based on that context and provide conversation hints if desired; manage pacing; and assemble the various statements, interruptions, and pauses into continuous prose. It doesn’t provide any kind of conversational goal-seeking, though. It leaves it up to the author to decide by hand what quips should be added to a character’s planned conversation. It allows the author to mark up text to indicate mood changes and facts discovered, but it doesn’t require the use of those elements, and it doesn’t assume anything about the modeled psychology of the characters.
The more sandbox-like the game, the more we’ll need another model beneath the quip model — one that does deal systematically with moods, factual knowledge, and goal-seeking.