Writer wanted for a "Conversational Storytelling" project

Some interactive fiction, to be sure, can be played over and over with different results; in fact, those stories are typically written with exactly that kind of play in mind. But other stories have only one true path and one successful outcome and playing those more than once – while allowing you to notice things that weren’t noticed before, or to reflect on things that didn’t grab your attention the first time through – will, like a movie or a traditional book, not really change the second time around.

Conversational Storytelling, as I’m defining it here, falls pretty squarely into the latter category. We expect the stories that authors write with our system will be relatively short and typically played once (or maybe twice) before being set aside to make time for new stories – just as people do with traditional story books.

Galatea and Alabaster are not idle examples, and the idea of converting them to your system is very serious - like Best of Three, they are essentially conversational pieces. They are the sort of work that might benefit from what you’re bringing to the table.

As to what you asked for:

Brrrring! Hello, honey? What kind of pasta did you want?

Pasta? I didn’t want pasta at all!
The one we always have, sweetheart.
The one we always have, dammit!
Why won’t you listen? I TOLD you it was tagliatelle.
Sorry, but who’s this?
I’m with my wife, I TOLD you never to call me.
Just pick whichever, I’m ok with it.
Actually, can’t we have meatloaf instead?
Whichever’s cheapest.
Honey, we’re dining out tonight, don’t you remember?
What kind of pasta do YOU want?
Forget about the pasta and let’s go straight to dessert.
I’m having what you’re having.
Oh honey, not pasta AGAIN?
Stop calling me! I don’t know you! I swear I’ll call the police this time!
Is there anything on discount?

You’ll say that some of these are similar and can have the same response, and you’d be right - but you’d still have to parse completely different entries and then treat them as the same thing.

You’ll either want to include these or not include these. But they are very reasonable within the context that we have - I daresay the example was against you because at the beginning of the story, with nothing having been decided, all of these are possible. They are all valid responses, and even if your story doesn’t allow for a cheating husband or someone being harassed, you’d still have to capture these.

There are, I think, at least two obvious differences; I’ll let you decide if these are advantages or disadvantages.

  1. Threaded Conversations are a part of a much larger and complex system. This obviously gives the author more freedom to develop different kinds of stories, but also greatly increases the learning curve for both the author (a lot) and the user (less so). The Conversational Storytelling system I’m proposing is small, consistent, and can be fully documented in less than a half-dozen pages.

  2. Threaded Conversations introduce yet another interface paradigm into the standard IF model. The user must therefore mentally adjust his mode of thought (albeit subconsciously) when the program’s mode changes. The user, for example, has to “think” things like: “Now I’m going to go over there”; “Now I’m talking to this guy here”; “Now I’m going to stop doing that and do something else.” This, I believe, is at enmity with immersion. Conversational Storytelling, on the other hand, employs a single interface paradigm at all times: the user is always addressing the main character, in short, meaningful phrases and sentences. “Go over there” and “Why did you do that?” and “Tell me what you see out the window” are all the same kind of command in our system.

Generally speaking, our system, I suspect, will appeal more to authors who write like Robert B. Parker or James Patterson (churning out best-selling template-based stories by the dozen), rather than authors who write like Steinbeck or Hemingway, varying their approach and style to suit the material. Something like Inform would undoubtedly serve this latter group much better. But that doesn’t mean, of course, that a storytelling genius couldn’t use our system to produce a great and singular work; just that he/she would have to labor within the confines of the paradigm.

A normal conversation can be wildly unpredictable. The most surprising thing can come out at the most surprising moment. You seem to want to control the conversation more than you’re letting on by disallowing potentially valid choices.

Anyway, you’re starting to talk so much about conversations, I’m starting to wonder, what about the game? Are the games to be conversations? Is the parser to be an NPC? If so, would “Crack that guy a good one over the head with my brick” really be better than “hit man with brick”? I know which I’d rather type…

Now you’re talking Alabaster. And others.

