Symphonic:
You are a genius! You have fully comprehended the objective, and you have also taken the words right out of my mouth to respond to JSwing (and probably phrased them better than I could have). Thank you!
Writers write specifically to convey a particular sequence of developments, instances that propel the reader/plot/central figure towards a specific conclusion. Their insights, while valuable in general, are virtually completely unapplicable in this arena. Here, we are trying to make all plot decisions the responsibility of the user/reader. We want the user to decide what dramatic (or not) courses of action to pursue, which environments to explore and which to breeze through. We want to give them total flexibility.
Over the course of the next 3 months, we''ll be developing our ideas constantly, and I''ll probably be working on a text-based implementation that generates scenes in the form of screenplays. I think that''s the most reasonable and efficient way to pursue this ideal at this point in time, as graphics tends to clutter the objective. Hopefully this thread will remain a source of criticism, discussion, insight and analysis.
[ GDNet Start Here | GDNet FAQ | MS RTFM | STL | Google ]
Thanks to Kylotan for the idea!
Narrative interpolation
Well, maybe my last post showed that I don''t really understand
Does someone want to explain this in layman''s terms? I still don''t see at all how you can generate a storyline from what a player does. Are you saying it searches for some sort of correlation between past events and information seeded into the world to try and find something that resembles a story, and then elaborates on it by placing other information into the world? I think it all just seems a little too abstract to me right now
[ MSVC Fixes | STL | SDL | Game AI | Sockets | C++ Faq Lite | Boost ]
![](smile.gif)
![](smile.gif)
[ MSVC Fixes | STL | SDL | Game AI | Sockets | C++ Faq Lite | Boost ]
quote:
Original post by Kylotan
Are you saying it searches for some sort of correlation between past events and information seeded into the world to try and find something that resembles a story, and then elaborates on it by placing other information into the world?
Exactly.
Let''s say we have an environment - a world, so to speak. We also have a basic premise - the battle of good versus evil (in fact, to make it simpler, let''s use a familiar environment: Star Wars). The Empire is encroaching on the freedoms of all and intends to conquer the universe and rule with an iron fist. You are a young Rebel fighter named Luke Skywalker.
In a conventional game, you are faced with a series of tasks to complete in order to advance along the story. In this situation, however, we say that you can choose to be "disillusioned" are leave the Rebels. Heck, you could return to being some form of shepherd laboring away in insignificance under the oppression of the Empire. Most people wouldn''t do this, and many would ask why we would even include such an option. Well, if such flexibility is built in, then there''s virtually no limit to the number of interesting things people might be able to do. The story that results may be "There was once a farmer who was able to breed the perfect sheep. He won first prize at the national sheep convention, and his wife''s pies were voted ''Best Of Show''."
Insignificant? Within the context of games, yes. Within the context of literature and interactive narrative (which is where this idea starts out), not by a long shot. To apply the techniques we are interested in developing to games, restrictions may be reintroduced (to at least give the player an incentive to progress). Natural disaster, the evil coming to you, etc.
Retuning to out Star Wars example, we could choose to join the Dark Side with Daddy and, as the two most powerful Jedi, rule the universe with iron fists. Flexible (because you know that no matter how "flexibly" designed a Star Wars game is, they''ll never give you that option).
I have to reiterate that the ideas are not being developed for games per se but may find future application to games.
Now where does the "generating a story" part come in? Since the objective is to create interactive narratives (ie, stories), we want the system to be able to extract pertinent information from user actions (serialized as "plot nodes", which encapsulate data about what happened where, when, how, why and to/by whom) and then compose textual paragraphs that would be entertaining for a human to read.
One cool games-specific application I can already think of is "lore". Say you''re an knight-errant in a medieval game (say an "MMORPG"). Well, other people should be able to hear about your exploits through messengers, bards, notices, etc. How would all that info be generated? Narrative interpolation.
I hope I''ve shed some light on the issue; I usually value your insights so I want to be sure you understand clearly.
[ GDNet Start Here | GDNet FAQ | MS RTFM | STL | Google ]
Thanks to Kylotan for the idea!
We''ve discussed "Event Nodes" but what about "Drama/Plot Nodes", points of interest in a world or of a players interest as defined by choices made in event nodes. Think about it, when u start reading a book or playing a game u enter a new universe and know nothing about it. As u read/play you learn thing about this universe and make assumptions on the things around u based on HOW U percieve things. The Plot nodes are basically pre-defined and dynamically generated plots/sub-plots. Using them we can "adjust" the narration/world accordingly so that the user has a more interesting experience tailored to them. Look at the implied power, if the person shows interest in an abandoned house, u can dynamically generate a suspense or mystery Drama node. Then u can encapsulate that Drama node in a bigger plot weaving a large scale story. In fact the climax of the narative can be the end of interaction and leave the program to create the ending based on the information that was noted as it goes along. Oh and it seems to me "Relationship Nodes" will be necessary as well.
---------------------------------------------------------------
If you have ever watch Akira, there was something i didn''t notice until it was pointed out when i bought the Special edition DVD and watched the Production Report.
"Really, any of the characters could be the star of the film."
"There really isn''t a main character."
"It''s sort of like a large theatrical production in that way."
"I wanted to put it together something more along the lines...of idle ramblings on Neo Tokyo itself."
Just found it interesting and somewhat relevent to the topic...
-potential energy is easily made kinetic-
---------------------------------------------------------------
If you have ever watch Akira, there was something i didn''t notice until it was pointed out when i bought the Special edition DVD and watched the Production Report.
"Really, any of the characters could be the star of the film."
"There really isn''t a main character."
"It''s sort of like a large theatrical production in that way."
"I wanted to put it together something more along the lines...of idle ramblings on Neo Tokyo itself."
Just found it interesting and somewhat relevent to the topic...
-potential energy is easily made kinetic-
-potential energy is easily made kinetic-
quote:
Original post by Infinisearch
We've discussed "Event Nodes" but what about "Drama/Plot Nodes", points of interest in a world or of a players interest as defined by choices made in event nodes...
Very good points. The current problem is first specifying the problem domain. We need to be able to determine what defines a plot node, what information it needs to encapsulate and how that information would be employed to generate the storyline and dramatic arc.
quote:
Look at the implied power, if the person shows interest in an abandoned house, u can dynamically generate a suspense or mystery Drama node. Then u can encapsulate that Drama node in a bigger plot weaving a large scale story. In fact the climax of the narative can be the end of interaction and leave the program to create the ending based on the information that was noted as it goes along.
Brilliant extrapolation! That's the goal - to allow the program generate appropriate endings based on user actions, objectives, etc.
quote:
Oh and it seems to me "Relationship Nodes" will be necessary as well.
In preliminary discussions, my class partner and I have noted that relationship nodes would be an inefficient mechanism. Much better is to use some form of "relational database" which maps the connections between various characters/objects. This would lead to a huge amount of data, so we would need an implementation that rapidly localized the database, keeping only relevant records in memory and compressing all others to file.
quote:
If you have ever watch Akira, there was something i didn't notice until it was pointed out when i bought the Special edition DVD and watched the Production Report.
"Really, any of the characters could be the star of the film."
"There really isn't a main character."
"It's sort of like a large theatrical production in that way."
"I wanted to put it together something more along the lines...of idle ramblings on Neo Tokyo itself."
Hmm. I've watched Akira several times, and while there is some truth to the above, there remains no doubt in my mind that the stars of the films are Tetsuo and Kaneda. The movie is a musing on the effects of tremendous power bestowed almost instantaneously - without the preparation and conditioning for responsibility. Note that Tetsuo turned against Kaneda, his protector and friend - partly out of the curruption of power (Lord Albert: "Power corrupts; absolute power corrupts absolutely") and partly out of fear (unusual situation, great pain, noone to turn to).
Neo Tokyo was just an environment for the film, but Akira remains one of the great philosophical animes. See also Ghost in the Shell. (Which reminds me, I need to watch more anime. )
[Edit:] Formatting.
[ GDNet Start Here | GDNet FAQ | MS RTFM | STL | Google ]
Thanks to Kylotan for the idea!
Edited by - Oluseyi on January 21, 2002 7:10:29 PM
Quick question:
Is the system designed to generate an interesting story for the player to participate in?
Or is the system designed to generate an interesting story about what the player has done?
Different posts seem to imply one or the other, and I''m not sure which.
Now, the main post.
Hmm. If you take the broad definition of game (ie. something that people play) then interactive narrative is a game, no? Much like SimCity is considered a game, although some people like to say that it''s more accurate to term it a ''toy''. I would say that interactive narrative is essentially a game or toy, even if it had other applications. (Anyone familiar with the Fighting Fantasy or Lone Wolf books? I suppose they are interactive narrative, to a point.)
I''m going to ignore player motivation, and whether the product is a game or a toy, and whether the player lacks true goals or not. I''ll assume that the player does want to play with this system for some reason, and leave the "but is it fun?" aspect for another time.
Of course, this is a 2 part process: firstly converting user actions (events, perhaps) to an internal representation, ie. your plot nodes, and secondly expressing that plot node in terms of entertaining narrative.
The second part is flexible. If I (now) understand it correctly, there''s no reason it has to be text; it could be any representation you like, such as seeding the world database with related ideas for the player to follow up.
It''s the first part that bothers me. How would you classify and represent these user actions or events? This would be hard in a game, and potentially impossible in a normal story. (Although, as with tabletop roleplaying, it is possible for the ingenious gamesmaster to classify any player action into one of several categories usually, so maybe human intervention would help there.)
Then you have these story nodes that pre-exist, but the player''s story is based upon which nodes they visit and the order they visit them in... the path, as it were. Any idea how this path will translate into the story, or are you hoping that is what this research will work out? Maybe this article would be one starting point: it gives some classification of different ''dramatic'' situations, including the actors and several variations on the theme. These (or something similar) could perhaps be used to categorise a user''s action into one of these nodes, thus determining the path?
Just yell if I am missing the point again here![](smile.gif)
[ MSVC Fixes | STL | SDL | Game AI | Sockets | C++ Faq Lite | Boost ]
Is the system designed to generate an interesting story for the player to participate in?
Or is the system designed to generate an interesting story about what the player has done?
Different posts seem to imply one or the other, and I''m not sure which.
Now, the main post.
quote:
Original post by Oluseyi
In a conventional game, you are faced with a series of tasks to complete in order to advance along the story. In this situation, however, we say that you can choose to be "disillusioned" are leave the Rebels. Heck, you could return to being some form of shepherd laboring away in insignificance under the oppression of the Empire.
...
Insignificant? Within the context of games, yes. Within the context of literature and interactive narrative (which is where this idea starts out), not by a long shot.
Hmm. If you take the broad definition of game (ie. something that people play) then interactive narrative is a game, no? Much like SimCity is considered a game, although some people like to say that it''s more accurate to term it a ''toy''. I would say that interactive narrative is essentially a game or toy, even if it had other applications. (Anyone familiar with the Fighting Fantasy or Lone Wolf books? I suppose they are interactive narrative, to a point.)
I''m going to ignore player motivation, and whether the product is a game or a toy, and whether the player lacks true goals or not. I''ll assume that the player does want to play with this system for some reason, and leave the "but is it fun?" aspect for another time.
quote:
Now where does the "generating a story" part come in? Since the objective is to create interactive narratives (ie, stories), we want the system to be able to extract pertinent information from user actions (serialized as "plot nodes", which encapsulate data about what happened where, when, how, why and to/by whom) and then compose textual paragraphs that would be entertaining for a human to read.
Of course, this is a 2 part process: firstly converting user actions (events, perhaps) to an internal representation, ie. your plot nodes, and secondly expressing that plot node in terms of entertaining narrative.
The second part is flexible. If I (now) understand it correctly, there''s no reason it has to be text; it could be any representation you like, such as seeding the world database with related ideas for the player to follow up.
It''s the first part that bothers me. How would you classify and represent these user actions or events? This would be hard in a game, and potentially impossible in a normal story. (Although, as with tabletop roleplaying, it is possible for the ingenious gamesmaster to classify any player action into one of several categories usually, so maybe human intervention would help there.)
Then you have these story nodes that pre-exist, but the player''s story is based upon which nodes they visit and the order they visit them in... the path, as it were. Any idea how this path will translate into the story, or are you hoping that is what this research will work out? Maybe this article would be one starting point: it gives some classification of different ''dramatic'' situations, including the actors and several variations on the theme. These (or something similar) could perhaps be used to categorise a user''s action into one of these nodes, thus determining the path?
Just yell if I am missing the point again here
![](smile.gif)
[ MSVC Fixes | STL | SDL | Game AI | Sockets | C++ Faq Lite | Boost ]
Kylotan:
"Is the system designed to generate an interesting story for the player to participate in?
Or is the system designed to generate an interesting story about what the player has done?"
There are two applications to the technology, Interactive narrative as in Oluseyi''s class and Video Games. Answering both questions at once for both games and narrative seems to be:
Participate based on what the player has done/feels... and record the story of the player, at least how I understand it. The participation in the narrative would be diminished of course, which leads me to a question I have for u Oluseyi, in the context of the interactive narrative how do u intend to pose options to the reader/user in terms of what they want to do/feel?
Another question one I have been thinking about is, to define the problem domain as u put it... How does it end, when to decide its over? (especially with the interactive narrative application) One, death the easy one. But with no definition of sucess or failure the hardest part would be to end the story. Especially if the player/reader shows no interest in "exciting" plots. Even though exciting is subjective the user and we track the users'' patterns, how do u know the player isn''t waiting for something? In your sheep herding example, how do u know that the player is happy? How long do wait till u say wow this reader is content being a sheep herder? Harder still is the fact that in a narative it would be much more difficult to stick a non-intrusive test in the narrative, to see whether or not the player felt a sense of plot climax or resolution.
-----------------------------------------------------------
I think Tetsuo''s heart was corrupted way before he attained any kind of power, the power just gave him the courage to act on his heart. Oh and those were quotes from the creator of Akira, he was saying how he made the animation like one issue of the comic book. Where as in the comic book he could build up over multiple issues. Seen Ghost in the Shell, but nothing compares to good ol'' Fist of the North Star.
-potential energy is easily made kinetic-
"Is the system designed to generate an interesting story for the player to participate in?
Or is the system designed to generate an interesting story about what the player has done?"
There are two applications to the technology, Interactive narrative as in Oluseyi''s class and Video Games. Answering both questions at once for both games and narrative seems to be:
Participate based on what the player has done/feels... and record the story of the player, at least how I understand it. The participation in the narrative would be diminished of course, which leads me to a question I have for u Oluseyi, in the context of the interactive narrative how do u intend to pose options to the reader/user in terms of what they want to do/feel?
Another question one I have been thinking about is, to define the problem domain as u put it... How does it end, when to decide its over? (especially with the interactive narrative application) One, death the easy one. But with no definition of sucess or failure the hardest part would be to end the story. Especially if the player/reader shows no interest in "exciting" plots. Even though exciting is subjective the user and we track the users'' patterns, how do u know the player isn''t waiting for something? In your sheep herding example, how do u know that the player is happy? How long do wait till u say wow this reader is content being a sheep herder? Harder still is the fact that in a narative it would be much more difficult to stick a non-intrusive test in the narrative, to see whether or not the player felt a sense of plot climax or resolution.
-----------------------------------------------------------
I think Tetsuo''s heart was corrupted way before he attained any kind of power, the power just gave him the courage to act on his heart. Oh and those were quotes from the creator of Akira, he was saying how he made the animation like one issue of the comic book. Where as in the comic book he could build up over multiple issues. Seen Ghost in the Shell, but nothing compares to good ol'' Fist of the North Star.
-potential energy is easily made kinetic-
-potential energy is easily made kinetic-
quote:Thank you, though I wish you hadn''t said that, it will affect my thinking.
Original post by Oluseyi
You are a genius! You have fully comprehended the objective, and you have also taken the words right out of my mouth to respond to JSwing (and probably phrased them better than I could have). Thank you!
quote:Is this reffering to the course your taking in school or to a personal project for which I might offer my meager thoughts and abilities?
Over the course of the next 3 months, we''ll be developing our ideas constantly, and I''ll probably be working on a text-based implementation that generates scenes in the form of screenplays. I think that''s the most reasonable and efficient way to pursue this ideal at this point in time, as graphics tends to clutter the objective. Hopefully this thread will remain a source of criticism, discussion, insight and analysis.
To address a more important train of thought:
quote:I am certain that the latter is true, as I said in my previous post the former is an equivalent to generating random maps
Original post by Kylotan
Is the system designed to generate an interesting story for the player to participate in?
Or is the system designed to generate an interesting story about what the player has done?
quote:agreed, and if it were to be done in a computer-game setting, it would be desireable for the story generator to generate scripting-language code for the game as it (the story-generator) interpreted the actions of the player.
Of course, this is a 2 part process: firstly converting user actions (events, perhaps) to an internal representation, ie. your plot nodes, and secondly expressing that plot node in terms of entertaining narrative.
The second part is flexible. If I (now) understand it correctly, there''s no reason it has to be text; it could be any representation you like, such as seeding the world database with related ideas for the player to follow up.
quote:Not missing the point at all, but I will defer this question to Oluseyi with the following contribution: I would most like to see an implementation in which what we choose to call nodes, are not predetermined by the game at world creation. So when maps are generated and creatures, NPCs, object annotations, etc. are created, the nodes that will at some point accompany them are not yet generated.
It''s the first part that bothers me. How would you classify and represent these user actions or events? This would be hard in a game, and potentially impossible in a normal story. (Although, as with tabletop roleplaying, it is possible for the ingenious gamesmaster to classify any player action into one of several categories usually, so maybe human intervention would help there.)
Just yell if I am missing the point again here
Instead, the story-generator should create nodes on the fly, linked to objects that it ''expects'' the player to attempt (at some point) to interact with.
Example: The game has just been initiated, and the game created a node at the weapon store of the local town of the PC which makes reference to the buying of a weapon.
Fred (PC) has just bought a sword at a local store. The game detects the triggering of the node and creates linked nodes for the following:
1) The townsfolk: if Fred kills one of them, the town will not be happy about it, unless he does it in such a way that no-one finds out.
2) The lord: if Fred communicates with him, he will offer the player a quest to go do, (accepting this quest will make a few new related nodes in the caverns near the town).
3) Out of town: if Fred runs off into the forest, the townsfolk will start talking about it, he may later hear that they thought he went off to kill a terrible monster that''s been plaquing the lands.
The predictable advantage of this system is that an object oriented implementation can be used, which links nodes in a heirarchical graph system. When a node is activated, the game system runs through the nodes it has to see if any removals or updates need to be made, and then it creates new ones that may be linked to the current development. This means that there will never be a large number of active nodes at any time, so there will not be a massive set of tables to run through every time the player does something (anything really).
It is important to me that the game ''makes up'' the greater scheme of the world beforehand, but still allows the player to take it on (or not) in any manner imaginable.
![](http://www.spforge.com/logo.jpg)
Are you in support of the ban of Dihydrogen Monoxide? You should be!
Geordi
George D. Filiotis
George D. Filiotis
quote:Sorry, I just realised this does not fall under my example, ignore what I said before, this is an applicable use of the system as I envision it.
Original post by Kylotan
...Is the system designed to generate an interesting story for the player to participate in?...
Geordi
George D. Filiotis
George D. Filiotis
quote:
Original post by Kylotan
Is the system designed to generate an interesting story for the player to participate in?
Or is the system designed to generate an interesting story about what the player has done?
To a large extent, both. The consequences of actions can often give rise to new situations, which can provide new choices for the user.
Let me outline the objective as currently defined (and please keep in mind that my/our ideas from the class are not absolute; many in this thread have raised the level of discussion and made critical contributions): to provide the user with a context and basic premise, then to generate a consistent world based on the actions of the user as well as external events. Narrative becomes important because the player will need to learn of the actions of NPCs, and vice versa. So while the primary area of discussion (in the class) is the "narrative arts"/interactive fiction, the principles are directly applicable to games.
Furthermore, returning to an earlier example, if the player eschews saving the world in favor of shepherding, then the system will be able to generate events for the user to respond to (natural disasters, lions and bears attacking the flock, etc) as well as generate stories about how the user heroically fought that bear hand-to-hand, or died at the fangs of a skulking wolf.
quote:
Original post by Symphonic
Is this reffering to the course your taking in school or to a personal project for which I might offer my meager thoughts and abilities?
Primarily the course, though my class partner and I will be trying to make certain applications and extensions on our own time (between all the other things we do).
quote:
I would most like to see an implementation in which what we choose to call nodes, are not predetermined by the game at world creation. So when maps are generated and creatures, NPCs, object annotations, etc. are created, the nodes that will at some point accompany them are not yet generated.
As implied in my paragraph preceding, the game would create dramatic events - plot nodes - pertinent to the user''s current course of actions, as well as generate an "external" narrative about the user''s explots. For games, the first is by far the more interesting, but the second is useful as well.
quote:
The predictable advantage of this system is that an object oriented implementation can be used, which links nodes in a heirarchical graph system. When a node is activated, the game system runs through the nodes it has to see if any removals or updates need to be made, and then it creates new ones that may be linked to the current development. This means that there will never be a large number of active nodes at any time, so there will not be a massive set of tables to run through every time the player does something (anything really).
This is pretty much exactly how I visualize the system as it currently stands. If we go back to the first post, I spoke about hierarchical connections between nodes (which were spatially distributed in a graph that had both uni- and bidirectional links/vectors).
quote:
It is important to me that the game ''makes up'' the greater scheme of the world beforehand, but still allows the player to take it on (or not) in any manner imaginable.
This is a good point. We want the rules of the world to be specified independently of the game events (though perhaps modifiable by events in the game), and only the basic premise (and all necessary actors) to preexist. These characters will be simulated independently of whatever the user does, meaning the world will continue to advance in a consistent manner. Everything else will be dynamically created according to the user''s actions/choices. We may throw in specific locations/situations designed to lead to certain outcomes - in other words, a very flexible and dynamic system.
[ GDNet Start Here | GDNet FAQ | MS RTFM | STL | Google ]
Thanks to Kylotan for the idea!
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement