Advertisement

Narrative interpolation

Started by January 17, 2002 04:14 PM
70 comments, last by Oluseyi 21 years, 2 months ago
Oluseyi, I thought u might find this article real interesting. Its not directly about narrative interpolation but the authors concept of a ''frame'' can be applied to both dynamic plots and making intelligent NPC''s.

http://web.media.mit.edu/~minsky/papers/Frames/frames.html

-potential energy is easily made kinetic-

-potential energy is easily made kinetic-

Thanks, Infinisearch. I''ve bookmarked it for future reference.

[ GDNet Start Here | GDNet FAQ | MS RTFM | STL | Google ]
Thanks to Kylotan for the idea!
Advertisement
I''ve followed this thread with some interest, since this is similar to what I''m attempting to do with my efforts. I have a couple thoughts that I''d like to throw out.

The original impression I got from this discussion was a way to interpolate the story between fixed plot nodes. Is that accurate (at least as it applies to games)? The nodes themselves are fairly static, and built into the game. In my vision of how this would work, the game itself doesn''t generate nodes, it only seamlessly presents story elements to take the player from one node to the next. At each node, elements of the player''s "style" could be analyzed, and the next set of story elements presented in a way that appeals to the player. At each node, there would be multiple paths leading to other nodes. The game designer would build a huge web of nodes, covering most conceivable activities. If a player goes off and does something totally offbase, then the system would gently nudge them towards the nearest node. In this way, the player gets a great deal of freedom, but you don''t need a HAL9000 to run the game.

Is this even close to what you guys are thinking?

My other thought is on state. You''ve mentioned databases for relationships and other activities. The way that I''m approaching it is with a dictionary system. Each entity in the game has it''s own dictionary, and as events affect it, entries are added to it''s internal dictionary. Some of those events just get ignored (the entity doesn''t know how to handle them), while others modify the behaviour of the entity. The nice thing about a dictionary is that it frees you from defining (and thus limiting) the types of information you can hold at the beginning. Here''s an example: Say the hero slays a dragon. In addition to whatever story specific things happen as a result, a "Deed" entry is added to the dictionary of every wandering bard within a certain range. Within that entry are things like what the deed was, where it happened, if the deed doer was wounded, etc. The bard then goes on to compose his songs and poetry from the deed information that he has.
Another example is a "Gossip" entry. Whenever a certain class of events happens, a "Gossip" entry is added to anyone who witnessed it. They in turn share that entry with everyone they meet. Gossip has a time limit though, after a while the person stops sharing it. So if the player goes into a village and tries to rob someone, that will get around and affect how other people view the player.
The entire state (all of the dictionaries) can be written to or read from disk at any time.

Whew! That''s getting pretty far afield. Tying the two thoughts above together, the story nodes would actually be able to manipulate the state of other entities, to build the story around the player. The player''s activities would be reflected in the state of everything around them, which the system could then analyze to present the player with more of what they appear to want.

I''m not sure if this is really what you guys are discussing, but this is the way that I''m approaching it in my project, and thought it might be relevent.

Thanks for such a compelling topic Oluseyi!

Take care,
Bill
quote:
Original post by Siebharinn
I''ve followed this thread with some interest, since this is similar to what I''m attempting to do with my efforts. I have a couple thoughts that I''d like to throw out.

It is always in "throwing out" such thoughts that some are inspired.

quote:
The original impression I got from this discussion was a way to interpolate the story between fixed plot nodes.

This is a fairly accurate description of how the system I envisaged stands right now - at least theoretically. The key thing is, though, that I''m not trying to impose any specific intent upon it. I want this to be a melting pot, for different people to leave this discussion with different ideas and for those ideas to be implemented in different ways. Everything that adds to the interactivity, non-linearity and non-deterministic nature of electronic entertainment is a definite bonus for us all.

In my current version, I don''t have the gentle nudges to get the user back into the story, but that would be a logical extension/modification/feature for videogames (you don''t want a user to think your game sucked because he never ventured in adventure''s direction, the ass!)

quote:
Is this even close to what you guys are thinking?

Heck, i''d say it was spot on!

quote:
My other thought is on state.

I like the "deed" and "gossip" systems, and briefly discussed something similar. Such background relationships are crucial to truly bringing environments to life with people that the user can enjoy interacting with. Being able to seek hospitality at a nobleman''s court only to find that your reputation has preceded you, and that the local bards have embellished your deeds so that you''ve now killed an entire brood of dragons rather than one - with no shield and only your trusty sword!