EDIT - There’s another thing to take into consideration. IF has been historically about puzzles, and about lateral thinking, about puzzle-solving outside the box. You are trying to say that “people will not do silly things because it doesn’t happen in real life” to players who for YEARS have been putting ladders in their pockets, or lighting bricks, or dropping magazines to get an obscure last lousy point, or trying strange things in the off-chance that they’ll solve a puzzle or learn vital information about one item (and, more often than not, we profit from having done that). So… we might not be the audience you’re looking for, which would account for your growing frustration at our rebuttals. There is certainly space in the IF-verse for what you’re suggesting, in part; but the specifics of how you’re going about it feels like old threaded ground that didn’t work then and is not really likely to work now.

I mean, the reason you started all of this was because you didn’t like the parser/identity paradigm, but you hadn’t even noticed the commands you were inputting could just as well have been phrased as first-person-singular rather than imperative, which is pretty fundamental to the whole thing and adds to its ambiguity (and for most people is, really, just so straightforward we don’t think of it - I’m communicating my intentions, and that’s all).

I would actually advise you, as others have, to get a working example out there. Once we actually see it in action then we can be really productive. Until then we’re going around in circles, and you don’t seem to be getting your writer. Doesn’t have to be anything fancy, could be something short, could be a well-known story, like a fairy-tale. Then we can all happily pick it apart in a way that’ll actually help you. :slight_smile:

I’ve got them on the list for further study. Thanks.

I see immediately that the program’s opening statement is not clear enough. It must be made clear that the voice on the phone is a stranger’s voice. That will eliminate all but the following options from the above:

Sorry, but who’s this?
Stop calling me! I don’t know you! I swear I’ll call the police this time!

And the second of these is inappropriate because it’s the initial call. (Isn’t beta testing great?) So I now revise the opening to read:

Brrrring! (A stranger’s voice on the line.) Hello, honey? What kind of pasta did you want?

And we’re ready for another test.

Again, I fear we’re talking about two different things here. The pleasure of much traditional interactive fiction is (a) solving puzzles, and (b) trying wild and crazy things and getting even wilder and crazier (but appropriate) responses. The pleasure of Conversational Storytelling is different; it’s anticipating the storyline and consciously helping it along (with the illusion that you’re getting to know to a real person in a real situtation). In the traditional paradigm, running off on various tangents is almost required for full enjoyment; in the conversational paradigm, helping the protagonist to the final solution as quickly and efficiently as possible is what constitutes success.

Parsing equivalent thoughts expressed in different ways is exactly what the parser is designed to do; it removes the bulk of that burden from the author.

See above. But I appreciate your remarks. They’re helping me realize the kind of things we’ll be needing up front in our “Conversational Storytelling – What it is and how to do it with simplicity and finesse” manual.

Ah, okay. I think I understand better now. Unfortunately I am not very good at dialogue writing, so I don’t think I’ll be able to help much with this. But I look forward to the final product!

Ah, I’m sorry, somehow I had overlooked that you were offering money.

Still: if you’re looking for someone to share your dream, the other Wright Brother, that seems like it’d be hard to come by when your dream is already so well laid out. At least a short piece (I mean, one that takes something like twenty minutes to play) would make it easier to attract the dreamer who wants to play around with your system.

I’m not trying to discourage you, though. I wouldn’t be here if someone hadn’t decided to make another programming language that looked like English.

But a normal conversation usually isn’t wildly unpredictable; it wouldn’t be “normal” if it were. And while surprising things can come out at unexpectedly, they usually don’t. This thread, for example, now has 46 lengthy replies, yet I don’t think anyone would call it “wildly unpredictable” and I’m sure I’ve haven’t been truly surprised by anything that’s been said.

“Control” is a bit strong; “guide” is better. We want to subliminally guide the user to the correct solution. As Willy Wonka might say, “We [conversational storytellers] are the dreamers of the dreams”; our users are invited to share those dreams in an engaging and interactive fashion. And if one of our users decides he wants to be a “dreamer of dreams” himself, well, that’s why we’re trying so hard to make authoring with our system as barrier-free and simple as possible.

