   Procedural Gaming Experience!
  Hello PeopleI would like to ask you, if you have the time, to look at a small questionaire that I and my group at the university have made. It is very short, will only take about 5 minutes to complete but it will be reall helpful to us.We are doing a bachelors project on Procedural Storytelling in computer-games and how to develop an A.I. that will be able to create a new story beginning each time you start a game and be able to let the story develop as the player goes along instead of the storyline being written ahead of the game.This questionaire is mainly to measure a level of interest in this type of game. I hope you will help me out a little, the link to the questionaire is here! :)http://tinyurl.com/QuestionaireMed660If you have any questions, I will check back regularly :)   
  I filled out the questionnaire, but I would like to point out my main gripe with this idea is that it would probably lack the human touch that goes into most game's story telling. This is especially true for level design and how it connects with the story.   ;  Did the survey, it would have a horrible story line.  You can't intricately weave plot lines automatically.  The best you could do would be to write several different stories and have the player follow one each playthrough.  Games like Phantasy Star 3, Chrono Trigger, and Dragon Age do that and worked pretty well.For auto-content creation remember Evolution, the Dreamcast game where every dungeon was different and procedurally created?  It sucked...hard....   ;  This is a fascinating field and I did some research into this topic myself not too long ago. Without deriving anything from others' work the scheme I came up with shows quite a bit of promise, but is very difficult to implement. I'm not trying to say how you should approach the problem you're dealing with, but this is a mock-up of the notes from my own research - perhaps you'll find something in them that you can use.What is storytelling?In a tiniest nutshell it is a form of writing or speaking of related events, which generally has a few constants that permeate through all of its layers: characters, which stay the same (the protagonist(s) and antagonist(s)). In most cases these characters are people (or at least living beings) and an arc, which can have almost any shape or for, but is most familiar to us if it follows a somewhat linear pattern. The arc has to follow an ascending slope in terms of tension and in 90% of modern storytelling is discernibly broken up into three sections: the beginning (which introduces the characters and the setting), the middle (which develops the characters) and the end (which ends with a culmination and the protagonist(s) reaching what is called a "new equilibrium" - that is, a state of balance that is either the same or different from the state of (im)balance that the character(s) started out from). To achieve this effect one commonly uses sticks and stones that one puts in the protagonists' way - obstacles that are increasingly difficult, but not impossible to surmount, and challenges and twists that cause the story to take a new direction.Doing this procedurally in a literary context is nigh impossible without a writer's touch, so forget out about it.Doing this in a game, IMHO, can be achieved, but is bloody tricky.Procedural generation schemeIt is impossible to come up with a complete script for a story without actually generating the story steb by step, which means that pregeneration in the context of a game yields really boring results - since you won't be able to integrate through the story anyway, you'll essentially be limited to pre-programmed schemes, which become repetitive and boring really quickly. In which case it makes more sense to manually create your story.Option number two is to allow the player to shape the story as it unravels. This is problematic because you actually want to follow some kind of an arc - be it three-act or some other format of storytelling. What you definitely want is a well-balanced ratio between all the components of the arc: a proper introduction to the setting and people/NPC's involved (beginning), a proper experience of actually playing the story and seeing those characters develop (middle) and most importantly - a proper end with a proper culmination that you know in advance (end). By knowing the end in advance I mean that it something the player works towards - it doesn't necessarily mean that they know the actual outcome.The good thing is that none of these are impossible to set down in the beginning: the set of blueprints I would use are George Polti's 36 drama situations. Fascinatingly these encapsulate about 99.9% of all stories that have ever been told in what literally are blueprints. Furthermore, they provide you with characters (more accurately the number of characters). For a well-told story one might pick 2-3 similar drama situations (situations that support each other on some initially non-perceptible level) and intertwine these into a final styory as storylines.In a procedural context, this presents the storyteller with a number of issues: (QUITE EASY) in a story each character (and NPC) has to have a "want" and a "need" - for main characters this is true in three scopes: the story that is his or her life ("wants to be rich", "wants to find true love"), his or her situation in life ("wants/needs to get out of a burning house", "wants/needs someone else to go to the store to get some milk") and moment ("wants people to leave them alone", "wants to stir up trouble/cause mischief (eg by lying)"). This motivates them to behave in a rational way in any situation, even if that behaviour may seem irrational to the outsider. These needs/wants can change over time, although each scope has a considerably different probablity/time span over which it can and will change.Generally one would need to have a completely dynamic/procedural, yet persistent environment to achieve this although the environment (and the characters in it) don't really need to be "self-aware".  (MODERATELY DIFFICULT) temporally distributing all parts of the story so that none of them would be too long or too shortYou can never know how long it will take the player to go through each individual step so guaranteeing that he/she will enjoy the story as one flowing (non-discontinuous) entity can be rather tricky (MODERATELY DIFFICULT) surprising the player (reader/viewer) with unexpcted turns and twistsRequires the story to be planned out without knowing its precise constituents. Beginning and end must be known in advance. See below for a story planner example. (VERY HARD) creating empathy in the player towards either his own character or some character (NPC) in the game who acts as the projected protagonistEmpathy can be created in one way only - by making the player want to be the character and feeling like they're in the character's shoes/living their life and their hardships. There are a number of ways to subtly achieve this, but by far the most common one is to have the character endure hardships (plural) and surmount increasingly challenging obstacles (also in plural). Oddly enough, IMO in this case it would be a lot more beneficial to have the player play the "creator's role" - eg preventing the player's character from being the actual perceived protagonist (even though they're the one that shapes the story itself), but rather having them prevent hardships/surmount obstacles for the protagonist who might remain rather passive in the process (escort quests anyone?) (VERY HARD) thinking back a bit I mentioned challenges that are surmountableProcedurally this is by far the most difficult problem - unless you're following a proven algorithmic logic puzzle that is guaranteed to have a solution, how do you make sure that the obstacles you throw at the player are a) surmountable and b) of a certain degree of difficulty? Furthermore, how do you guarantee that all obstacles are unique? This is something that requires a  fully dynamic game world that is self-aware: your NPC's need to be able to retain, relay and exchange information to/with the player and among each other, you need to incorporate wildcards in the environment (anything that stems from force majeure, such as a natural calamity or actions caused by something like a natural calamity will do). If your game world is not dynamic, the story will be boring.As a case study, think if World Of Warcraft - story-wise essentailly a narrow pipe that the player has to crawl through where the only option you as a player have is to either do the scripted quests or kill boars. The extra dimension that makes all of that tolerable is that you can do that with your friends.Your story cannot really be open-ended (in terms of not being able to reach an unsuspected, but logical conclusion) because no one in their right mind would ever play your game again if they were cheated out of the ultimate prize like that (imagine if Keiser Söze had ended up in jail and the chief of police had just shrugged the whole whole thing off as whatever?). You need to keep the player interested and throw increasingly difficult obstacles at them. This is harder than it seems. In case it's not very obvious, such a dynamic world would need to "tick" (evolve) even when the player is far away. This makes up for a rather challenging programming task.An even harder task is to "plant" story elements - subetle references that seem out of context, but reference an important future event in the story. On the smallest scale think of, say, Pirates of the Carribean 3 (or 2 - can't recall) where Jack Sparrow's character steals a coin from the cursed chest - it's shown in slow motion so actually it's very accentuated - but if it hadn't been show in advance, you'd be going "what the hell" when he turns out to be one of the undead and cannot die. A much more massive scale of planting takes place in the best ever told series of all time - Babylon 5, which, for instance, plants seeds for a double-episoder about B4 more than a whole season in advance. The Shadows also take more than a whole season to come out of the closet and are eased in with a lot of very careful planting. This is storytelling at its best and really differentiates "simple" from "immersive". Stuff happens for a reason and unless the player knows the reason, you'll lose their focus. (of course in the case of B5, writer J. Michael Straczynski had the whole thing scripted throughout all of the five seasons even before he started writing the first episode). Edit: or in the context of games - how many times did you see the G-Man in-game when playing through Half-Life and wondered who the heck that guy is? Planting. (VERY DIFFICULT) interacting with the playerEssentially you need the player to be able to filter an categorize all information about the game world and the characters, and be able to inquire relevant information from relevant sources. Filtering relevant information for the player is one task - you also need a linguistics module to convey that information to the player in a way that doesn't break their immersion - eg in a grammatically and syntactically correct way.Formatting the story layout (building the story)I figured the most forgiving way to form a story is as a set of interconnected nodes in the form of a flow graph. The flow graph needs to consider all possible incomes and outcomes of each node without knowing the precise content of the node. The only two real constants in the graph are the beginning and the ending(s), although some pre-set static (or recurring) nodes would help the story to take a much more solid and pre-planned form (say, presenting the player with a vision after each time his actions have a negative outcome). Up to 90% of the graph would be "filler" nodes that do not yet contain information about what will happen in them, but expect a certain input and can generate a (preferably very small) number of different outcomes. These connections follow separate lines and cause the graph to start in one point, expand to a number of possible storylines depending on the player's actions and then converge back to a small selection of end results. Let's take one of Polti's situations as the main plotline: say, number 28 - two lovers with an obstacle between them. Your role as the player is to help one of them overcome that obstacle and get them together. Let's say this obstacle comprises two parts: a distance and an antagonist (even though Frodo didn't follow a path of love, his journey had these precise obstacles - a long journey from the Shire to Middle Earth and a great antagonist). There are two possible generic outcomes: either the two lovers meet or something happens and they do not meet. Your job as a story plotter is to make sure that there's very reasonable (preferably a guaranteed) probability of a positive outcome - eg the player would have to go out of their way to achieve the negative outcome - such as they would have to kill or intentionally have one of the two lovers killed).Let's say the story contains two challenges, which are unknown to the story planner at this time. The planner procedurally decides that these will be "a journey (an escort) [through dangerous lands]" and "an encounter [with the antagonist]". Each has two possible generic outcomes, which need to be solved before the story is exectued: the dangerous lands might prove to be too much for the player in which case it needs a work-around; the encounter with the antagonist might evaluate to either "win" or "lose". Even though neither of the nodes provides a setting or the precise nature of the events (these stem from the environment), they should a) both have a guaranteed success ("win") probability of close to 100% percent or a very short work-around time that does not affect the length of the story too much and b) be increasingly difficult - that is the encounter with the antagonist needs to be harder than the journey to him. This is not neccessarily a quantifiable problem, but is required for the story to offer satisfaction to the player (how many times have you played through a game only to get to the end boss and discover he's a pushover? not very satisfying, is it?)Either of these nodes can have any scale imaginable. I coined the following hierarchy to describe the temporal scope of each node:- event (something that happens here and now)- task (an errand that is limited to a non-obstructed journey from point A to point B)- mission (a series of tasks that have a single objective in mind, but do not assume a dramatic arc; such as "go get X from M and if you need to, kill M")- quest (in this context it is assumed to mean a mission that does not have a specific brief to follow and actually has a dramatic arc of its own - eg it's a mini-story: such as "find and retrieve X")This lends to considerable self-similarity (correlation between scopes of various sizes) within the story whose graph you're plotting. Eg you might expand your first node based on the environment that the player has to journey through into something like "journey from point A to point B, but since there's a hostile village in the way, you need to find a way to win the chief's trust to gain an amulet that will grant you immunity from the giant crocodiles that would otherwise kill you once you get past the village". It's still the same node as originally - a journey -, but it's been replaced with an actual mini-storyline that lives inside it. The decision of the mini-storyline should ideally be inherent from the environment - you do not place a village and killer crocs in the player's way for the sake of the story, but they already are there and even through the journey could be doable in some other way, you tell the player to do it that way (and once told, they will).Finally, the million dollar question: how do you guarantee variety in the stories and that the constructed stories are interesting? Answer: for me the answer is - you add a game designer who creates the game world with that in mind and you allow the player to change the game world. Procedural content is something that won't really work here - as Sirisian said, you really do need that human touch.Aighty then - this is something I was pondering and racking my brains over a while ago, but it's one of those things that actually takes years of research and requires an implementation for proof so I shelved it. But I'd be very much interested in seeing someone finally break the spell of linearity and stopping the same moves being played over and over and over again in games![Edited by - irreversible on February 22, 2010 8:50:59 AM];  I've been working on a similar project for about a year now, in my spare time, based mostly on the work of James Meehan’s Tale-Spin. If you can dig up his thesis, its a very interesting read. I think one his more radical ideas is that the game world is a character itself, and what the game world "thinks" is considered reality, and the other characters have a subset (however accurate or inaccurate) of that knowledge.Anyway, check it out if you haven't already.   ;Quote:Original post by ChurchSkizFor auto-content creation remember Evolution, the Dreamcast game where every dungeon was different and procedurally created?  It sucked...hard....Hm...on the other hand, I hear this Diablo game did pretty good...:P   ;  Diablo is semi-procedural. Eg, it has procedural areas, but regions that relate to the "story" are static. Or at least that's what I gathered on my second go.Torchlight for the first 30-something levels is static, but rumor has it people have reached dungeon depth 1000+.   ;Quote:Original post by SirisianI filled out the questionnaire, but I would like to point out my main gripe with this idea is that it would probably lack the human touch that goes into most game's story telling. This is especially true for level design and how it connects with the story.Quote:Original post by ChurchSkizDid the survey, it would have a horrible story line.  You can't intricately weave plot lines automatically.  The best you could do would be to write several different stories and have the player follow one each playthrough.  Games like Phantasy Star 3, Chrono Trigger, and Dragon Age do that and worked pretty well.For auto-content creation remember Evolution, the Dreamcast game where every dungeon was different and procedurally created?  It sucked...hard....Yes, there will be issues with making a story-line this way. We will have to contain the story elements as best as we can in order to make sure that we control the possible outcomes.Irreversible > Very interesting, i will have to read your post in more detail when I come home! Great reply thanks!Kryat > Nice to see we are not the only ones trying to do this! :)   