Ah, I love this stuff!

quote:
I''m not sure if this is really what you guys are discussing, but this is the way that I''m approaching it in my project, and thought it might be relevent.

I feel you''ve given us some very practical scenarios within which to consider the applications of the techniques we''re discussing. I''ll probably refer back to your examples frequently from now on.

quote:
Thanks for such a compelling topic Oluseyi!

Thanks to all for being such a receptive and intelligent community! I''m just trying to give a little back...

[ GDNet Start Here | GDNet Search Tool | GDNet FAQ | MS RTFM [MSDN] | SGI STL Docs | Google! ]
Thanks to Kylotan for the idea!
The chief problem I see with this approach is that the resulting story/narrative will have little to no life or pizazz whenever it veers away from the pregenerated content/storyline. Yes, it will be able to nudge you back towards one or more of the author's intended story arcs, and it might even generate believable dialog, given that the B characters are all on drugs, or had lobotomies, but I think it would be challenging to get the story to be truly dynamic.

At best, this will be analogous to the expert system that listens to 100 Mozart pieces, builds itself a Hidden Markov network, and then spits out a million inferior pieces that sound like what Mozart would produce after he had a stroke. Yes, it will indeed capture his style, but it will not string it together in anything better than a probabilistic construction. The psychological heuristics that distinguish this from the real thing will be absent.

In the end, the more human-generated content you feed this thing, the longer it will be able to improv on it before the player sees the man behind the curtain.

The scary part is that I think you COULD use something like this generate the scripts for any Aaron Spelling television show or the more recent Star Trek series. I remember a madlib program from 20 years ago that didn't do a half-bad job generating plotlines for network television.



Edited by - varelse on January 28, 2002 1:23:16 PM
quote:
Original post by varelse
The chief problem I see with this approach is that the resulting story/narrative will have little to no life or pizazz whenever it veers away from the pregenerated content/storyline.

I disagree. This is not a computer science experiment; the field of interactive narrative has professionals from literature, theatre and film, liberal arts academics and computer scientists collaborating and sharing information to build reasonable models. You're thinking purely in terms of existing technology rather than trying to find the limitations of such systems and solutions to those limitations.

[Edit:] For propriety.

[ GDNet Start Here | GDNet Search Tool | GDNet FAQ | MS RTFM [MSDN] | SGI STL Docs | Google! ]
Thanks to Kylotan for the idea!


Edited by - Oluseyi on January 29, 2002 5:28:57 PM
Advertisement
quote:
Well aren't we cynical?


No, "we" plan to ship something in the next year or two. I looked into Author. Beyond its superior use of pronouns, it's not all that far beyond SIR from the Minsky lab.

quote:
I disagree. This is not a computer science experiment; the field of interactive narrative has professionals from literature, theatre and film, liberal arts academics and computer scientists collaborating and sharing information to build reasonable models.


Your point? Does that mean if I put a digital watch and some nuclear material into a microwave oven and turn it on, then I can travel back in time? Putting a bunch of "experts" together achieves little on its own IMO. Exactly why is this going to make a difference other than to create a lot of sound and fury?

quote:
You're thinking purely in terms of existing technology rather than trying to find the limitations of such systems and solutions to those limitations.


OK, here's the problem. Have you seen one of these contraptions tell a joke? Have you ever seen an original creation from one with more life in it that See Spot Run? I think there's quite a bit of use for this technology in bending an existing storyline to better fit the actions of a player (as in make the story come to him rather than vice versa), but call me a human-chauvinist, I've never seen an act of artistic creativity arise from a computer (yet).

So I looked into the claims of "believable dialog." Let's see what the state of the art, Author, can put out:

"Hello," greeted the wolf, who was a cunning looking creature. He asked, "Where are you going?"

"I am going to my grandmother's house," she replied.

This isn't real dialog IMO. This is an oral recitation of facts from a database. This is dialog (IMO of course):

LEONARD
Beg my forgiveness! Beg my wife's
forgiveness before I blow your brains
out!

TEDDY
Leonard, you don't have a clue what's
going on. You don't even know my name.

LEONARD
(triumphant smile)
Teddy!