Yes. I’m sure I’ve been clear on that point. That’s why it’s called Conversational Storytelling – the telling of a story by way of (and solely by way of) a conversation between the user and the story’s main character. But “story” is a better word than “game”; the user doesn’t play works of Conversational Storytelling; he participates in their unfolding.

No. The parser is effectively “invisible” to the user, as my computer is “invisible” to me as I write to you.

Those two inputs would be considered synonymous.

Much of interactive fiction, yes. But not all. And certainly not the subset that I’ve been calling Conversational Storytelling.

Actually, I’m not saying that. I might, in the instructions for a Conversational Story, warn such a one that this is not “traditional” interactive fiction, and that he should not expect it to behave in the usual ways.

Old ground, perhaps. But the secret to success, at least as I’ve observed it, is mostly timing. There was a guy on TV last week successfully selling single-blade straight razors, of all things. Who wudda thunk? But successful or not, in this particular endeavor, I think the journey will be reward enough.

Don’t really know what you’re saying on that one. Zork simply doesn’t feel like Fail-Safe, however you enter the commands.

Sounds like a Catch-22 to me. “A working example” is essentially the whole project; size doesn’t matter since a true working example, however short, would have to exercise/exhibit all of the available features. And for the development of that, Orville needs Wilbur. Where are you Wilbur? Write me…

I downloaded Cal-3040. It’s still difficult for me to believe in your freetext system, but you clearly have some significant programming chops. Maybe you’re a past Loebner Prize winner or a Siri programmer or something, I dunno.

So let’s say you build the system, and it works exactly as advertised. It can reliably examine freetext English and correctly determine which of the possible prewritten options is intended. Cool!

I still wouldn’t want to work with a system like this, because experience tells me that it would place an insurmountable load on the writer. And even if you were a familiar luminary of the IF community, I’d want to see a completed example that shows me you have a solution for this problem.

Why am I so concerned about authorial burden? Take a Twine game (multiple-choice). Writing a Twine game can easily spin out of control if you don’t routinely prune your branches or twist them into a shape where they routinely rejoin. After all, if you don’t take that step, then even choosing among 2 options 5 times means writing 32 options at decision point 6. That’s exhausting.

(Your example syntax doesn’t show significant branch tracking, but I assume you have some way to handle variables, because otherwise the conversations will be visibly deterministic and one-word player responses will be disastrous.)

In Twine, I can limit the player’s choices, and I can rejoin tracks appropriately, so that’s survivable. A player might mutter about my specific decisions, but at least they’ll know what their options are.

But to my understanding, the system you’re describing leaves the tracks invisible to the player. I can set up what I think are reasonable options and I can try to cue them in dialogue, but players can’t see what I’ve actually implemented and haven’t implemented. That leaves me the choice between implementing everything they try, versus not implementing everything they try.

Take the “Guilt by Association” example, from the first page of this thread. I know the point here was to show the syntax, but even the initial message

…has a disastrous number of reasonable responses.

The suggested responses appeared to be:

Who are you?
What’s the problem?
Look around.
Why can’t you go home?
How old are you?

Other reasonable responses off the top of my head:

How did you get my number?
Are you lost?
You should call 911.
Where are you?
Where is home?

…and once the kidnappers, dresser, and gun are introduced, it gets even worse. Because now the player is trying to understand the situation and formulate a plan.

Tell me about the kidnappers.
Where did the kidnappers grab you?
Did anyone see you get kidnapped?
How long ago did the kidnappers leave?
Do you know what the kidnappers want?
Are your parents rich?
Are you tied up or handcuffed or anything?
Are you locked in a bedroom or closet or basement?
Slide the dresser in front of the door.
Check and see if the gun is loaded.
Do you know how to shoot a gun?
Everything’s going to be all right.
Take out one of the dresser drawers and hit the kidnapper with it when he comes back.

Again, none of these are unreasonable responses. But if I try to implement everything, then it’s easy to see how the frightening 2 ^ 5 of Twine could explode into an unachievable 10 ^ 5 or more.

