Experienced Points: Procedural Stories

  By Shamus   Feb 1, 2013   120 comments

Yes,! I’m writing Experienced Points again! This week’s column is on Procedural Stories. Perversely, the entire article is actually a response to a tweet:

At the time, I replied:

It’s a big topic, and like I said in the article, it’s either trivial or impossible, depending on your definition of story.

This is actually a very rare sort of question. One of the quirks with procedural stuff is that people don’t usually imagine other things that procedural development could do. They think of procedural stuff in terms of what it’s already done in the past, and new techniques for new content tend to take people by surprise.


A Hundred!20There are 120 comments here. I really hope you like reading.


  1. NihilCredo says:

    Shamus, you brought up The Sims as an example of attempting emergent stories, but there is an even better example you might have heard of: Crusader Kings II, aka the medieval stabbing simulator.

    Here’s a light article that gives an idea of why that works so well (it’s Kotaku, but it’s not crap for once). And here’s another that goes a bit deeper into it.

    Anybody interested in this sort of things should check the game out, it’s amazingly well done.

    • I second the suggestion of Crusader Kings. I still recall with great fondness the time my character’s wife hated him, so I sent her off to be the Countess of some godforsaken valley in northern Sweden. Naturally she rebelled against my rule. So I called out my army and marched in to subdue her, which went quickly since the valley was godforsaken and had practically no manpower. We made peace and she became my vassal again. The very next day, I get the notification that my wife is pregnant! If that’s not a story I don’t know what is.

      That was all back in the original Crusader Kings, not even the expansion pack Deus Vult. The new CKII took all the best bits of this kind of storytelling and improved them; it’s really a triumph of sequelism.

      • Sabrdance (MatthewH) says:

        So… you were Henry, she was Eleanor of Aquitaine. Did you have a Christmas Court with Phillip of France where you discovered your 3 sons were plotting against you while trying to offload the wife and marry Phillip’s cousin?

        • NihilCredo says:

          Speaking of Aquitaine, I had a game where I (playing as the count of Toulouse) immediately joined a plot by several counts to overthrow the young Duchess of Aquitaine, which ended up replacing her with her child sister; she became, however, a puppet under the regency of the strongest plot participant, who quickly proceeded to betroth the new ruler to his son, which would have put the whole realm in his family’s hands within a generation. Pretty annoying power-grab on his side (not that any of us would have done otherwise given the chance)…

          …however, the Duchess was exiled to the court of some distant relatives in Germany, with whom I just happened to get along splendidly due to a shared love of food and hunting and a common past of crusading. So it didn’t take much convincing to get him to agree to let me marry the exiled landless girl in his court, even though she still hated my guts because I was one of the plotters who overthrew her; and once she came to live me with me she hated me even more due to all the girls I banged on the side and all the bastard children that filled my house (to the point I had to assign my spymaster exclusively to keep an eye on her). Nevertheless, the fact that she was my wife and the legitimate duchess was officially grounds enough for me to organise another rebellion to put her back on the throne, against the regent and his puppet.

          That rebellion… didn’t go very well, me and my allies were defeated relatively quickly and I ended up imprisoned, from which my wife unsurprisingly refused to ransom me. But then, a stroke of luck! The puppet duchess died of an illness, and having no sons her sister – my wife – did regain the throne after all. Except… in all the hullabaloo of going from exiled pawn to ruler of half of France, my wife just happened to forget to get her husband out of the dungeon. Aaany day now…

          (The count of Toulouse died in his wife’s dungeon, after which the duchess quickly remarried. He was succeeded by his oldest legitimised bastard son, who on account of such status as well as his father’s treachery was basically despised by the rest of Aquitaine’s nobility. He ended up devoting his life to a honest trade of slaughtering Muslims in Catalonia.)

          • bucaneer says:

            Oftentimes, players that do writeups of games they play tend to embellish their stories by filling the gaps left by the game – adding justifications for AI behaviour that weren’t really there, adjusting the sequence of otherwise random events to let a storyline emerge and so on. In that light, it is very important to note that every single detail in the above story is directly supported by game mechanics of CK2. The game is great at letting you experience and reconstruct intricate stories like that.

          • Shamus says:

            That’s amazing.

            I had a review copy of CK2 that I played for about twenty minutes. I’d never played anything like it before, and I was very, very lost. Now I’m wishing I’d stuck with it.

            (And now I can’t find it. Dangit. The review copy isn’t through Steam.)

            • bucaneer says:

              I’m not sure how review copies work (i.e. whether they use separate distribution channels), but the game has two versions – one Steam, one GamersGate, so maybe check the latter if you have an account there.

            • NihilCredo says:

              If you decide to give it another run, there is an excellent tutorial Let’s Play here; patches have since brought lots of improvements and some new content, but the gameplay is largely intact. It can be a good idea to also follow the LP in picking a character from Ireland (nicknamed “Tutorial Island” among CK2 players).

        • Well, you could dig into the archives of my blog to find out, or you could have a look here. :) It is a long AAR, but well worth it in my opinion.

    • thesomethingcool says:

      Crusader Kings is a great example of this. So much so that someone wrote an AAR about a game played entirely in observer mode, and managed to make a compelling story out of it.

    • Daimbert says:

      Reminds me a bit of the Romance of the Three Kingdoms games. I forget which one it was (11 or 12? Maybe 10 … they changed it the next game) but it had pretty much all of these things, and I created a character who was the son of a character that I had played, joined one faction which came into conflict with the faction my father was working for, and was basically asked to betray him (or, at least, work strongly against him), so I quit and went to an out of the way faction to avoid the conflict. I also managed to get married and have a kid once, with the previous character.

      • Scourge says:

        I think it was ROTK 7,8 or 9. Possibly not 10 as 10 took the ability to make your own officers away (GRRRR!).

        personally I had the most fun making my own Officer and working somewhere for my own benefit.

        In one such game (I switched Historical settings off so that EVERYTHING could happen) I was one of the Generals of the great country of (Forgot the name). The Lord of it reigned over the whole map! Well, almost the whole map. See, there was this small little village that kept resisting all the attempts of him to take it over (Sounds familiar, no?)
        Me? I was on the side of the great country. But then suddenly the Lord died. I was already fearing civil war. Generals making grabs for power!

        But no. What happened was that the throne was passed on to the one next in succession… me. My character was not even related to said Lord. They at best drank tea together. But somehow I was still deemed more able than his sons.

    • Din Adn says:

      Fourth’d. I’ve seen some amazing things happen without my interference in that game, largely because the characters work pretty much like you described in your article. Each one has a set of goals they want to achieve and various means to achieve them. So you get situations like the last Queen of Ruthenia riding out to a miraculous victory against the Mongols and being dubbed ‘Praxida the Great’, or a rivalry springing up between two powerful French families on account of a conflicting claim on some piece of land.

  2. Jack V says:

    http://www.ludomancy.com/blog/2011/06/30/announcing-my-new-game-storyteller/

    That’s interesting. I was thinking of a game I’ve read about in the author’s blog, but is still quite speculative, a puzzle of assembling stock characters into a cartoon strip, where they have simple rules for what each panel represents.

    But I immediately wondered if you could do something similar to tweak the stories in a computer roleplaying game, so rather than JUST fetch-quests, you can autogenerate simple love triangles, feuds, rivalries, etc between a small cast of characters, so you can reuse a lot of the same dialog about “the archwizard is annoyed by the head thief’s perfume (whether or not she hater her)”, or “the archwizard hates character X and rants about them (whoever that is)”

  3. Dev Null says:

    MIT Media Labs was doing some pretty cool research along these lines last time I paid attention – probably close to a decade ago. I don’t know that any finished products came out of it though.

  4. Sleeping Dragon says:

    I think I’d find the “emergent story” example that you describe interesting. On the one hand I don’t think it would be quite as memorable as some of the prewritten stories, on the other hand I think it would be a game that I’d keep on my hard drive and come back to every now and then. Minecraft and the first A Valley Without Wind work like that for me right now.

    • Zukhramm says:

      At the same time, sometimes these emerging stories can be much more memorable than anything written.

      This one is a combination of in game emergence and outside forces shaping the situation, but it was experience I liked:

      During one of the Minecraft updates I don’t know how long ago, the Twentymine creative server (this was before there was an actual creative mode) ended up in normal survival mode. Building is very different when you’re not trying to survive, you build grander when not worrying about resources, and lights and tools are placed based on aesthetics rather than safety and utility.

      Sure, trying to fight zombies was the same as in any game and Minecraft, and really less interesting than in most games, but doing it in an environment that I knew was built by people, not for the purpose of fighting zombies in, but for many other reasons made it feel very different. And traveling through the subway system I of course used the resources I could find, but of course that meant I was surviving by destroying someone else’s creations.

  5. McNutcase says:

    What I’d like to see is a game where the main quest is somewhat procedural, insofar as it has multiple valid states. Let’s say you decide to speedrun it – yes, you’ll be woefully underprepared, but the Big Bad has just started and you might be able to nip his plans in the bud. Isn’t that awesome? Or let’s say you prepare carefully, and go in READY – he’s had time to fortify, and you’re in for a tough slog. Or you goof around doing all the sidequests and slam into the level cap before you go after him (rolling Elder Scrolls style) – well, now he’s got control of most of the map, and you’re gonna have to work hard to root out his work. Whichever way you go, you get a tale of you being awesome, but it’s a very different story overall…

    • Khizan says:

      The problem with this is that it runs into the FF8 problems, where you the game effectively punishes you for leveling by making fights harder.

      Side quests should be things I want to do, not things I put off because they’ll turn the endgame into a bloody slog.

      • RandomPhysicist says:

        Perhaps you could structure the game so that your choice of how long to draw out the game depends on non-mandatory objectives. For instance, if the game starts with an ally in trouble, you could either help your ally or go right for Big Bad while he is only a Small Bad. You might defeat him, but in the process your ally dies. Alternatively, you could help out your ally. Small Bad may have turned into Big Bad, but now you have help. Your choice doesn’t make things easier or harder, just different.

    • Amarsir says:

      Let’s say you decide to speedrun it – yes, you’ll be woefully underprepared, but the Big Bad has just started and you might be able to nip his plans in the bud. Isn’t that awesome?Is it?

      You’re presupposing the player knows there are multiple paths and they’re taking a non-standard one. Whare are you going to do about the players, and there are many, who aren’t conscious what they’re getting into? Who do this, beat the game and then go on to tell everyone “this game sux, I beat it in 45 min and the boss was nothing.”?

      Even if you try very hard to state that the game has replay value, A) not everyone will pick up on it, and B) Not everyone replays stuff, just like not everyone completes collections or does side-quests. So now you’re directing this game at a segment of the market that’s not easily identified or even self-aware. There’s nothing wrong with niche development, but you need to find the people and they to find you. So if you can’t easily identify them, you need a game where even the people it’s not targeted won’t hate it when they come across it, providing enough lifespan to build a real fanbase.

      For example, consider Hitman. In a way it’s exactly what we’re talking about, since you have reasonable leeway in how to kill and which bystanders to take out. But you can’t go so far as to, say, pull up a truck bomb and take out the whole complex. And you certainly can’t skip over most of the missions and just go take out the endboss whenver you feel like it. (Or whatever the story is, I only played one of them.) People who love stealth know the series is really for them, but people who want to blast get enough of that play to be satisfied, while still being railroaded through the actual game.

      So no I don’t think it would be awesome to give players the freedom to ruin their experience, unless they knew precisely what they were signing up for. There are too many customers who turn their brains off and put their trust in the game to entertain them, and that’s a trust you’d be betraying at your own peril.

    • Veylon says:

      Believe it or not, I’ve played this game and done just this.

      Name of the game is Lords of Magic. It’s a hybrid of a conventional 4X, a strategy role-playing game, and (sort of) an RPG. And you can really go track down the still-weak big bad straight from the get-go and take him down. Pick the right build to start with and, with a little luck, you can have world peace in a fortnight.

  6. Lord Nyax says:

    After reading your article, and then reading through the Alice and Kev story, it got me thinking. There are plenty of procedurally generated worlds that also, simply by being what they are, have procedurally generated stories. Every new Minecraft world is a new story of survival and construction. I thought about how Dwarf Fortress, which also is procedurally generated, once inspired the epic Saga of Boatmurdered. So whats the difference between a regular game of Sims 3 and Alice and Kev, or your average Dwarf Fortress game or Boatmurdered (or even Kahdzbar’s Journal)? The only real difference I can see is the presence of a storyteller. Somebody to come along and spin the events of the game into a choherent narrative. Somebody to grimly record the death of the noble pioneer and miner Dimonds4EVr as he succumbed to suprise creeper attack in the bowels of the earth, and how his son, Dimonds4EVr Jr., spawned to continue the construction of the mighty “House of teh Awesome”.

    So maybe if you could create a program to somehow write down the events of the game into something that makes a decent yarn you will have acheived procedural stories. Kind of like…what was that one game? With the narrator? Bastion, thats it. Kind of like that, but more so.

    EDIT: Actually, you know what game a storyteller program would work great with? Mount and Blade. It’s not procedural but it’s a total sandbox. Really any sandbox game would benifit from a storyteller.

    • HiEv says:

      Yeah, I was going to say that Dwarf Fortress’ “Adventurer Mode” is slowly heading in the direction of Shamus’ “generate some starting parameters and drop the player into a sandbox style world” and then introduce relationships, goals, and quests that weave into a playable story. However, it’s pretty darn primitive right now, but you can see where they’re planning on going with it in their development roadmap.

      The upcoming release of Dwarf Fortress is actually a major step in that direction, since the world will finally “come alive” with events continuing to happen in the world as you experience it (as opposed to basically being static except for your interactions, as it is currently). Almost all intelligent species will have active population centers that can be accessed (currently only human cities and fortresses you had created and abandoned were available), armies can march and attack/occupy cities, and succession of leadership roles will take place.

      I haven’t played Adventurer Mode in the current Dwarf Fortress because it is rather limited, but with this next expansion I’ll almost certainly try it out.

      • TheCatfish says:

        While Adventure Mode may seem a bit sparse the stories are definitely there. Legends mode is, for me, the best way to experience the world created and the large scale of people, places and monsters within the world.

        The story of Cacame came through when, after turning up at the fort as the king, the player looked through legends at his backstory. The Elfen king of a Dwarven civiliation, his wife was killed and eaten by antagonistic elves whom he took up arms against. When the Dwarven King died he took over at age 16.

        This all happened during world gen, which also tracked every other person in the world, creating a family, jobs, activities to perform, giving them each their own story to tell. Most definitely a procedural story builder.

        • Neko says:

          Ah, good, I was going to mention Legends mode if no-one else had already. Playing Fortress Mode and you find out one of your dorfs was a vampire that killed your broker? Copy the save, abandon the fort and load up Legends mode instead, so you can trace the history of that vampire. It’s really cool.

          (Hopefully the next update makes it so you don’t have to abandon!)

        • HiEv says:

          Legends Mode is pretty good as a source for some pretty amazing stories.

          In one of my worlds I had a couple of humans who got married fairly early on in history. After a number of years, the husband was turned into a vampire (he was turned by another vampire IIRC). After a number of killings he had to flee the town and his wife. Several years after that his wife became obsessed with life and death. She eventually sought out a necromancer and became his apprentice. So, nearly a hundred years later, she lives in a necromancer’s tower while her husband roams from city to city, pausing only until his crimes grow too great and he must move on. They haven’t encountered each other since they were separated, but I guess now they have all the time in the world to meet again. It’s so tragic.

          The thing is though, legends just presents a bunch of scattered events. We’re the ones who find those scattered facts and weave it into a story. It’ll be a real accomplishment when we get a computer to be able to do that.

      • Nytzschy says:

        Adventure mode is great, in my opinion, for finding surprising procedural* stories while moving through the world.

        One time I met a dwarven slave in a human fortress. Curious about how she had ended up there, I started asking her about her family. Although there were a lot of repeat answers (the NPCs aren’t exactly cleverbot), the information she gave was fascinating. Bit by bit, she revealed that as a child she had been kidnapped by goblins along with some of her siblings, and was taken to live among the goblins. One of her siblings even married another captive dwarf. That information, along with the information she knew about her relatives who had been living among the dwarves, made that character and that character’s world feel truly alive. All of this came from the game world’s pre-generated history and the basic behaviors of its simulated inhabitant.

        *Or would that be an emergent story? I really don’t know.

      • TheZoobler says:

        Yeah, when I heard “Procedural Story Generation” mentioned (my mind likes to paraphrase), I immediately thought of Dwarf Fortress too. I thought of the history feature moreso than the Adventurer Mode.

        You just hit a button, generate a world, and then watch the years fly by until a sufficient number of years have passed that you feel ready to live in your world. You can start at Year 1, the birth of the world, or Year 167, or Year 1256, or more. And then, before you go in to make a Fortress or to go Adventure, you have the option to read the world’s history.

        You can find significant events, people, locations, wars, kingdoms, artifacts, etc. You can find out what every single dwarf, human, goblin, dragon, and titan was up to over the history of your world; who married who, who killed who, who lived in what nation and city. You can see who forged a specific legendary spear, and who stole it, and where it is now. An entire history gets laid out for you in about 30 seconds, and its all completely procedurally generated.

        Its interesting how compelling it can be. Even when you’re reading about Lord Goatfellows of the Forests of Pink Seduction, and how he was slain by Roothugger the housefly goddess/elder beast (as happened in one world), it is very interesting. At first you think its silly, then you realize that history in reality pretty much is just a bunch of people with somewhat random names from random locations clashing and killing and marrying and building…. DF’s history simulator is almost into the uncanny valley, lol. It’s neat to see your fortress get added into the annals of history when it finally burns down, too.

        Either way, it is very cool and I think DF should be looked at and analyzed carefully whenever talking about procedurally generated content. That game is primitive in many ways, but it really is a wonder.

        PS: Most interesting DF moment: Long story short, I ended up flooding the top 8 floors of my fort after goblins slaughtered 116 of my citizens, leaving only 12 alive, huddled in the very bottommost basement of my once proud city. The dwarves had food, water, and supplies; I thought they could outlast the goblin siege. Then dwarves turned up dead one by one. I got a notice that a vampire was killing my dwarves… one of the survivors. Eventually all died but one, my chief medical officer, she did too. I abandoned the fort. Opened up the history menu, looked up the dwarves that lived in my city, and of course, the Chief Medical Dwarf was the vampire all along :( and had been changing towns and identities for 257 years before she immigrated to my fortress. I had always wondered why dwarves on the mend, receiving treatment, would sometimes die suddenly…

        • Nytzschy says:

          Opened up the history menu, looked up the dwarves that lived in my city, and of course, the Chief Medical Dwarf was the vampire all along :( and had been changing towns and identities for 257 years before she immigrated to my fortress. I had always wondered why dwarves on the mend, receiving treatment, would sometimes die suddenly…

          HA! Wow. That is brilliant. It also sounds like a good horror story.

          Did Dr. Vampire finally kick the badger-bone bucket, or did you abandon with just her left over?

          I’ve had two vampires in any of my forts so far (in fact, just in my latest fort). The first one drained someone in the middle of a dormitory, and had I checked the Justice screen I might have caught him. I didn’t, though, so the vampire’s identity and subsequent lack of activity remained a mystery to me until I found out I had sent it to die in a fight against a Mountain Titan.

          My second vampire is the King of the civilization. You wouldn’t believe my surprise when I saw Urist McDracula “king vampire” with 4,000+ kills walk onto the map. Apparently undead monarchs are not uncommon. This one, for some reason, has a taste for the blood of militia dwarves. I assume that’s because he is also in the militia. (He’s in it because why wouldn’t I want to have an ancient vampire monarch ready to fight?) To my amusement and convenience, I’ve found that since he’s in the militia I can allow him to partially feed on a dwarf, if I catch him in the act, by calling him off before it’s too late by stationing him somewhere.

          • TheZoobler says:

            It’s been a while now, so I don’t fully remember, but I think she might have been starving to death when I abandoned the fort. She was 8 completely-flooded floors beneath the surface with no way out and a goblin horde patrolling the land above.

            Sometimes, you just have to call it quits lol.

    • Phantom Hoover says:

      The thing about DF and CK2 is that they don’t generate good stories; they generate a primitive, boring narrative, but leave enough unsaid for the player to make up the characterisation and motivations that actually makes the stories good.

      Take the nigh-legendary Cacame Awemedinade, elf king of the dwarves. The “brief history” is all that the game actually generated; a few unconnected coincidences. Everything else was the result of players tying those events together and building off it.

      • Lord Nyax says:

        Exactly. Right now it’s hard to conceive of a computer program doing the human’s job of connecting boring events and turning them into a compelling narrative. On the other hand it was also hard for me to conceive of programs creating interesting terrain without a human designer coming up with every hill and tree. When I look at project frontier I see a world that, if you had shown it to me ten years ago, I would have been convinced that each lake and swamp was chosen carefully by a human being, not a program. So who knows what might be possible?

        I guess Shamus might know. Maybe.

  7. Well, we do have games with that kind of emergent story you talk about at the end. They’re called “paper and pencil roleplaying games”, and they use a human to do the story on the fly in response to player behaviour just as we use a human to write normal stories. I’m not sure explaining how to be a good game master is any less futile than explaining how to write a good story.
    I confess to lacking confidence that it’s workable to program a computer to adjust the world spontaneously in response to autonomous, unpredictable, non-limited player actions.

    • Zukhramm says:

      But once you put a human on it, it is no longer emergent in the sense we’re using here.

    • Paul Spooner says:

      Agreed, except for the confidence. That’s the focus of one of the projects I’m working on actually, Project Fledgeling. It may not be possible, as you say, but it seems like the best approach to solving the “problem” of flexible storytelling in a computer simulated environment. The game designer has some concept of where they want the story to “go” so they craft the GM. The player has some concept of what they want to do, so they craft the Character(s) (probably continuously over the course of the game). Then these two sets of agents (perhaps nested for a layered campaign! The possibilities are endless!) interact and compete to decide the course of the events in the simulated world.

  8. Kronski says:

    I’ve actually had an idea for a procedural quest generation system somewhat better than ‘go to X place and get me seven thingies’ that I haven’t done anything with.

    Imagine if you had a number of groups in the game, all of whom had goals that were affected by in-game conditions. The player can affect the conditions in the game, changing the goals of groups and thus changing what stuff the groups want him to do.

    For example, Town A is a town with an iron mine that survives by exporting the iron that they mine over Bridge B. As long as the iron mine exists, Town A’s goal will be to continue to survive, which they will acomplish by maintaining the condition ‘bridge exists’ ‘iron mine exists’, or ‘merchants carrying iron over the bridge don’t get killed.’ In this state of affairs, Town A would give the player quests like ‘defend merchants’, or ‘shore up passageways in the iron mine’.

    Of course, there’s a second group, Bandits, who have two goals: a primary goals of ‘steal stuff’ and a secondary goal of ‘ensure that there is stuff to steal’. The bandits might give you quests like ‘kill caravan guards’.

    If the player burned down Bridge B, then both Town A and the bandits would want the player to somehow rebuild the bridge – because Town A and the bandits benefit from Town A being able to export iron. If you increase the number of groups in the game, they would conflict in cool ways that could create interesting situations and conflicts.

    • Zagzag says:

      I have a feeling that anyone trying to implement that would quickly run into a solid wall of exponentially increasing complexity of inter-group interaction. It would be a nice idea though.

      • swenson says:

        You could probably fudge it well enough, given a sufficiently small number of groups and motives. Or have a sort of “end state” where your actions can’t affect a group anymore (which could be seen as winning, I guess? Or losing, depending on what your goals were?). At some point, after the character has killed all of the merchants and burned down the bridge and collapsed the mine and released undead abominations into Town B, maybe the inhabitants of Town A just start committing suicide, having nothing to live for, and you just don’t get anymore quests.

        Or something. But given enough effort, you could probably use these limits to offer the illusion of infinite choice, while you only have very, very many choices.

        Although, I guess that’s what everyone already does, just on a smaller scale… and it wouldn’t truly be infinite.

      • Zukhramm says:

        With a reasonably generic rule on how interactions are done that should not be a problem. It’s basically The Sims but with groups instead of people.

    • Aldowyn says:

      This seems like what Guild Wars 2 was kind of aiming at, except they had pre-defined events instead of procedurally generated.

  9. Brandon says:

    One thing that I have been puzzling over (because I’m crazy) is procedural GUI design. I’m pretty sure that’s a mostly impossible thing, because designing a good GUI is such touchy business, and doing that on the fly would require you to read the mind of a user.

    Would be amazing though, the GUI always being able to know what the tool or function you are looking for is, and always making sure it put it in the first place you look. … We can dream?

    • X2-Eliah says:

      Hm, is that more a procedural gui or a predictive mutable gui? Procedrality is not entirely based on accomodating what’s best for the user.. it’s more about emerging stuff based on rulesets.. I think..

    • Paul Spooner says:

      Very possible. Necessary, in fact, for any sufficiently advanced or complex system. It is already done to a certain extent. When you hover your mouse cursor over an icon and the keyboard shortcut shows up, that’s procedural behavior.
      Of course, all GUI is essentially procedural, as the interface has to represent an arbitrary set of game states. What you have in mind is a natural extension of the idea, and a good one at that.
      The “quick access” bar in Fable is another example of procedural interface. IIRC it mapped the “1, 2, 3″ keys to the “most used” commands or items. It could be really helpful, until you ran out of items and the key suddenly switched to representing something else. A good example of how, sometimes, you want things to NOT be procedural.

  10. Zak McKracken says:

    Hmmm…
    I would guess it is a question of how large your parameter space is…

    If there’s a finite amount of ways a story can play out, I’d imagine it should manageable without having each possible resulting plot in mind.
    You’d have to program a framework first:
    Introduction:
    [Hero] is introduced, he/she is a [position in society] with a [problem], and he has [Friends/family/enemies].
    Then [something] happens, and [hero] decides to [do something].
    Middle part:
    [Hero] starts to [do something], and gradually discovers [bits of information to fill in stuff we didn’t know in the beginning but matches with what has happened so far]. His task becomes harder, but he is clearly coming towards some solution, when…
    Finale:
    [Something really bad happens]. [Hero] is robbed of his certainty, as well as his hitherto largest power. This is when he realizes that [there’s still a way through this] and manages to seize the opportunity to [find a solution].
    Epilogue:
    [Hero] = [Hero + whatever experience and insights he has collected], the world has changed according to the events in the story. End.

    Granted, noone will be able to fit all Jim Jarmusch movies in one such scheme, but essentially this is what most stories look like. A reasonable subset should be achievable. You would need a lot of work on things like what choices for the above variables will be reasonable in which scenario. But if you limited yourself to a classical drama or an adventure [x saves y from z…], and maybe five different possibilities for each of those variables, with some basic considerations about which combinations will make sense, that should be able to deliver at least useful skeletons of stories.
    The next step would be to put some flesh to that skeleton. LOTS of work (but hey, this is about theoretical possibility, so no whining), and occasional plot holes guaranteed, but it might still look better than other game stories written by people …

    • Paul Spooner says:

      A fair generalized outline of a “story arc”. Well done! We can haggle over the wording and details, but I think the biggest improvement is to give this kind of story layers (several arcs happening at once) and depth (each step of the story arc is, itself, one or more story arcs). Once you do that, you’ve got a formula for an infinitely detailed (or abstract) story that encompasses most fiction.
      Then give the player agency over whatever level, layer, or depth you prefer, and you’ve got a game.

      • RandomPhysicist says:

        I think this is really the most promising approach for a procedural story. The same types of arcs could be used in different scales in the story. For instance, a story line involving the lack of an heir for a kingdom could be the background conflict in the setting, it could be the primary conflict our hero faces, it could be an obstacle in one of the acts, it could be a sidequest relating to a companion, etc.

        From here I think there’s two options. The easier (but still difficult) option is to map out all of the arcs before the game starts, with the player on a unique, but still railroaded plot. The harder option would be to build the arc “on the fly” with character actions determining the directions of things. For example, if the Romeo gets caught sneaking to Juliet’s balcony, working Romeo’s subsequent imprisonment into a moment of catharsis (through a generic “imprisonment gives one time to reflect on one’s actions” arc). Instead, maybe Romeo decides to hook up with a tavern girl instead and a spurned lover arc is launched. This would be pretty hard to implement at scale (with compelling dialog), but for a small-scale story it might be possible.

        • Zak McKracken says:

          Working the story out as you go along can (I think) be easier than doing it ahead of tim, since you can withhold part of the background from the player/reader (this was originally about procedural stories, not procedural game stories). If the player does something and the next “intervention” from the story engine needs to take place, the information given from the player can react to what the player has done so far (which NPC is still alive, what has the player seen, how has he acted towards different NPCs…)
          Like a good DM, the engine has the possibility to make things up in hindsight and pretend it was like that all the time.
          Of course, this requires a system that will have a) lots of different options and b) the means to check the validity of these.
          As always, restricting player choice or railroading makes this easier on the programmer — at the cost of variability in the story. In any case, you’d need a good way to check whether a certain variation of the story is valid from a certain starting point.

  11. fenix says:

    I think that soap-opera world could change into your average epic setting really easily. Scope is determined by setting most of the time and if you created a setting in a warring area of the world where the squabbling variables are not just on an individual npc basis but also on a faction basis (faction A wants faction B’s oil. faction C has a defence agreement with faction B but fears faction A’s nuclear capabilities, etc.).
    Then just give the player some capabilites above the average person and you’ve got a game.

    (This would also rely on an open world, procedurally generated preferably; the ability for the game to dish out dialogue procedurally; etc. etc. I know it’s full of programming hurdles to make fun and/or interesting)

  12. WWWebb says:

    If stories could be created procedurally, Sean Howard would have finished A Modest Destiny by now.

  13. Dennis Stewart says:

    I’d say TF2 did become a different game after Valve added hats.

    • Dasick says:

      It became a worse game.

      You know those silhouettes we’ve painstakingly crafted to train you to recognize the different classes by shape alone? Yeah, here’s a hat to change the head, perhaps the most seen part individually. Have fun!

  14. Ithilanor says:

    I’ve thought a bit about using emergent stories to create procedural writing before. The game that brought it to mind was actually Majora’s Mask, with all its character-driven sidequests, i.e. Kafei and Anju. I think one approach to take would be creating a world full of characters with various relationships, somehow figuring out how those relationships affect each other, then let it evolve over time and in response to the player’s actions.

  15. rofltehcat says:

    Don’t have time to read it immediately, sadly.

    Though let me ask something remotely related: Has anyone tried Proteus? It is a “game” released on Steam a few days ago and from the description (and a bit the style) it looks a lot like Project Frontier with a soundtrack (and different graphics style).
    So what do you mean? Worth checking out?

  16. groboclown says:

    I’ve been slowly working on a hybrid mix between the story template and emergent story game idea. Essentially, there’s the set of characters and locations with their own behaviors, then there’s a set of story templates that can start once there are enough characters / locations that match the starting parameters of the template (or, alternatively, new places / characters can pop into existence if you want to force the start of the template).

  17. TheAngryMongoose says:

    “Why can’t I team up with Darth Malak? Why do I have to keep the Enclave from turning on the Water Purifier? Why can’t I take Clementine and ditch the rest of these incompetent losers? Why do I have to join the Grey Wardens? Why can’t I just murder Reaver? Why do I have to work for The Illusive Man?”
    That pretty much sums the last 5 years of your Let’s Play career.

    • Neko says:

      And the answer, or at least the most obvious obstacle to those goals, is “Because we want everything to be voice acted and we didn’t consider deviating from the script that much to be worth the extra thousands of hours of dialogue”.

      Of course there are other considerations – it takes more time to write those alternate paths, you could run into potentially buggy quest states that you need to handle, and so on – but I feel that the push to have everything 100% voiced has killed a lot of the flexibility that used to exist in quest design.

      Look at Morrowind. Everything text, all the time. It was (is) glorious. Huge amounts of lore to poke into if you’re into that, variable reactions to your actions based on how much people like you, a number of PC dialogue choices that actually affect how they respond instead of playing the same canned response.

      Then there was Oblivion, and people just didn’t have that much to say anymore. There’d be a couple of choices, and that’s about it.

      Now we’re up to Skyrim, and while I do like the ability to just [tab] out of the conversation at any time, I feel a lot of it is just putting words in my mouth so that it lines up with whatever singular response the quest writer had in mind.

      Neverwinter Nights had the right of it, IMHO; voice the first few greeting lines and any major scenes, leave the rest as text.

      • JPH says:

        Counterpoint: Morrowind was (is) often badly written. Characters would puke entire essays of text on you at the slightest provocation, often without justification or meaning, and it quickly became exhausting. The dialogue in that game needed some serious pruning.

        Also, the *real* answer to most of those questions is “because it would wreck the established narrative.” Voice acting has nothing to do with that. The Walking Dead, for instance, would play out extremely differently if you could just ditch all the other characters — those characters and their arcs are important to the themes of the narrative.

        • Indy says:

          Agreed on both counts. I liked Morrowind, but I didn’t like reading every essay of the 1984 biology majors just to get a quest hook.

          Joining the Enclave or ditching the Illusive Man would require a tremendous amount of effort. It’s not just about being able to go on a different track of the railroad, it’s about integrating the separate tracks into a proper railroad system.

          • Paul Spooner says:

            So, as far as dialog is concerned, the ideal would be some kind of LOD (Level Of Detail) system. You ask the guy “What do you want?” and he says “Convince the king to release the ambassador from the dungeon.” Then, if you’re interested in the lore, history, essay, etc, you can ask for more details. We already do this automatically for 3D models and level geometry. Adjustable level of detail is far overdue for NPC communication.
            For that matter, it should be selectable for player character communication as well. Select the dialog choice, and then select just how you want to say it. If you’re terse, the NPC will assume you’re only interested in business. If you begin waxing eloquent, the NPC will be inclined to do so as well.

      • Steve C says:

        It may take more time to code those alternate paths but it won’t take more time to write those alternate paths. Not having a human do it is the entire point of procedurally generated content.

        Obviously it wasn’t possible in those games for the reasons you mentioned. I do believe it’s attainable within my lifetime just not soon™.

  18. Primogenitor says:

    For my 2p, “procedural generation of story” runs into the “procedural generation of valid sentences” problem. I think a procedural story generator could be made – actors perform events according to relationships – but presenting that in an accessible format is the really tough part.

  19. Daimbert says:

    What you describe in the article is pretty much what I wanted to combine the ability to create your own characters that you had in Icewind Dale with the strong characterizations of your party members in Baldur’s Gate, where when you create your characters you would specify certain traits and relationships that they had, and the game would generate interactions between them at various times, and it would have an impact on how the game went.

    That being said, I don’t think it works well for generating an actual story, but as you said it could be used in an open world concept. Since I prefer story based games, though — like the Personas — you aren’t likely to get that sort of great story telling from this model and so it wouldn’t be what I’m really interested in.

  20. Andy_Panthro says:

    I was surprised that you didn’t mention TES: Daggerfall, which had loads of procedurally-generated content, and I think that included quests to a certain extent. They were “cookie-cutter”, like you mention in the Torchlight example, but very impressive at the time. Frontier: Elite II & First Encounters also had this sort of system, which worked relatively well (except for all the bugs).

  21. TMTVL says:

    “I think rather than procedural stories, we ought to be looking for ways to make emergent ones. Instead of a static story about a hero who does something heroic, it might be better to simply generate some starting parameters and drop the player into a sandbox style world. […] The player is then free to act or not act as they see fit. Their version of the town will be different from someone else’s, and the decisions they make will form a unique story.”

    Isn’t that what the Way of the Samurai games do? You start out in a town, and depending on your choices stuff happens differently. The Kurou family might make peace with their enemies. The Aoto gang could end up decimated. Sayo might never learn to write. You might even be approached by a government official to get involved in some shady business. Or maybe nothing changes at all, you just passed through, killed a few brigands, got your sword tempered and left again.

    I know I bring this up all the time, but I just feel like people are actually looking for these games and not realizing it, or skipping out on them because “they’re hack ‘n slash things”.

  22. Nytzschy says:

    Would it work? Would it be fun? It’s hard to tell. The only way to know for sure is for someone to build a prototype and see if they have the next Minecraft or the next Spore.

    Whoever is building the next Spore: please don’t. I’m tired of having to cut off my galactic exploration to go kill five Snarfs on a planet you really ought to have learned to take care of yourself by now.

    What’s that? A species is diseased, threatening to lead to ecosystem collapse? And if this was on a planet owned by my allies, I have a relations penalty if I let it hapen? And if you’re my world, you just won’t stop sliding into collapse, spamming me with messages, until I do something about it? And if I want to somehow solve this problem permanently, I have to make how many sporebucks to buy and install an eco-doohickey on all these planets to make sure they don’t spin out of control?

    Spore was fun, sure. It had great things like the creature creator. But it felt empty.

  23. Sabrdance (MatthewH) says:

    As an avid player of the Sims and a modest fan of RPGs, I don’t think combining the experiences would work. Aside from a few self-imposed challenges, every neighborhood of the Sims requires a certain amount of player planning to make it work. While it is emergent -and plans can fall apart spectacularly fast -if the player doesn’t have some idea of the endpoint in mind, the neighborhood will just circle the drain. If my RPG or sandbox did that, I’d get board fast. On the other hand, I’m willing to trade some of the freedom to choose the endgames and the paths in return for better and different stories.

    The problem I am finding-to take my current example -is that the story I expect the developers to tell in New Vegas is better than the story they are actually telling. Had this problem in Dragon Age and Mass Effect 3, too.

    Alas, an emergent game wouldn’t solve that problem.

  24. СТАЛКЕР of ЗОНА says:

    I’d say emergent is the procedural of storytelling.

    STALKER does emergent stories. They all end with “such is life in the Zone”. All you have to do is walk from one location to another, and you’ll get some story almost without fail.

    One huge factor in all this is that the NPCs all have a name.

    And the Zone isn’t just a setting, it is a character, and she giveth and she taketh away.

    For such is life in the Zone.

    RIP German Reactor. He was a good STALKER, let us drink to him once more.

    • JPH says:

      Most of the “emergent stories” I experienced in STALKER: Call of Pripyat were “I got from point A to point B. I found some dogs on the way there. They tried to bite me so I killed them.”

      “Such is life in the Zone, I guess?”

      • СТАЛКЕР of ЗОНА says:

        That doesn’t sound like the COP I played. Usually I’d be running low on ammo or bandages/first aid kits, or paranoid due to a good haul, or have severely degraded gear, or see a bloodsucker too close to my route for comfort, or barely get to shelter before an emission, or just meed some friendly or neutral fellow STALKERs and bandits, possibly someone I’ve seen before.
        Though possibly SOC was better at emergent stories.

        And one key thing with emergent stories is that they can be killed by bad attitude (and just plain bad storytelling from the person relating the story). Pretty much all emergent stories in any game can be told in the vein of “went from point A to point B, killed some mooks”. Hell, you can even do it to Shamu’s D&D campaign.
        You HAVE to play along or it won’t work.

  25. Patrick says:

    I considered a similar system for a hypothetical Shadowrun CRPG – only the kicker was that it created entire zones along with ranom missions. Apart from giant tables of “types of locations”, “where those locations can be found in the map*”, “kinds of opposition**”, there was also a guarranteed roll on the “complication” table – possibly more than one.

    Might be anything from having a character you’ve met get in touch and try to convince you to not take the mission, to that same character offering more (or less) money for its competion in their favor, to having a rival faction or Shadowrunning team show up***, to having the mission be a bust before it even started with only a possibility that you might be able to then figure out how to actually complete it, to all the intel you get being actively deceptive (and that mattered because it affected how you prepped and what you took along, to the mission being a setup by whatever enemies you’ve made. And since every mission had a behind the scenes faction or group sponsoring it and could earn you friends who might offer access to equipment, intel, and safe havens, what you did and what happened in random missions might affect your ending.

    While there was a “main plot”, and you needed to make allies along the way to complete it, which allies you pick would affect how late main-story missions would go. They might have different tools and ways to help you. All similar to what you got in the main story, just more focused. None of the allies were lily-pure, but in keeping with the fact that Shadowrun used both black/white and ambiguously grey morality, there were subfactions which could gain power and affect the endings. That pro-human faction getting you down? Wipe them out in a bloody campaign of revenge – and watch the violent/thug group in the pro-metahuman faction put more people on the streets and begin a wave of terror to finish the job. Or work on allying with both (difficult) and slowly bring them together in mutual respect, if not exactly love.

    * They would all be keyed to existing buildings in the overworld, but when you entered one it was randomly generated. Relatively few locations were pre-gen.

    ** Which might be anything from pacifist religious organization dedicated to offering medical care to squatters to an insane policlub dedicated to a psychotic vampire serial killer and all armed with military lasers and ninjabots.

    *** They’d be pre-genned and have their own style, and if you killed them there were only so many replacements. You’d also earn a very bad rep and new enemies for killing them. Wipe them all out, and you’d never see this complication again. Becoming their allies could actually let you call on their help as with any faction.

  26. hborrgg says:

    Well, even in Minecraft you are bound to run into the exact same terrain eventually, and if you’re not counting minor variations then really it’s not long at all until start running into the same biomes, the same ores, you’ve discovered all the recipes, etc.
    I suppose it depends on what you mean by “procedurally generated,” if all it means is a story that goes on forever then yeah, you could totally do that. It might not be very good but you could do that.

    As for continuing to generate things that are completely novel, I’m not sure how you’d do that from a program in any respect. Or maybe the core thing to take away from all of this is that the real procedural content in minecraft comes from what the players themselves add, or the custom mods and maps you find online.

  27. Sooo . . . if you want to create a “procedural story”, what you do is create lots of procedural interaction options where people can interact with/react to things and other people in a wide variety of different ways. That’s always been a big issue in a lot of RPG’s and story-based games. Most of the stuff you do generates no real response. Sometimes there’s an unspeakably shallow and unsatisfying scripted response.

    So what you really need to do is develop a response-generating system that works within a framework of many optional activities, where you can craft things, find them, destroy them, build them, etc. etc. etc.

    This makes sense because in its most rudimentary form a story is basically a propagation of action-consequences over time. A choice leads to an event, which leads to another event, etc.

    Some games have elements like this because there are action/reaction chains. You steal somebody’s possession, so they attack you. You hit them, so they run away and alert the guards. Next thing you know, you’ve killed everyone in town. But it’s always simplistic behavior–so much so that it’s often pretty laughable. You could add a lot of potential responses, though, anything from hiring security to going out of business. The trick would be to make the options ramify throughout the population–they’d have to affect more than one person.

    Doing it with voiced dialog though? NO.

    • JPH says:

      Bah! You could totally have voied dialogue. Just use Microsoft Sam! And you can justify it by making all the NPCs robots.

    • Paul Spooner says:

      I think what you are describing is more along the lines of an “emergent story” as defined in the article. A “Procedural story” would be something that the computer comes up with beforehand, and then the player gets to act that story out. That’s my understanding anyhow.

      But yes, emergent is generally preferable to procedural. Sometimes, though, you need a little of both.

      • Steve C says:

        There’s a company out there making power systems for space craft. The interesting thing about it they have no idea about power systems. How they do it is a computer generates thousands and thousands of possible systems and then competes them against each other in simulations. It’s a Darwinian approach to system design.

        Why do I bring this up? This is how I’d approach a procedurally generated story. Because a story is just a system. An infinite number of monkeys on an infinite number of typewriters and if they write something stupid that monkey gets shot. One of the monkeys left might just have Shakespeare.

        Trying to procedurally generate a good story can’t be done. It would be doomed to fail from the get-go. What you could do is have a computer generate a billion stories and then write rules to procedurally weed out all the bad ones. Not emergent gameplay nor procedurally generated, but combination of both.

        First you’d set up a system where emergent stories can occur like in The Sims or Crusader Kings. Most stories would be boring, stupid, pointless, etc. You’d have to figure out what makes those stories bad and code a separate program to evaluate them as failure states. For example if the protagonist gets depressed and shoots himself in the head then a computer disqualifies it as a story and a human never sees it. You’d be left with lots things like Alice and Kev which is more of a soap opera then a story. Then you’d evaluate what’s making those not work as the kind of story you want and write more exclusion rules. Rinse and repeat.

        Eventually you’d be left with a finite number of good stories. As long as that pool of choice was large and diverse enough then it will feel to the player like there are infinite possibilities. Just don’t screw it up with a Mass Effect red/green/blue at the end and a human won’t see through the illusion.

        TL;DR

        Instead of trying to write procedural rules to get a golden story I’d write rules to crush up the mountain of crap, sort it, sieve it, pan it, ditch the cruft and keep the gold that’s left.

        • Retsam says:

          This approach is called a genetic algorithm (I say that not to suggest ignorance, but I’m going to refer to it as such).

          Unfortunately, I don’t think this approach will ever work for storytelling, at least not unless we’ve already invented Strong AI at which point this conversation is moot.

          To make a genetic algorithm, you need two things:
          1) You generally need a set of fundamental components to combine in order to build each candidate. These things should be independent and interchangeable.

          This is probably possible with storytelling, perhaps the sort of generic outline described above.

          2) You need to be able to numerically rank each candidate to determine which ones are the best and should carry on.

          This is where you’ll have the problem. How can a computer numerically evaluate a story? You suggest writing rules to “weed out the bad stories”, but this statement is a hand wave over the most critical part of the whole idea. I don’t believe it’s possible to determine the value of a story algorithmically, again, at least not on this side of Strong AI. If you can write a program to tell you whether or not a story is good, then you wouldn’t need a genetic algorithm to get it to write you a good story.

          • Steve C says:

            Yup I’m definitely skimming over the hardest part. It’s still the only method I think has a chance of working. Other methods either won’t work or it becomes an emergent story instead of a procedural story.

            I disagree that it would be impossible to determine the value of a story algorithmically. Certain story elements will be set based on the game you’re making. The setting will be set beforehand due to art assets. After that there can be other predetermined elements. Maybe particular characters. Maybe it’s one of the finite possible plots. Maybe the pacing is set. Maybe everything except one element.

            Cliffs Notes has been dissecting stories into parts for decades. rottentomatoes.com comes up with a final value for movies. Every review of any movie, or book attempts to explain why it’s bad. There is a pattern here and if there’s a pattern in a system a computer can find it. I’m not saying it’s easy, only possible.

            A human would have to read a selection of stories generated by the computer. Things will pop out at them as being right or wrong. A computer will make some really obvious missteps. For example school bus = good, shooting kids = bad. That’s where you start putting values. A computer will have characters that don’t resonate and others that are simply unbelievable. Rate them. Some plots work, some don’t. Rate those. For example, Jade Empire works. Fable does not.

            Easy? No. Possible today? Yes. If someone was able to pull it off just once, wouldn’t that be awesome?

            • Shamus says:

              In reading this, my take is that your suggestion moves the difficulty from the coding to the input. Now we have a bit of code that compare good” and “bad” stories to sort them. Now you need you figure out how to turn stories into data that can be processed like this. You can’t just shove a novel in there and expect the program to understand it. We don’t yet have AI smart enough to “read” a book in the sense that it can examine the text and tell what’s happening, who’s involved, where it takes place, what the stakes are, how quickly time is passing, and how the characters relate to each other.

              Writing a system to read and understand a book with this granularity would probably be just as difficult as writing a program to write stories in the first place.

              • If I were going to do something with/about this, my preference would be to strip out as much extraneous stuff as possible–there’d be very little dialog, description, or other fluff involved and it would be left for the player to notice or infer what’s going on in the background to create the ongoing changes.

                But then, I wouldn’t use a procedural system for anything except manipulating low-level relatively unimportant stuff that many people may not even notice–if I want to do big, epic stuff, I’ll do that by hand.

              • Steve C says:

                A human wouldn’t write a story. There’s no text to data conversion. The computer would be generating data which a human would evaluate a sample of. Rules would come out of that evaluation to generate a “better” data set next time the computer generates a sample.

                To get a sense of what this would look like- think about a game where a computer can play itself. Crusader Kings with the game on auto for 500 years. Take 1000 random characters from that world and look at what happened to them. Sort them into interesting/uninteresting. Reset and run again for another 500 years. Look at another sample of 1000 characters but weight the sample towards interesting and away from uninteresting based on the last pass. Keep repeating that process.

                Notes vs internet pedantry:
                I’m not saying that Crusader Kings or similar game would be sufficient to generate good stories. Nor would The Sims. CK is has too many broad strokes and not enough detail. Sims has too much detail. One reads like a history book, the other like a soap opera of crazy people. Combine the the two approaches, broad strokes + detail, (not the two games) and you have the potential for a Game of Thrones-esk story. Change the setting and you get a space opera etc.

                TL;DR
                Take a game where emergent stories are possible. Have a computer play it. Procedurally sort the results. Have players follow one of a large number of possible predetermined interesting paths discovered each time they play.

          • Zukhramm says:

            This is a reply to all the above posts, but I’ll put it here.

            Let’s dial this back a bit. We’re not necessarily aiming for a great story. As with everything else, we’re not going to beat what a specialized human can create. We’re trading away some quality for quantity.

            Saying something is emergent instead of procedural is a bit of a false dichotomy, emergence is a good tool for procedural generation, and in this case, probably the best.

            Just culling the bad ones is not in itself a genetic algorithm. It becomes genetic once we let the stories breed and mutate between the culling, but then we face a couple of new problems. How do we represent the genes of a story and what does it mean to combine two stories?

            Either way we also have to problem of measuring how good a story is. But still, we’re not trying to replicate a human reader, the same way we don’t simulate the individual workers when procedurally generating a building, and we’re aiming for “good enough” instead of “great”. Instead of trying to judge the stories I think we should find a couple of superficial properties that correlate with good stories “well enough”. Perhaps something like variation in event density, predictability and non-predictability in the right places, some kind of coherence between one event and the next, or the degrees of similarity and repetition between different parts at different scales.

            • Retsam says:

              If I can make a more general objection, it would be as follows:

              First, any approach would need to be somewhat Darwinian, i.e. a successive process of improvement from generation to generation. If you don’t want to call this a genetic algorithm, fine, though how are you going to generate a crop of random stories if you don’t have some conception of what the ‘genes’ of a story are.

              If not, if you aren’t using a Darwinian approach of improvement, and are just hoping to generate a good story in a single random generation, then you’re little better off than if you invested in monkeys and typewriters instead of programmers.

              If I’ve made my first point, that any viable approach would be Darwinian, then I’d argue that secondly, most good stories can’t be built by a Darwinian approach. I don’t believe that in most cases you can start with a bad story and build your way up to a good story element by element, with successive improvements until you get Hamlet.

              Instead, I think most good stories are pretty sensitive to tinkering, unless the tinkerer knows exactly what they are doing. Why did I think Sam Raimi’s first Spiderman movie was great, but the reboot amazingly mediocre? All the same fundamental elements are there, even several of the exact same plot points. With a slight bit of tinkering, it could have been a great movie. But there was just a small something missing or something wrong that essentially ruins the movie for me.

              Or stated as the reverse, if you take Sam Raimi’s Spiderman and change just the slightest bits, you’re likely to go from one of the best movies of the last decade to just another wasted blockbuster.

              It’s this extreme sensitivity of quality to very slight deviations in content that, among other things, I think would make this an impossible task.

              • Zukhramm says:

                Just because procedural generation might involve randomness does not mean the results are “random”, I can assure you I am able to write a program that generates better stories than monkey on typewriters.

                Now, using some kind of evolutionary process for generating stories is not something I think is impossible. In fact I think it has already been done many times. Any type of story without a definite written form is probably under the effects of this process. Jokes, rumors and myths, they mutate when we tell them slightly differently than how we heard them or forget details or embellish them, and the popular versions merge to combine new forms. The ones that prove popular survive and the boring and bad ones are forgotten. The only difference here is that the evaluation is not done by a computer but by humans. But what’s saying we can’t use player behavior as the fitness function?

      • A procedural story would be one that’s generated by the computer in some way off some basic inputs. Those inputs could be character actions, random die rolls, whatever you want, but it’d throw that data into a story-generating matrix of some kind and you’d get random(ish) results.

        You could do a lot of this sort of thing with flags and weightings. If you steal >x value from a shop, a poor shop may be more strongly weighted to go out of business, while a wealthy one may hire more security.

        The individual responses would not be all that random, the way you introduce the random elements would be to have secondary consequences that interact with other things. For instance, let’s take a fairly characteristic situation, where the PC comes running in and steals everything not nailed down.

        1. The lowtown shop goes out of business–the shopowner and his daughter get re-flagged as “unemployed”.
        2. The wealthy, uptown shop “decides” to hire more security. There are 3 people in the town flagged as “unemployed” the lowtown shopkeeper, his daughter, and the town drunk. Game rolls randomly to see how many of them and which ones get hired. Let’s say for the sake of argument that the game hires the daughter.

        See, just off that one event, you’re seeing a wide variety of possible options. Maybe the lowtown store didn’t go out of business. Maybe the hightown store did. Maybe someone else got hired. Maybe nobody got hired. (And that’s a very simplistic version.) It’s all scripted behavior, but you can get different results depending on how the inputs get generated.

        Yes, you’d basically require a huge file for every character in the game to record all their various statuses and weightings. But then you could write a secondary program to generate these for you. (Probably with hilarious results.) Then your writers can come in and put together special set-pieces using some of the conditions or tweak stuff if they are so inclined.

  28. Daemian Lucifer says:

    Hmmm…The real question here should be:”What is considered to be a true video game story?”.For example,if you fire up the original xcom,and have one guy magically survive from start to finish,would you be able to say that “Ive played a story of Meat Shield 17″?Is the story of rise and fall of russia in civilization a valid entry?What about the story of lonely amoeba giving offspring that conquer the universe in spore?

    Also,another question comes to consider is “What is considered to be a true procedural story?”.What about the story of the new xcom?Or ftl?Both of those have a clear beginning and the end,but stuff in between is a randomly jumbled lottery.Do those count?Or do you have to have something resembling alpha protocol?

  29. brainbosh says:

    What would be the best way to combine both emergent and procedural stories?
    Most of the fun stories I’ve had in games have been the random occurrences that I have run into while doing my own thing. What I want is for a game to take the emergent story that I have, and build on it.
    If I killed some bystander in a fight, or helped someone at an early part of the game, then let it build a larger conflict out of it, revenge or loyalty, or something else. If it can take a hook from your own actions, and make around that a storyline that you can actually follow through, then it will have much more impact than any random events or random quests built from nothing.
    I know that it is completely different, but I think of the director in the Left 4 Dead games. It controls the game based around your actions and the feel of action. Would it be possible to build a “Narrator” that can take your actions, then build consequences of those actions that feel like more than just a random quest generator?

    • I can think of a number of different ways to do this, with their own pitfalls and shortcomings, of course.

      One is to have a hidden “story hook” database that can trigger off PC actions, so for every random person you kill, or rob, or burn down their house, you have a chance of triggering a “revenge scenario” or “abandoned child” scenario, etc. The trouble with this is that either you set the occurrence number low enough that these story hooks seem incredibly random and disjointed (bad) or it’s high enough that the pattern becomes discernible, particularly with repeated play (also bad). Also, since these are complete, individual scripts, they don’t actually accomplish the job of making the world feel “alive” and interactive–they run their course, nothing else in the game is aware of or reactive to them, and you go on your merry way when it’s done.

      Another methodology would be to have a pre-established relationship “network” between the characters in the game with a (large) number of canned stock responses for commonish situations like murder, theft, PC using your roof for a trampoline, things like that. This is more complex to create than the option above (with all the downfalls that complexity creates, including a staggering number of bugs). Also, the network map is predictable, so there’s less randomness than in the previous example. However, it has the benefits that single actions can propagate throughout the network–they are not completely isolated they way they would be in the first example.

      A third method would be to create a system that can actually initiate and change relationships on the fly. This would be far less predictable than the pre-established network (and also rife with all kinds of new and fascinatingly obscure bugs). However, it would be both reactive and unpredictable–although it’s anyone’s guess as to how good the system would feel to an end-user.

      So, there are ways to go about this sort of thing, and if you can break it down and create a methodology, you can usually create a computer program to churn through that algorithm for you.

  30. James says:

    I Think the best example of procedural story i’ve experienced was in an MMO. None other then Eve-Online, allow me to explain

    Eve has no storytelling for you to play, at all really, it has lore and the like but its very much flavor text, the Procedural story i’m talking of is the day to day event of the players, for example just recently there was two huge events happening, one planned the other a spur of the moment, and its these examples that explain what i’m getting at

    i wont go on about the events here ill just butcher it so LINKS

    3k player PVP cluster kurfuffle in Asakai
    http://themittani.com/news/breaking-massive-super-fight-asakai-lowsec

    Poinen must burn (28k frigate destroyed event) and Asakai Contain graph porn
    http://community.eveonline.com/devblog.asp?a=blog&nbid=74226

    Both these events were huge. abnormally, i mean 3k players trying to kill each other after a “pilot error”, and scheduled destruction of 28k frigates, does not happen every day, and both had no organisation from Devs, and these are only the recant examples, we’ve had war backstabbing and betrayal, and all these are atleast if not more important then the established lore by CCP, imo this is the best example of procedural story, player driven events in a sandbox. hopefully TES:O can capture some of this,

  31. TSi says:

    Procedural ?
    This might interest some of you. It’s about to begin in a hour :
    http://aigamedev.com/broadcasts/procworld/

  32. Blanko2 says:

    Some of the stuff listed in the article actually sounds like a prolog tutorial i’ve read, and i mean this in a good way. Prolog would likely allow devs to define relationships in the way you mentioned and then allow players to interact with them in interesting ways… well, it is a language that is often used for AI work, so it makes sense, I suppose.

  33. MadTinkerer says:

    Glad to see I’m still leagues ahead of anyone else who’s even thought about this subject. Now if I can just find the time to finish the prototype…

  34. MALfunction84 says:

    It seems to me that doing it Madlib style is just a starting point. Story writers have all sorts of terms for different story elements: antagonist, pathos, motivation, twist ending… We also have a nigh endless supply of tropes with plenty of examples. If each character, place, and major event are graph nodes, the tropes are graph edges, and you could generate a graph.

    Maybe you assign attributes to each trope relating to writing style (comedy vs drama) and excitement. Then you could limit your choices to what would produce the typical climax and resolution we all expect with a consistent tone.

  35. kddekadenz says:

    I do, I do, I do!
    In fact I’m currently programming a program which will output procedural fairy tales :D
    It will be release-ready in 3-4 weeks.

  36. Anachronist says:

    Hmph. I go overseas for 3 weeks and miss a post to which I can add a constructive comment. Now likely nobody will see it.

    Shamus, you should be old enough to remember the news about the 1993 romance novel Just This Once written by a computer in collaboration with its programmer Scott French. He spent about $40K and countless hours getting the computer to generate a novel in the style of Jaqueline Suzanne, as an experiment to come up with something she might have written if she was still alive in 1993.

    I recall there were templates involved (romance novels usually follow a template of some sort), but Scott also had numerous controls for procedurally-generated text based on the computer’s analysis of past Suzanne’s past novels. For example, Scott had a “catiness factor” he could dial up and down to generate different dialogues between two women. I also recall Scott’s original intent was to get the computer to generate the novel, but it turned into a collaboration between him and the computer.

    Google for it, you’ll find some interesting articles.

Leave a Reply

Comments are moderated and may not be posted immediately. Required fields are marked *

*
*

Thanks for joining the discussion. Be nice, don't post angry, and enjoy yourself. This is supposed to be fun.

You can enclose spoilers in <strike> tags like so:
<strike>Darth Vader is Luke's father!</strike>

You can make things italics like this:
Can you imagine having Darth Vader as your <i>father</i>?

You can make things bold like this:
I'm <b>very</b> glad Darth Vader isn't my father.

You can make links like this:
I'm reading about <a href="http://en.wikipedia.org/wiki/Darth_Vader">Darth Vader</a> on Wikipedia!