Jump to content

View more

Image of the Day

Boxes as reward for our ranking mode. ヾ(☆▽☆)
#indiedev #gamedev #gameart #screenshotsaturday https://t.co/ALF1InmM7K
IOTD | Top Screenshots

The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.

Sign up now

Narrative interpolation

4: Adsense

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
71 replies to this topic

#61 Symphonic   Members   


Posted 30 January 2002 - 09:11 AM

Original post by Oluseyi
And now, I'll go set an example by deleting all my outbursts.
That really threw me off, I just read through the last nineteen posts and couldn't find half of the quotes people had of you. Your outbursts are quite plentiful

On a more related note, I have been doing extensive work on graph structures lately (in computer science), and I really think that the process of narative interpolation could be implemented quite smoothly using graphs. The trick lies in storing information in the Links .

To use a basic example, let us imagine a game world of four rooms. From every room, you can move to any other room in the world.

each room contains a StoryNode:
// FlagSet struct is just a large binary string

struct FlagSet
Implementation specific, but this should take the form of event scripts in binary, or references
to files that contain them.

// StoryNode class defines a location and settings which are linked to it (flags and the like)
class StoryNode
StoryLink linkages[3]; // explained later
FlagSet NodeState;

/* OTHER STUFF, implementation specific */


The room where the player character starts may contain some enemies or some NPCs of a friendly sort. Interactions cannot affect StoryNodes that are outside of the room (the NPC's influence space), but the NPCs can affect any connected StoryLink:
// StoryLink class has a list of information to travel to the StoryNode it points to

class StoryLink
StoryNode * Target;
FlagSet Contents;

/* implementation specific */

So lets say the PC is in room one, there is a townsman in the room with him, in room 2 is a bard, in room 3 is a beast and in room 4 is the inn.

The PC speaks to the townsman and tells him that he is going to kill the beast. The townsman is impressed and gossips about it. the gossip takes the form of a change in the flagset in the StoryLinks to rooms 2, 3 and 4 (however, the beast is the only game entity in room 3, so it's effects there are minimal).

The PC then goes to room 3 and kills the beast, and subsequently goes to the tavern in room 4 to rest.

If the PC took long enough to fight the beast, the bard would travel to room 3 and see it, and then go to room 4 and embelish on the tale. Then the PC would get free housing and food, otherwise, the bard would get there late, and the PC would have to pay the normal amount.
This is a menial example, but what's important is the implication of events.

An Event would be described in the FlagSet for any particular StoryNode in the game, and it's repercussions would not affect other nodes directly, but rather any connections that exist. The completion of a connection must be conditional, in order for the bard to embelish on the PC's feat enough, he must have travelled to room 4 first, and also have been there for a certain amount of time. It might be wise for the PC to visit (hitherto unmentioned) room 5 which contains a blacksmith who will spend time repairing the PC's equipment. The blacksmith may have previously heard about the PC's intent, and will ask how the fight went.

If the PC never told anyone, and a passerby saw the whole thing, then maybe he would have a similar (but delayed) effect as the original townsman. Or perhaps, if the PC is already famous, people would actually come to watch.

This is all trivial however, the real reason this implementation is useful is that the game only checks through currently active StoryLinks (those connections which contain a non-empty FlagSet). This could be accomplished by having another object contain a list of all non-empty StoryLinks. I don't expect that the game would process this information for every iteration of the game loop, but it may well be done quite often.

George D. Filiotis
Are you in support of the ban of Dihydrogen Monoxide? You should be!

[Edit: Just made sure source doesn't extend wider that page.]

Edited by - Oluseyi on January 30, 2002 7:56:54 PM

#62 Oluseyi   Members   


Posted 30 January 2002 - 01:15 PM

Original post by Symphonic
Your outbursts are quite plentiful


On a more related note, I have been doing extensive work on graph structures lately (in computer science), and I really think that the process of narative interpolation could be implemented quite smoothly using graphs. The trick lies in storing information in the Links .

Precisely! Just yesterday I was discussing methods of representing relationships between NPCs. My contemporary was saying that there would be very complex networks of interrelationships from NPC-to-NPC. I pointed out to him that if the relationships were stored externally, in either directed or undirected graphs, not only would less information need to be stored but fewer tests/searches/updates would need to be done. Currently, I see it as having each link contain data about the relationship as well as two identifiers specifying which "nodes" are at each of its ends.

I like your description of Events; it parallels my idea of how to represent relationships. In other words, be should be able to abstract such representations into a base case. As for processing only non-empty nodes, not only do I agree but I took it a step further to not even having empty nodes in memory (I''d like them to be asynchronously loaded/unloaded, with important changes being aggregated and then iteratively applied.

Good job. (I''ve got to go - Magic are playing Lakers in Orlando!)

#63 Symphonic   Members   


Posted 02 February 2002 - 07:54 AM

This inspired me:
The difference between fighting someone in a boxing match and fighting someone who doesn''t expect or "deserve" it is that the second action is cruel. Boxing is violent; bullying is cruel.

Basically, I feel that the idea has to come across that when you''re killing or causing harm to something in a game, that it''s for a justifiable reason (i.e. the person/creature has done something to deserve it). This is how most people define the difference between a police officer or a soldier killing someone and a regular civilian doing the same thing.

Another aspect is the amount of force used. Example: killing someone who attacks you is justifiable; capturing them and torturing them is cruel. I think a lot of people would consider it inappropriate for the second to appear in a game.
With this thought:

[Entity] := [Person] | [Person][Entity]

[Person] := {member of a Sentient race}

Each entity in a world has a mapping of links to other entities. Each link carries relevant information: What do I think of this entity? I am more/less powerful than this entity.

A Society is a set of directorates, defining rules of engagement between entities which follow that Society.

An Entity which conforms to a certain Society will judge the actions of another Entity, by comparing the actions to the rules.

An Entity which conforms to a Society will try not to break the rules of that Society when making decisions about its actions. Unless pressed by more powerful internal forces, which can be mapped from the 36 basic storylines (jealousy, threat on one''s life, threat on a child).


George D. Filiotis
Are you in support of the ban of Dihydrogen Monoxide? You should be!

#64 Anonymous Poster_Anonymous Poster_*   Guests   


Posted 03 February 2002 - 05:33 PM

Whoa, Greensboro, I live in Charlotte, would you know
if that class is taught here.

Pardon me, I haven''t read all the posts yet, so perhaps
someone has made the correction.
Waaaayyy back on the first page of this highly interesting
thread was an anonymous poster,

Original post by Oluseyi
What is a plot? A sequence of occurences with some form of correlation, and preferrably some dramatic drive.
If we can create environments that supply the first, and the user supplies the second, then why can''t we develop coherent and powerful plots from that? That''s the objective here.


I used to think this was the case. Apparently many logic oriented people think that is the correct definition (MIT computer dept, etc).

But this Xmas I changed my tune. I started reading some books by writers, and by those who teach writing, and they disagree. According to them, writing a story requires, *and is defined by* a meta-structure.

It''s not a series of events that happen to be related, it''s a larger picture where the events just flesh out the skeleton of the story. The events *necessarily* move towards an ending.

Here''s my problem, our dear and wonderful mod was talking
about plot. The ap was talking about story. They are different.
The mod is right about plot; the ap is right about story.
There most certainly is a structure to a story.
One of those elements is a plot. In support of my argument,
we call plot twists the unexpected events. Please notice I
say events.
Shrek is a good example. The story is one that we''ve seen
before. The plot twist(an event or you could say a condition)
was that the princess was cursed to look like a human. There''s
another problem, the curse was a condition but was revealed
in an event so to me it still fits my definition of plot twist.
Even if such a plot twist can only be defined as a condition
and has no chance to be defined in any way as an event it
would most likely then be called a premise, which is part of a
story and affects a plot. By a strange coincidence I actually
know what the two relationships are called-being a part and
affecting something, I''d have to look it up though. Find
WordNet, read the documentation and you''ll know what I mean.

Also, I think that MMORPGs seem to be very much like the
''millieu'' stories the ap also mentioned.

I believe I actually have a pertinent question though, what
would be easier to implement in a game, the original idea of the
post or something close to it as has been suggested, or
something akin to a massive a-life exercise. I suppose the
posted idea would be good for RPG''s and the second for
MMORPG''s or perhaps simulated MMORPG''s(where the characters
are all NPC''s instead of avatars and you don''t go online).

#65 Symphonic   Members   


Posted 04 February 2002 - 06:08 AM

You make an important point there. Plot or Story...

#66 Oluseyi   Members   


Posted 05 February 2002 - 07:12 AM

Sorry I haven''t responded to this in a while; I''m up to my eyelids in work. I just want y''all to know that I''m paying close attention (good distinction between "story" and "plot"), and have some updates to share as soon as I can find a few spare hours to marshall my thoughts. For example, we had a guy from some film school last Friday at the Ashy Dialogues and we discussed a lot of interesting thematic elements - some pertinent, some irrelevant, all interesting.

Hopefully, I''ll be able to provide details soon (maybe this weekend).

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

#67 Oluseyi   Members   


Posted 14 February 2002 - 09:29 AM

Time to ressurect this thread.

To summarise:
  1. The grand objective is to create a theoretically sound and complete system whereby plot elements and choices can be coherently presented to the player/user so as to form a consistent and entertaining narrative. Other than the overarching use of directing the user''s experience in the virtual world, this could find application in spreading the user''s fame within the world, in conveying information (with appropriate hyperbole, exaggeration and inaccuracies) from one part of the virtual world to another, or from one character/group of characters to another.

  2. There are the two approaches of "aggressive" and "passive" furtherance of the user narrative. The aggressive school of thought contends that the story should be "brought to" the user if the user does not seek out the story. In the context of games this is highly logical because story-driven games usually have some form of definite objective. The passive camp holds the alternative opinion that the users should be free to simply explore vast vistas and the environmental interactivity, and ignore the "quest" if they so desired. Both approaches are valid, and I borrow from both in constructing my viewpoint.

At this point it becomes necessary to introduce at least one example scenario to concretize discussion.
Assuming the oh-too-familiar medieval setting, our hero is a rustic woodsman. There is a broad threat of impending doom, hereinafter referred to as the Menace. By some "twist of fate" (aka designer technique to draw user into quest), the user is given motivation to pursue a course of events that will lead, eventually, to the Menace, with the obvious objective being to destroy said Menace. A nice, familiar example is the brutal butchering of the hero''s family and a desire to see justice done (not revenge!)

At this point the narrative splits into the aggressive path of seeking out the perpetrators of said ghastly act, and the passive path of retreating into the countryside, healing emotional wounds, remarrying and building a new family. Since we desire flexibility and non-linearity, we also encompass the option of remaining in the same location and taking on any job for sustenace as part of the passive path.

Proponents of the aggressive approach will then encourage that the Menace be brought close to home - say, pillaging a nearby village or having a straggled visitor appear with news of sighting the murderers nearby. The villagers would then rally and encourage the user to seek them out: "Sven, you hafta do what''s right by Myrna" (Myrna being murdered wife). However, the user would still have the option to ignore the threat, though it would gradually increase until the user''s very village was occupied.

Eventually, in the aggressive approach, the user will be forced to take action (and reluctant heroes make for such compelling characters because they are so much more like the rest of us).

The passive approach would allow the user to simply remain as-is and experience the virtual world. While this approach has its merits, it doesn''t provide much "game" and therefore will not be pursued in this discussion on this forum.

Obviously, in order to motivate the player towards the designer-intended path (without resorting to "force") there needs to be a method of notification - receiving news from other places. For consistency, NPCs and locations also need to be able to react to events, and maintain a sense of history. Since actually modelling the chronological memory of every object is ridiculous (and redundant for areas never visited), I proposed the notion of an event node.

  1. Event nodes signify what happened, when, where and who was involved. The reasoning was that, and I quote
    A level is a geographical location, and is unimportant in and of itself; it is what transpires at that location that creates story/drama/tension/etc. Locations could (should!) be dynamic, responding to events. By this I mean, the installment of a despotic tyrant would probably lead to widespread poverty, so buildings would begin to fall into disrepair and people would look more gaunt, etc. See Black & White''s implementation of responsive environment wrt how you rule/reign/govern your world.

The introduction of this concept spawned a bit of discussion on the necessity of there being a "story" to drive the user back towards the goal, and the instrinsic necessity of the goal. While I at the time advocated the position that the "ultimate objective" could potentially be dispensed with, subsequent discussion led me to realize the decline in entertainment value were such to happen. Thus the modified principles of the aggressive path articulated above.

The advent of events and the concept of notification/communication then led, in other discussions, to the realization of the necessity of a means of representing relationships. Information does not randomly disperse. Elimintation means of public information such as newspapers, television and radio, information is passed person-to-person between friends, colleagues, acquaintances and the chance person next to you at the bus stop, for example.

  1. Relationships between two entities are defined as a pair of "links" where each link has properties that represent level of friendliness, respect, trust and other such qualities. Note that the values are not bi-directional! Peter liking Jane does not mean Jane doesn''t think Peter is a slut! Placing these paired links as edges in a directed graph (in which the entities are the nodes) allows secondary knowledge (Jane will talk to Billy because he is Peter''s friend, but since she doesn''t trust Peter she is also careful with Billy). A further emergent property is that the lowest-cost edge is the determinant of behavior (such that even though we would assume Jane wouldn''t like John because he''s friends with Peter and Billy, he and Jane know each other directly and independently of Peter and Billy, and as such have a great relationship). This would allow for the modeling of complex relationships and behaviors at no additional overhead. An example behavior would be hearing bad things about a close friend, and taking them with doubt since the relationship link between the primary and friend is stronger than the primary and the news source. If, however, the news turned out to be true, the loss of trust would be more severe...

These are the four core elements identified so far. Please feel free to critique this list, as always. This is an organic "document" and a product of the genius of the individuals who frequent this forum and have contributed to this discussion.

In class we will start discussing AI methods of planning and organization this coming week. As usual, I''ll keep this thread updated. A fellow participant and I are planning to write a paper based on research, analysis and discussion carried out for this class, and to attempt implementation. I''ll keep you posted.

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

#68 Oluseyi   Members   


Posted 22 April 2002 - 06:52 PM

This is Symphonic''s fault; he linked to this thread from another one and I jus read through all four pages. Here''s a major update:

The course was an effective disaster. Tons of potential, completely squandered by the conceptual myopia and intellectual laziness of the professor. She would invite speakers about whom she knew nothing other than a blurb that they were involved in "interactive art" - the last lady had us sitting through a mind-numbing, parallax-scrolling Quicktime presentation of some sort that had me asleep within five minutes (and drooling on myself too!)

Then we studied the various works of her friends (the overemphasis on the works of others rather than on investigation of unique definitions and technologies is very infuriating) as well as ancillary, non-critical material such as dance, film techniques and so forth. The lady is graphics-obsessed (I fought my way out of using Alice, but I can tell she''s not pleased) and never sees "narrative" in contextually rich material presented in non-3D form (she, however, sees narrative in badly modeled and animated multicolor snowmen dancing in a circle on a red stage...)

After this week I''ll be largely free, and will start writing up my thoughts on the matter. I''ll also be implementing some of them over the summer.

[ GDNet Start Here | GDNet Search Tool | GDNet FAQ ]
[ MS RTFM [MSDN] | SGI STL Docs | Boost ]
[ Google! | Asking Smart Questions | Jargon File ]
Thanks to Kylotan for the idea!

#69 denver   Members   


Posted 03 December 2003 - 12:12 AM

Original post by Anonymous Poster
But this Xmas I changed my tune. I started reading some books by writers, and by those who teach writing, and they disagree. According to them, writing a story requires, *and is defined by* a meta-structure.

Those who teach writing are the damned.

/* what matters most is
how well you
walk through the
fire. */

#70 liquiddark   Members   


Posted 03 December 2003 - 12:52 AM

This post courtesy of the 18 months ago gnomes.


#71 Neoshaman   Members   


Posted 03 December 2003 - 07:49 AM

hello why i haven't seen this before (ok i was not here in 2002)
this what i have post on the ai forum i would like if there is some feedback from those whic have participated to this thread
it's a sum of what i have done so far

Original post by Neoshaman
i'm come back
i have extract meaningful things from my work to be post
it's a little beyond the scope of simple interlude and come to full generation of story as far as i can go with it (subjectivity and creation is my prime target)

here is the analysis
actually story generation rely on random content make coherent with a set of rule to acheive story, but if random is good for the sake of diversity and rule for the sake of coherent it's not complete enough to make interesting story (objectively), well as far computer has made thing the same complain emerge, the flatness of the content but if thinks it's due to the mechanical aproach of the problem since it's the major problem to overcome first and what we have to focus the major time
then as a art student i will add that most artist atteimpt in their world >>> conjuring of meaning
so far as humanity made art it was to express something, then art must have a meaning, meaning would be define as the relation between us and the world and between element of this world.
story then is a language to say something, this mean a syntax, the syntax is what encode the message, but analysis of the syntax doesnot help about the message, it's the message which give form to the syntax

then from actual story generation i have use one more layer >> theme (there is a higher level i would call idea which come from the experiance and lead to the message then the theme but it's not the actual focus)
what is a theme?? the theme is what a story is about, the message, the content, the experiance to share aka the SUBJECT, whithout subject the story as no focus aka no interest, a story is tied to a set of value to express, even simple one
what the theme does for the story?? it tells its problematic and then induce the dramatic tension, the problematic as to be respond and every element of the story is choose to underlign every aspect of the problematic, the theme create the discursive of the story and by the thesis antithesis create the conflict which would ended up in the conclusion (the response of the problematic), the theme create the balance of force and is responsible of all the story
the theme is express by a single question or sentence (easy> good and evil, another one could be are we important in the universe scale? or else freedom)

from the theme everythings fold, the way we choose the character, the shape of the setting, action which could be take, events which would happen and place where we would have to go...
thethings we have to understand is that all these things are symbol and sign (they convey meaning)to tell the theme and them as an articulation of the message in a syntax which the story structure
hitchcock says "remove all the mundane and you will have a great story" or something like that, what is the mundane?? i would define the mundane as everything which is out of the topic (theme), then if the story is about mundane thing we have to remove all the heroic out of place (send into the background) the theme direct the focus, it emphazise thing about the topic while inhibit other things (well they are still here but in background or else it would not be beleivable if things act out their nature and could add a kind of depth like things is living out of the focus)
theme layer is responsible for general direction and must always deal with abstract content (love, humanity, poverty, war etc... general and universal,we would know why later) and also choose the tone and the genre

under the theme i have design three object which use the ouput of the theme processor as input (note: that the theme processor has not to be absolutly code, if the designer can do the job, everything is not to forget the importance of the theme layer)
the first object is the character processor, i would discuss it in the proper thread
the second object is the setting processor
and the third is the dna (dinamic narration automaton) which is in charge of the telling

the two first share the same layer and are build together
let's talk of the setting builder
once he theme is generate, the theme builder take the output and process the abstract theme into concrete theme
what is a concrete theme??
concrete theme is the actualisation of the abstract theme in the specificity of the settings, the settings which is the time, the place , the situation etc... (ex citizen kane a abstract theme is the seek of power and the concrete theme is becoming THE first man of press, ok there is another abstract theme among this one in the movie related to his young time, but, heh, i guess you pick the point, another one would be love (abstract) in the conquest of the farwest)
in one word >> it shape the environnement where the action would take place in order to kept the focus by using basic unit in a meaningful syntax, basic unit would be choose according to their value in a context (context and syntax is important a < b is not the same as b < a even with the same element)

then now we have the narration engine (dna stupid but it's just me)
once the setting is choose and the agent set, the story can begin
all story has a basic structure in 3 part (but we can have also the hoolywood 9part, which expand a little but 3 is really the basic)
the first part is the exposition
give an idea of the situation and presentation of important thing (the theme, preparation of the drama, presentation of the balance of force, the pov,the ambiant, etc...)

after that came the main story itself
the story begin with a crisis (a)which lauch the main action and finish with the paroxysme (b), can be define as the path from (a)to (b)
here is all the work, the dna must keep track of all action, have to kept the coherence of the story, and keep it all with the theme, he is responsible of the generation of content and scene and the organisation in a meaningful sequence, has to maintain action and manage agent through general direction (mostly by inhibit reinforce decision and objective, or by changing their state/fct), manage the tone of each sequence as well, and manage the information gathering to the player (by playing with the focus) all root with the player action and the theme restriction
everything must be the expression of the theme, all action is a related to the message and drive to the response gradually, at each step the tension must increase the unstability of the force state must increase to a dead end (paroxysme) where the conflict is at his maximum point and fill all the story space and could no more be avoided, he is the absolute expression of the message as a question, and then has to be respond in the final conflict where there is no certainty until the end of the conflict which would be the answer (or one of the possible answer) to the conflict,
the dna work the a schema of action and balance of the world which represent the state of the story (actually this schema is use with a hierachy, with the general force shema to the end character schema in each force in the balance and sub force as well which help manage the whole and retreive information, he kept also a profile of the player to plan next action to take, and work like something like an RTS for planning and a chatterbot for semantics )
the 3rd part is the conclusion and is built with the outcome of conflict as a answer to the problematic
actually their is one main goal define from the beginning set with theme, and which is scatter to sub goal in order to acheive the main goal, these are sequence and have a unity of action and semantics, they has the same 3part structure as the main goal but are smaller, they must be semantics unit and are compose with scene (unity of place and time, well mostly) they are also place to sub theme within the main theme and help deepen the action, meaning, character, setting, etc..
they have also internal conflict and obstacle

well the whole system is based HEAVILY on database, lisp freak would like it
i have try to make it the most general possible, we have just to find the basic unit of each part and system and give them a semantic value unit as well

any comments?? what do you think about it??
hell it was hard because there is a lot of specific term i could'nt translate, then it can seem a little confuse (on my book , i have write it with far more detail...)

check the other thread for fictionnal character (sooner i'm tired)
oh, i will come also with a post to concretly respond on the main question of bishop >>> interlude in the simplest way

oh i will drop for a while with this (after posting) i have to focus on other matter >_< i will restart a try to find simple way to do the same in less detail fashion but still enjoyable (dinamic story using hierarchical fms only)
and i have to try to implement as well, speaking is good but making is better

be good
be evil
but do it WELL

actually i like the caracterisation into passive and agressive of approach (i was refered before on simulation vs narration)

i'm techie+artist without being any of them i'm a gamedesigner (ok soon if i made a game to validate it)
but as far i have seen lot of analogy with programmation, complex system, cellular automaton to make it (using also writer advice)

EDIT: oh! i have forget, this system is ending driven but could be turn to be never ending just like series, with the matter which remain unsolve, and is narrate with endless subplot
actually there is two kind of series i know:
those i have label complex, where the subplot add to themselves in each episode and the world grow in complexity
and those label simple , which end a subplot and restart from initial state
a complexe one could be like the anime INUYASHA while the simple one could be like the anime KIM POSSIBLE (ok i haven't better ex right now)

be good
be evil
but do it WELL

[edited by - Neoshaman on December 3, 2003 2:55:13 PM]

[edited by - Neoshaman on December 3, 2003 3:03:42 PM]

#72 rmsgrey   Members   


Posted 04 December 2003 - 03:42 AM

Going back to the topic of top-down plot construction (take an overarching structure and derive the events of the story from the central idea rather than just going along and seeing what happens - analytic rather than constructive approach)

My feeling is that, while "great" stories have a high-level structure of this type, and all the individual threads and characters tie together into a whole, if it''s done properly, the individual components inevitably lead to the high-level structure at least as much as the high-level structure implies the low-level entities. This means that you can start equally well from the high-level structure and derive the low level events or from the low level events and extrapolate the (unique?) high-level structure that ties them all together. Of course, neither problem is easy, but that doesn''t mean that either approach is invalid.

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.