But everything I don’t implement is a crime against mimesis - because it will break the illusion of communicating with another human being. This could be pretty fun for players, but in the same way that fiddling with a chatbot is fun. And if it isn’t fun, then it’s just frustrating, because their perfectly valid ideas are being interrupted.

You could implement a standard syntax of sorts, so that players aren’t freetyping to the same degree. I can see you did something of the sort in Cal-3040, and that would help set player expectations about what’s valid vs. invalid player behavior. (After all, if I type “pirouette across the room” into a Glulx game, I wouldn’t expect a valid response either. There are very specific rules about what you can enter into a traditional IF parser.) But then you’d have to teach your new syntax to the players, and that’s tricky.

Is it possible to get around the exploding-options problem? Maybe. But I don’t see how, and that’s a concern outside of the entire programming question.

Not that straightforward. I work in a call centre part-time, and you wouldn’t believe how people react to strange voices. Both of the above are possible. We’ve also had people threaten us, sing to us, pretend they can’t hear, pretend it’s a wrong number, we’ve spoken to people who seemed to be stoned out of their minds. A colleague of mine says she once interrupted a couple who was having sex, she could tell because the guy told her so and she could tell by the breathing. And then there’s people who immediately go “I’m at work, call me in an hour”, and who mostly did not hear what we said at the beginning.

So put “normal” out of your mind. “Normality” is rare enough in real life, and few people play games to experience something they live with alredy anyway.

No it wouldn’t! Why would it? It’d just have to exhibit some of the available features.

Thanks for taking a look.

That’s the question, isn’t it. Will Conversational Storytelling place an insurmountable load on the writer, or not? I (obviously) think not. But there’s really only one way to know for sure: find someone who likes writing this kind of thing as much as I like programming it and see what happens.

I see the process of writing a Conversational Story as the following 7 steps:

  1. Dream up a problem (say, kidnapping), with an emotion-evoking protagonist (innocent young girl), a reprobate and hateful antagonist (big hairy goon), and an ambivalent someone caught in the middle (the goon’s abused but submissive ladyfriend). Make sure the problem has an obvious solution for the protagonist (freeing the innocent young girl) with not-so-obvious side effects for the other characters (see below).

  2. Dream up a believable communication link (a cellphone, smashed by the goon, but with the text-messaging capability still intact).

  3. Dream up a setting (say, an attic) where the protagonist can (a) communicate with the user “offstage” and more-or-less “sotto voce”, while (b) maintaining contact with the other characters. The former is important because it helps the user bond with the protagonist; the latter gives the story breadth.

  4. Outline the obvious solution with a series of exchanges: the most obvious questions/commands with appropriately leading answers/responses (ie, responses with keywords that prompt the next question. These keywords are the subliminal clues that we persistently feed the user to keep him on – or return him to – the right track. They’re in italics, below.)

Who are you? Samantha. Help me.
Help you with what? I’ve been kidnapped.
Who kidnapped you? A big hairy goon and his ladyfriend.
Tell me about the goon. He smells. But his ladyfriend doesn’t seem that bad.
Tell me about the lady. He hits her, but she’s nice to me. Help me. This place is awful.
Where are you? I’m in an attic.
Can you get out? Maybe. There’s a hole in the floor.
What can you see through the hole? There’s a bed under the hole. The lady is sleeping in it.
Where’s the goon? He went out. Said he’d be back in an hour. Help me.
Can you fit through the hole? Yes. But I’d wake the lady. Help me. This place is awful.
What’s in the attic? Nothing but me and this concrete block I’m sitting on.

[At this point the user sees the solution but has to convince the protagonist to do it]
[The protagonist goes through the five Kübler-Ross stages of accepting an unwelcome reality]

Drop the concrete block on the lady. No! She’s been nice to me. [denial stage]
But she helped kidnap you; drop the block. You’re sick. [anger stage]
It’s called guilt by association, kid; drop the block. Maybe later. [bargaining stage]
The goon is coming back; drop the block. I’ll never get out of here. [depression stage]
No time to waste, kid; drop the block. Okay, I guess you’re right.[acceptance stage]
Drop the block.

