Dev Blog – Dialogue Trees

Double-post day!

One of the core features of Vidar is that the interpersonal relationships between characters, their story arcs, their development as people, changes from game to game. The main mechanic of this is the Indiscriminate NPC Killer. When a character dies, those close to him or her need to respond accordingly. And indeed, the loss of a sister may be greater than the loss of a friend, which would still be greater than the loss of an acquaintance or even an enemy.

I’ll use Bernadett, the town nun, as an example (and not just because she’s the only NPC fully implemented!) Bernadett is judgmental – she believes that the Beast killing Vidar’s citizens is a harbinger of the Gods sent to punish the people for their sins. And she is vocal about it. She’s got opinions about lots of people in town, but specifically:

  • She thinks Robert and Cecilia, the town’s Romeo and Juliet, are despicable, putting the pleasures of the flesh above respect for the Gods.
  • She thinks Rosza, the innkeeper, may be well-intentioned, but in trying to take care of everyone is in fact embracing sinners when they should be cast out
  • She does have pity for Tomi, the child, but believes it’s only just for children to suffer punishment for the parents’ sin
  • She respects Borbalo the priest, and while noting he is full of sin himself, admires his practical approach to religion
  • She has a tenuous relationship with Mihaly, the musician, which can end with her believing that he is a good person, a wicked person, or a dangerous person, depending on how, whether, and in what order certain quests are completed.

In order to mirror the fact that some deaths are more important than others, Bernadett had an order of priority for each of these characters. She’s almost always in the Church, so it makes sense that she’d comment on Borbalo’s death over Tomi’s. Her relationship with Mihaly is complicated, so it’s likely to take priority over Rosza. The old system then looked something like this:

if Borbalo is dead, “I’m sad Borbalo is dead”

else if Mihaly is dead, “I’m conflict about Borbalo being dead”

else if Robert is dead, “I’m glad Robert is dead”

…you get the idea. Also, the dialogue is not that awful, I promise. Like Bernadett is a judgmental character, but she’s not incapable of stringing a few sentences together.

Unfortunately, this led to a relatively static conversation with Bernadett if Borbalo died on day 1. By virtue of him taking the highest priority, Bernadett would not comment on later, less important deaths. You would always stop at “I’m sad Borbalo is dead.”

I’ve now built a system to account for this a little bit. Each death also gets a “days old” date, which can be set based on the relative importance of that character as well. Bernadett will now only comment on a death for so long before it gets boring. While higher priority deaths can still leapfrog to the front of the line, there’s a chance now you’ll hear about multiple deaths from the nun in the course of a single game. So we replace the above with, for example:

if Borbalo has been dead for less than 10 days, “I’m sad Borbalo is dead”

else if Mihaly has been dead for less than 8 days, “I’m conflict about Borbalo being dead”

else if Robert has been dead for less than 6 days, “I’m glad Robert is dead”

This allows for greater flexibility while keeping Bernadett’s priorities straight. Right now, this is Bernadett’s dialogue tree:

This isn't just about who is dead; it includes all of the possible options concerning her quests as well.

This isn’t just about who is dead; it includes all of the possible options concerning her quests as well.

What’s absent from this system, and one of the next things to implement, is more variety for multiple deaths. If Bernadett is still vengeful over the deaths of Robert and Cecilia, Rosza’s death shortly thereafter would only fuel the fires of her religious fervor. Indeed Robert and Cecilia are the only two people handled in a single-or-multiple setting on the chart.

What’s also absent from this system is recognition of unrelated quest events. For example, it’s possible in the game for Cecilia to move in with Robert, or for Robert to move in with Cecilia. If that happens, Bernadett would surely be even more upset about these two teenagers living in sin, and her dialogue should reflect that as well.

Advertisements

One thought on “Dev Blog – Dialogue Trees

  1. Pingback: Dialogue Trees Part 2 | The Iron Shoe

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s