Alabaster — 37 of 123

John Cater, Rob Dubbin, Eric Eve, Elizabeth Heller, Jayzee, Kazuki Mishima, Sarah Morayati, Mark Musante, Emily Short, Adam Thornton, and Ziv Wities

Release 1

Part 6 - Conversation Flow

Section 1 - Combining Elements

[The essential elements of conversation flow, following a conversational command, are these:

1. PC's comment (which can be multiple paragraphs, but usually isn't)

2. NPC's response (which can be multiple paragraphs, but usually isn't)

3. (If step 4 is going to happen) A grounding beat produced by the rule for avoiding talking heads. This reminds us of where we are; the exact text of the beat is dependent on Snow White's mood, with scarier beats set for scarier moods.

4. (Optionally) voluntary further comment by NPC.

I've actually left out a hook -- between 1 and 2 the NPC can challenge the PC for changing the subject abruptly. In this game we mostly see that used with the riddle, where you aren't restricted as to answer but Snow White will be disappointed if you change the subject without trying to guess. It's not something we need most of the time, though.

From a functional interactive perspective, relying on the structure in steps 1-4 work out pretty well. The transitional beat means that if the NPC changes the subject at 4, we get an implied pause -- just as in real life conversations, your interlocutor will often introduce a change of subject only when a longer-than-usual silence signifies the end of the current line of thought.

This mechanism is not so great from a prose style perspective, though. Over many turns, the player soon becomes used to the response-beat-followup pattern, and the rhythm gets boring, no matter how carefully the components are written.

So we want the freedom to change it up a little, by using context-specific beats some of the time, and by connecting paragraphs 2&3, or 3&4, or even 2&3&4 in a single paragraph if the response in 2 is short and doesn't preclude a mid-paragraph change of subject. This latter decision is one that has to be taken on a case by case basis, so we create a strong vs. weak distinction in quips and apply it by hand.

The result is a more supple flow of conversation in which the automated breaks and joins are (we hope) less apparent to the reader.]

A quip can be strong or weak. A quip is usually strong. [1]

Rule for avoiding talking heads:

if the current interlocutor is ready for transition:

if the current quip is strong and a random chance of 1 in 2 succeeds:

say "[beat][line break][paragraph break]"; [2]

otherwise:

say "[beat][if a random chance of 1 in 2 succeeds] [run paragraph on][otherwise][line break][paragraph break][end if]". [3]

Report someone discussing a weak dead-ended quip when the current interlocutor is likely to continue:

if the noun provides the property response:

say "[response of the noun] [run paragraph on]" instead.

Notes

[1]. A quip may be designated "weak" if we want to allow the interlocutor to transition smoothly into another line of conversation without a paragraph break.

[2]. If the current quip from which we are building is weak, we want to fold it into one continuous paragraph with one intervening beat.

[3]. This generates text that is printed between lines of conversation when the conversation is supposed to pause for a bit. The complexity of the structure is so that it can produce not-completely-predictable text structures. Specifically, an NPC's comment can either be q-transitional (an ugly term, I know) or not. If it is, that indicates that the comment begins with its own special, handwritten beat; in that case, we don't need to generate a grounding beat every time before we print it. If, however, the NPC's comment begins with quoted text, we do want a beat to separate it from the quoted text that preceded.