[This is the climax of the story; the user’s job is done; action, as described by the protagonist, follows]

I dropped it. It missed.
Now the lady’s got a gun. She’s going to kill me!
I can hear the goon coming back. I’m in big trouble now.
Wait! She’s pointing the gun at the goon.
BLAM!

  1. The questions/commands above constitute the required exchanges of the story; label them as such. Then insert a scene break wherever a subsequent question requires information from a preceding exchange.

  2. Add in the optional exchanges. Include who, what, when, where, why, and how questions for every noun in the primary question/command set above. Also include any reasonable action commands for each of those nouns. Make sure (a) the responses do not introduce new nouns; and (b) the responses include the keywords from the primary question/command set.

  3. Beta test with at least three people of differing personality types. Focus on tightening up the primary question/command set first; make sure the obvious path is actually obvious. Then add in the color provided by optional exchanges. Collect synonym definitions and unusual expressions throughout and provide for them in the source.

I want to see one too. But I don’t want to write it myself because I want to see how the system works for a “typical” author so I can both make necessary adjustments to the system as we go along, and get a better understanding of what kind of “author instructions” are needed.

Yes. The difference is that a Conversational Story is a single-thread with color commentary. Short and sweet. Easy to author, fun to use; on to the the next one. We’re not looking at “great literature” here (though it might be possible to produce a great work with the system); we’re looking at template-driven short stories that entertain while provoking a thought or making a point. More like Aesop’s fables than Shakespeare.

No branches – except for optional exchanges (that always quickly lead back, by means of the subliminal keywords, to the main path). And no variables – except for scene breaks, which prevent premature questions/commands. I’m thinking we can probably allow optional exchanges in scenes prior to the current scene to be evoked at any time, but we need to test that idea further.

See all the above. If a typical work of interactive fiction looks like an elm tree, a work of Conversational Storytelling would look like a telephone pole with tiny little sprouts (optional exchanges) all along. Conversational Stories are the equivalent of short stories, not novels. It is expected that an experienced author will be able put one together in less than a month, and that the user will spend only a hour or two finding out what the author had to say. But the user will hopefully be left with at least one lingering thought that will make the experience meaningful as well as recreational. (Was it right to drop that block on the lady?)

I think – at least I’m hoping – that both authors and users will quickly acclimate to this particular genre of interaction fiction. They’ll come to understand that these are single-thread short stories with a main problem, a thought-provoking ethical dilemma, and a little twist at the end: text-based recreational diversions with a bit of philosophical seasoning. Once that’s established, I think most of the problems raised here will evaporate.

I suspect that most users will be accessing Conversational Stories on phones and small tablets (ie, consumer devices), not desktop computers (ie, producer devices). Which means they’ll be essentially typing with their thumbs and their inputs will thus be significantly restricted and more predictable.

I hope what I’ve written above helps. As I’ve mentioned in other replies, we’re taking the Kobayashi Maru approach to the whole problem; that is, when the solution gets too difficult, we change the problem statement. Hopefully we’ll end up with a problem statement that is robust enough to be interesting and entertaining, and a solution that is both simple and reliable.

I just remembered a small Flash game called “A Small Talk at the Back of Beyond” that I played a couple years ago. It seems to fit the Conversational Storytelling paradigm–it’s set as a short conversation through a computer terminal, and the parser certainly passed the Turing test for the limited set of input I gave it. Is that a good example of what you’re talking about?

See my reply to cvaneseltine just above. I think we’ll be able to find a niche of normal-enough users to make the genre popular.

These are stories, not games. It’s the story that provides the new experience to the user, not the interface. (The interface, like all good interfaces, will be transparent.) And yes, the user will be saying ordinary things to the main character in ordinary ways; but this won’t be boring because the main character will be in an extraordinary situation. If a story can’t stand on it’s own as a traditional, linear short story in printed format, it will be unsuitable as a piece of Conversational Storytelling as well. See again the 7 steps for writing an engaging Conversational Story in my post to cvaneseltine above.