TEDDY
You read it off your f*$k!n6 photo. You
don't know me, you don't even know who
you are.

Can you tell the difference? Because your audience sure can. If you use something like Author (or some sort of spinoff) to generate your dialog, you're going to end up with something with the life of an Ed Wood script, and people purposely imitating it in order to make fun of it:

LEONARD
I want you to apologize, then I will shoot you
with my gun.

TEDDY
Do you know what my name is?

LEONARD
Your name is Teddy!

TEDDY
Did you know my name is on the photograph?
You have amnesia.

Tell me the data structures and interface you'd create in order to allow a writer to imbue a script generator such that it could spit out the human-generated dialog fragment above without having every single element of each scene spelled out to it in more detail than writing the scene itself and you'll have a convert. Until then, yep, color me skeptical.

quote:
I'll stop before I say something truly unretractable.


Now this is truly puzzling. We both have the same goal here: creating a believable narrative. However, I think you're buying too hard into a dream that's just that for now. Small steps are important, and Author definitely constitutes a small step, but we are far, far away from generating a halfway interesting story by computer.














Edited by - varelse on January 28, 2002 3:31:53 PM
quote:

Tell me the data structures and interface you''d create in order to allow a writer to imbue a script generator such that it could spit out the human-generated dialog fragment above without having every single element of each scene spelled out to it in more detail than writing the scene itself and you''ll have a convert. Until then, yep, color me skeptical.



Obviously we''re not there yet. But we won''t ever get there if someone isn''t willing to TRY and get there. You''re basically saying that it can''t be done, so don''t try. If the rest of the industry had that attitude, we''d still be playing pong.

In my project, I''m not attempting to auto-generate dialog. What I''m trying to do is to select the best pre-written dialog based on the actions of the player. The story is written in fragments, and those fragments are strung together in a way that''s (hopefully) more meaningful than forcing a simple linear story on the player.

Take care,
Bill
quote:
Bad analogy. The point is that those individuals have certain knowledge that they can contribute, while individuals outside those disciplines can adapt and apply that in innovative ways.


From 10 years in academia, I can sadly assert that putting together individuals from disparate fields generates sound and fury, but little more. The artists have all sorts of crazy ideas, but no clue which ones are practical, and the techies won't understand a word of what the artists are getting at. It's like herding cats. You'll see: it's a valuable learning experience.

The people that step into catifghts like this and produce magic are the rare ones that are both artistic and technical. But there just aren't that many James Camerons or Orson Welles in this world.

quote:
I can't understand your fixation on Author either. I don't use Author; in fact, I've never even evaluated it, and I'm not in the least bit interested in it. Author was an example of primitive applications in a new field. The objective here is to test the limits of imagination, tethered by the reality of existing knowledge to come up with creative new models, tools and applications. It's not to help you ship your fucking title.


Actually, you brought it up in the initial post to this thread. It's less a fixation as it was an evaluation. I'm looking for cool tricks. It didn't impress, but the creator was definitely clever, and some of his tricks might make it into my own pet project.

quote:
If you actually read the posts, you might have noticed that we're not simply interested in text generation. We're interested in representing situations and events, and the relationships between them; in modeling interaction between non-central characters in such a way as to provide a believable context for the story. It is this context that will provide the additional information necessary to generate believable narratives.


And this is where we diverge and yet agree. The marines and the Covenant characters in Halo construct quite convincing narratives for themselves based on a combination of canned content and a great state machine implementation. In particular, the aliens charge you, they run from fire, they group attacks, and they wait until you're close and then lob a sticky grenade at you. Meanwhile, they have a huge pregenerated set of insults and taunts. The illusion is quite convincing for a few hours. Then it starts repeating itself and it breaks down to just really nice combat AI.

Any advance that reduces the combinatorial explosion in creating the above canned content or extends the life of it for NPCs is indeed an advance. Setting story nodes and then gently nudging the protagonist back to the story nodes whenever he strays for too long would also be an advance as it could cut down the aimless wandering that plagues so many RPGs. It's the same sort of thing a good Game Master would do. Generating events that will do this ought to not be so hard. Getting a sense of when and how to do this is the devil in the details that IMO will require human involvement for some time yet.

quote:
Factor in advances in AI - neural networks and learning systems capable of understanding/assimilating the tenets of human emotion as well as the methods of representing them textually to an audience, and we might have something worthwhile.


