Modeling conversation flow: interrupting the player

[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 NPC initiative and subject changes, and transitions in player speech.]

There’s a hacky moment in Alabaster to do with interruptions.

During one of the first moves of the game, you can ask Snow White about something while she’s waiting for an answer about whether you’re going to escort her to the forest. So, if you talk about something else instead, she gets angry and interrupts. In the first implementation, she waited for the subject-changing hook to object; but I didn’t like the effect of that, so I decided to have her actually interrupt the speech in progress. Whatever the player is saying, after the first few words, she’ll leap in: this is done by dumping the quip content to indexed text and running a regular expression to automatically detect a safe break-in point. This happens regardless of which question you’ve asked her (and there are dozens of possibilities). For instance:

“Why do you –”

She sets her jaw as she realizes you are changing the subject.

“–avoid the Queen’s mirror? Many of us have stood before it, and taken no harm.”

If you asked this under any other circumstance, this question would just print as “Why do you avoid the Queen’s mirror? …” without interference.

The strength of this is that it let me introduce this feature across dozens of possible quips the player might say here, without having to edit the quips themselves. As this sample demonstrates, though, the weakness is that the algorithm for producing break-in points is pretty basic. Here we have Snow White looking irritated before the gist of the player’s comment is really clear at all.

Still, sometimes it works a lot better, and I found that it was still more interesting than using the subject-changing hook to show her anger in this particular context, so I left it as it was.

Continue reading “Modeling conversation flow: interrupting the player”

Modeling conversation flow: transitions in player speech

[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 NPC initiative and subject changes.]

One of the issues that has already appeared several times in these posts is the idea of the transition: how do we produce smooth, plausible segues from one bit of speech to another?

In the present model, the NPC’s responses are generally written to go with the player comment that led into them, and we’ve already looked a little at the way the system creates transition text when the NPC wants to introduce a new topic of conversation.

The remaining area of concern is the transition from whatever the NPC last said to the player’s next comment, which appears at a turn break:

PC comments
NPC replies
> (player’s command)
PC comments again
NPC replies

Continue reading “Modeling conversation flow: transitions in player speech”

Passport to Perfume

Picture 15Now and then I get review copies of things that turn out to have too little narrative content for a Homer in Silicon column, but are decent enough that I play them for a while anyway. Passport to Perfume is one such: a new casual game from Playfirst.

Passport does the thing a lot of casual games do these days: “innovate” by combining standard existing types of gameplay — in this case time management and hidden object segments.

This is not what appealed to me. I’ve played enough generic time management games for a lifetime now, and hidden object has never been my favorite.

What appealed to me was the third element of the game, the ability to mix ingredients to create your own new perfume blends. It sounded derivative of Chocolatier: Decadence by Design, where you can mix ingredients to create your own chocolates — but since I liked Decadence by Design and thought there was some unexplored potential in its mix-and-match gameplay, I was curious whether Passport took this idea further. (It was pretty clearly ripping off borrowing heavily from the Chocolatier series in other respects, with retro-looking maps of the world and exotic locations for the heroine to visit for new ingredients.)

Continue reading “Passport to Perfume”

Modeling conversation flow: subject changes

[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 my blog post on NPC initiative, which describes how NPCs might manage a list of things to say in the future.]

Alabaster has a threaded conversation system, which is my way of saying that it keeps track of which quips follow naturally from which others. That’s important because it allows the game to prompt the player with the quips that he’s most likely to want to use next (and, even if such hinting is turned off, to parse input more intelligently).

Responses to the player.

Thanks to its awareness of threads, the Alabaster system allows for a hook, the subject-changing activity, which comes between the PC’s comment and the NPC’s reply. For reference, the full sequence for handling a conversation action looks like this:

1. PC’s comment (which can be multiple paragraphs, but usually isn’t)
2a. NPC challenges a change of subject, if relevant (SUBJECT-CHANGING HOOK)
2b. NPC’s response (which can be multiple paragraphs, but usually isn’t)
3. (If step 4 is going to happen) A grounding beat is produced to mark a pause in the conversation, to pave the way for
4. (Optionally) If the current conversation thread is at an end, and if the NPC has something else planned to say, he now starts a new conversation thread by saying the next thing on his list.

In transcript, that might look like this:

>ASK LUCY ABOUT DIAMONDS
(1) “Are diamonds your favorite gem, Lucy?”

(2a) She looks surprised by this question. (2b) “Yes, ever since I was a child.”

(3) Overhead the seagulls wheel and cry.

(4) “I do wonder what my mother did with the family rubies. They were missing when she died,” Lucy says.

And for a non-conversation option:

1. PC’s action is handled however is appropriate.
2. (Optionally) If the NPC has something else planned to say, he now starts a new conversation thread by saying the next thing on his list.

which would produce a transcript like this:

>EXAMINE DIAMONDS
(1) They glitter at you malevolently.

(2) “I do wonder what my mother did with the family rubies. They were missing when she died,” Lucy says.

Continue reading “Modeling conversation flow: subject changes”

Audioverse

Ran across this randomly while searching for something else: Audioverse is “an interactive fiction framework” that includes rigorous modeling for ambient sound effects. The screenshot looks severely old-school to my eye, and I haven’t gotten the downloadable sample file to run, so I have no idea what it’s like in practice, but I confess I’m intrigued by the description. I have generally tended to think that a heavily sound-based approach to IF runs into problems because it’s hard to sync the real-time nature of sound with the turn-based text — but I haven’t tried something like this, and it might be interesting.