Technically, that’s true. But it wouldn’t be an efficient way of proceeding – at least not for me. If the prototype includes only some of the available features, people will say, “It ought to do this” or “It ought to do that” and I’ll have to take the time to reply, “Yes, I know.” And then there’s the danger that they might get an entirely erroneous impression of the thing if the particular features left out are those that that particular tester feels essential. Just doesn’t seem like a path I want to go down. I think there’s enough information in this thread, especially at this point, to attract a writer with a bit of imagination and vision.

The left side of that game is similar to the interface I’m picturing; in fact, that’s all the interface there would be in our system (Conversational Stories are strictly text-only). But that game differs in two important respects:

(1) The computer’s responses are typically longer than they would be in one of our stories; think text-messaging when you think what I’m proposing; and

(2) In that game I’m not talking to the main character; in fact, I am the main character – the one who has a problem and has to act. Which leads to the same kind of disorientation that I lamented in my original post; if I’m there, in the story world, then who am I (out here)? In a Conversational Story, I’m me and I’m out here in the real world, as always; it’s the main character who is in the story world and who has a problem; my job is simply to help him/her solve that problem with pithy insights and advice. See the 7 steps for writing engaging Conversational Stories in my post just a couple above this one.

Though I have to say I’m not awfully interested in writing that kind of story, I’ve looked around a bit at your discussion of Plain English and it’s pretty interesting-looking. A lot of what you say about it sounds like things I’ve seen in Inform 7. For instance, this:

If the customer doesn't have a bank account, reject the loan; exit. If the customer has dues from a previous account, reject the loan; exit. If management approval is not obtained, reject the loan; exit. Allow the loan.

looks a lot like something we might find in Inform 7:

To decide whether (customer - a person) qualifies for a loan: unless the customer has a bank account, no; if the customer has dues from a bank account, no; if management approval is not obtained for the customer, no; yes.

Where you might also have to have phrases to decide whether the customer has dues from a bank account, and whether management approval is obtained. (I’m also not sure whether I’ve got the syntax quite right.)

And this, about how you write a definition for “To draw a string with a font:” to make coding things easier, is exactly like something that could be done in Inform 7. For instance, in my WIP, there are times when I need to have a ghost frighten the player (with certain consequences). At first I had this plugged into a code block where it happens, but when I had to have something similar happen in more than one place, I just wrote a phrase headed “To have the ghost frighten the player:” and now I can say something like “If [SPOILER], have the ghost frighten the player” and not worry about it.

So… I’m not sure that you’ll find your writer here, but maybe you could be trying to sell us on Plain English?

You’re exactly right. In fact, in a “decider” routine, we also “say yes” and “say no” (instead of “exit”) like Inform does.

One of the beauties of natural language programming is that when the machine doesn’t understand something you want to say, you can simply add an appropriate “helper” routine and then the machine will understand. Both Inform and Plain English are, in essence, user-extensible languages – where the extensions, once defined, cannot be distinguished from the rest of the language.

No doubt an easier sell here than on programming forums. The poll at the top of the thread you referenced above, for example, currently has these results:

[code]Natural Language Programming: Good Idea?

Yes 1 4.55%
Maybe 4 18.18%
No 17 77.27%[/code]
And the one “yes” vote was me! Nevertheless, it appears to be a topic that intrigues even those who are, at first blush, firmly against the idea (that same thread currently has 2,700 views and 115 responses and it’s only been out there a couple of weeks). And I think those “maybes” will eventually come around, like this guy did:

blog.wolfram.com/2010/11/16/prog … g-to-work/

You know, the more I write about this project, the more convinced I become that it really is a good idea. So I’m bumping the pay to $500 plus a 50% interest in the final product. Time to get this show on the road.

While reading about Plain English I found this:

Is there any website about “Plain Spanish” development?