Neural nets are 40+ years old! Little has happened with them in this time other than a few refinements on experiments done 30 years ago. And if you create a system capable of understanding and representing human emotion, you'll be a legend. But there's a good reason it hasn't happened yet. Chris Crawford has spent over a decade on this and Will Wright neatly trumped him comparatively overnight with _The Sims_ IMO. Note that the latter had the pressure of actually producing something rather than whittling away his days eating lotus root. It's much like the space race: the right amount of pressure can really focus the mind.

quote:
We don't have the same goal. I don't, frankly, give a flying fuck about the next narrative. I'm interested in developing a technology that may take years to mature to any reasonable level, but one that has the potential to revolutionize the interactive entertainment experience. If every time an idea popped into someone's head they said "well, this is so far away from being useful - I'm buying too hard into a dream yadda yadda", where the fuck would you be? No car. No computer. No pencil. No electricity.


If every time an idea popped into your head, you spent 5 years chasing it, you'd be dead before you reinvented the wheel. And that's where the bullshit detector distinguishes a dreamer from an inventor. If Edison had spent his life trying to perfect a warp drive, we wouldn't have the light bulb, the phonograph, or motion pictures (well, we probably would have them, but not from him). Dreamers are all sound and fury. Inventors change the world.

quote:
Comments, critiques, suggestions all welcome.


False advertising at its best it would appear...



Edited by - varelse on January 28, 2002 5:29:42 PM
quote:
Original post by varelse
And this is where we diverge and yet agree. The marines and the Covenant characters in Halo construct quite convincing narratives for themselves based on a combination of canned content and a great state machine implementation.

Consider this idea (which I have also proposed on these boards somewhere):
There exist rules-based text-to-speech (TTS) engines, but they provide rather poor voice quality. On the other hand lie concatenative speech synths, which "smush" prerecorded words together to construct sentences. I propose a middle road, where the rules-based approach is applied to prerecorded allophones (phoneme transitions) to generate coherent speech. Emotion can be applied through annotations (often implemented as waveform modulation), a practice that is already widespread in the TTS community. Coupling this speech synthesizer with a comprehensive dictionary, a "thesaurus" (to allow the AI generate similar-but-not-identical statements and a decent state machine, it would be possible to create in-simulation NPCs that converse in significantly more interesting fashion than the current crop of repetitive drones.

Fantasy? Not only is this idea very workable (one of my former employers had a rules-based engine that could switch language and voice parameters on the fly, for 13 languages at the time I was there - all within 4KB and in real-time), but it is applicable to the matter being discussed here.

quote:
[If] you create a system capable of understanding and representing human emotion, you'll be a legend. But there's a good reason it hasn't happened yet. Chris Crawford has spent over a decade on this and Will Wright neatly trumped him comparatively overnight with _The Sims_ IMO.

Perhaps the secret lies in following the Will Wright approach and approximating these ethereals rather than trying to completely represent them? Perhaps extending that approach to the topic of discussion will yield near-immediate, useful results?

quote:
If every time an idea popped into your head, you spent 5 years chasing it, you'd be dead before you reinvented the wheel. And that's where the bullshit detector distinguishes a dreamer from an inventor. If Edison had spent his life trying to perfect a warp drive, we wouldn't have the light bulb, the phonograph, or motion pictures (well, we probably would have them, but not from him). Dreamers are all sound and fury. Inventors change the world.

To be an inventor, one must dream. One must then attempt to concretize one's dreams by expressing them in logical terms, after which one attempts to implement them. Should initial attempts fail miserably, one may choose to persevere, postpone or just plain give up. Alexander Graham Bell never built the hearing device he promised his deaf wife, but in its pursuit he developed the telephone. And maybe we will not complete this, but it may inspire us (or even others) to build other tools and systems, and if that is the case I shall consider my life well spent.

Ideas are born to be shared, to be expressed and pondered and examined. We reject thousands of our ideas each year - well, at least I do. Spending time examining some is not a loss, but a gainful pastime.

[Edit:] For propriety.

[ GDNet Start Here | GDNet Search Tool | GDNet FAQ | MS RTFM [MSDN] | SGI STL Docs | Google! ]
Thanks to Kylotan for the idea!


Edited by - Oluseyi on January 29, 2002 5:31:00 PM

This topic is closed to new replies.

Advertisement