"Generated" Storyline - theoretical

Started by
17 comments, last by LorenzoGatti 11 years, 8 months ago
In the gaming world, almost every story follows a fairly straightforward storyboard: The player immediately knows who the villain is, quests are neatly lined up for them, and the player's abilities are described in intensive detail via a pre-game tutorial run (Of course, there are a few weirdo games like Minecraft that don't really have a story, but let's not drag them into this discussion). Looking about ten to fifteen years ago, it was considered alien if the game had even one level to "hold your hand" through the basics. Anyway, I've been thinking about not only how to make a game fun, but how to also KEEP it fun, and this concept of an automatically "generated" storyline has been an item of much deliberation lately. I'm not saying that it generates an absurd plot like the Video Game Name Generator, but rather begins with no plot whatsoever, but upon interacting with other world entities a rising action builds, and depending upon how the player responds to said rising action more quests are generated and the plot is developed further. The problem is, I can't think of any way to do this other than assigning predetermined quests after the player has reached a certain point within the game. Sure, large quests will need to be predetermined, but small quests should be totally random. Is such a game viable?

"Only idiots quote themselves" - MisterFuzzy

Advertisement
Such a game is not viable if you try to solve a generalized, abstract problem. For instance, see Chris Crawford's pain and suffering for 20 years. Now he's working on a new version of Balance of the Planet, so that he can make some short term money to keep himself afloat before returning to the generalized abstract problem again.

If you can decide specifically what's going to "rise," then you do stand a chance of making some kind of plot generator. So, what do you want to rise?

I hope it's not "your feelings of affection for some other character," because I've seen that done before, and personally, it just bores the heck out of me. But that's my personal feeling about games driven by "emotional counters." You and other people may feel differently, and all that really matters is who will pay.
gamedesign-l pre-moderated mailing list. Preventing flames since 2000! All opinions welcome.
Well, it's an idea you should try to implement, but it might or might not be fun. One problem is that many missions are specially designed to fit a given NPC. For example if the game has a witch and a farmer, the witch could request several tasks related to gathering ingredients, and the farmers could have missions to do chores and maybe recover a lost cow. If you randomize those, the player will have to save the witch's cow, and you will receive a flying broom from the farmer. You might find a way to make sense of this, but will be so generic that might be boring.

That's the reason I'm exploring the idea of a player that makes his own role, in the other thread that you commented (thanks!). But in my case the player will avoid missions, and live his own adventure in the wild.

The problem with designing such a system, is where to actually start, how do you evaluate an action?, how do you evaluate interactions? and finally how do you create a goal out of those evaluations?

imo for achieving a good result, you need a mechanism of supply/demand which can evaluate an individual npc against it's demands, and evaluate potential ways to achieve those demands, then create a "quest" for the player based on fulfilling their wants.

so

for example, a farmer has a herd of animals, so long as his herd is fine, he has food/water to feed the herd, he has no demand. an hungry scavenger decides the farmer's herd is easy prey for food, and kills one of the animals for food. the farmer now has demand for help, as such, he puts in a request for assistance finding out who is killing/eating his animals.

another example:
a logger has cut down the last piece of log, or is coming close to exhausting his supply, he wants to log in another particular location, but the owner does not want to sell, so it's up to the player to create a demand for selling his property, or negotiate for a way to sell it to the logger.

their are plenty of story's that could be created with such a system, but the design overhead for evaluating the entire world's resources, and ecomomy, and discovering what is needed might not be feasible on today's technology.
Check out https://www.facebook.com/LiquidGames for some great games made by me on the Playstation Mobile market.
I wouldn't look at it as a matter of creating a story for a player to work through as much as presenting them with a world where things are happening and the player finds his place in it. Food is being produced by farmers, other resources are being harvested by workers, products are being created by artisans. If you have two societies competing for the same resources, particularly if those resources are non-renewable or scarce, then conflicts can erupt and maybe those conflicts can be the source of both large and small quests.

That might be over simplifying it a bit as you would need to have something running in the background to simulate the societies.
It's not impossible. Games like Cult: Awakening of the Old Ones plan on using procedurally generated narrative.

Here's an example of how it might be done. Let's consider a random village/town generator. I would first select the size and type of village (such as military, food, defense, etc. etc.) I would then place residential buildings and buildings that need resources, as well as any mandatory buildings like town halls. I would also have walls as well. I would then see if any of the structures are blocked, in which case I would move or maybe remove one of the structures. I would then see how many resources should be generated per resident depending on the type of village. I would then create the required buildings (i.e. farms, towers, bars) randomly, although some buildings like gates shouldn't be placed as randomly. Then, for some buildings, I would generate npcs with that job. They would also have a bunch of random qualities (i.e. looks, skills, social status, personality). I would then generate random problems, such as there being a nearby evil bandit outpost, or a famine. Npcs of the related problem would give quests that would result in a decrease of that problem (i.e. destroy X bandits), although at their quests would become more radical (i.e. attack the outpost itself).

However, further systems would need to be created for making actual kingdoms (i.e. towns interracting with eachother) which would be helpful. For example, the capital wouldn't have any farms because it could just buy some. In other words, the key is to think abstractly and be able to come up with your own solution for every problem you meet.
Action -> consequence -> Action... and so on. Never ending loop. You'd have to have filters that could log just about every action a player takes and things they say; to whom? when? how?... etc. Then you'd need to give NPCs actions to take based on consequences and not necessarily from actions taken by just the player.
Not to over simplify such an extensive topic, but you'd probably end up doing more programming for such a game then you would for an MMORPG. You'd be creating some of the smartest A.I. that has yet to be seen, almost to the point where it might feel like its an actual player.... There would also be a lot pf processing involved. Large amounts of data being processed by each NPC. On top of that you'd have to have a persistent world, else it would be useless.
That's why a game of this sort has yet to be done. Some MMORPGs like EVE online, depend on their player base for such random events and evolving missions/quests. They just simply put the tools out there and thanks to players things that were never even coded into the game happen (ex. massive fleet wars, or like in their commercial intro trailer, " a lone wolf faring accross space comes accross a helpless miner who is being attacked by pirates. The lone wolf could just mind his own business or help the miner. The lone wolf helps the miner and soon after a group of reinforcements arrive to help the miner. They thank the lone wolf for helping out and ask him if he'd like to tag along. The not so lone wolf now is part of a group that is part of a bigger squad, that is part of a wing, that is part of a fleet, that is part of a corporation which is part of an alliance of corporation fighting another chain of corporation in an all out galactic war. AND YOU (lone wolf) just that got caught in the middle of it. And none of it was coded into the game.
Think about how much code it would take to abstractly make something like that happen, you'd need to have A.I. as closely as intuitive, learning-capable, analytic as human beings.
Lastly, I'll finish this with that its been done to small scale in games that usually have multiple endings. Like the fallout series. Such as when you kill townees/villagers (action) and the whole town turns at you and remain pissed at you for a while (consequence). Something like that is just amazing and immerses the gamer that much into the game. So its definitely something that game developer should tackle more at. But at this point, it takes some serious resources. And no game has yet to be made where it fully depends on such mechanism.
Something like this was my dream goal back when I first joined GameDev.net, and I'd like to do something with it again some day. I made a monster post sometime in the first year I was here listing all the research I had done on the topic. It's several years out of date now but might be worth digging up.
Edit:Ths appears to be it: http://www.gamedev.n...-plot-in-games/
Unfortunately the move to the new forum format appears to have really screwed up the formatting in my first post.

From what I remember, nearly every attempt combines the sorts of approaches that I think from your post you've probably considered:

  • represent characters with a bunch of attibute labels and characteristic variables which determines which actions they take from the set provided from them (i.e. Bob is a Knight, aggresiveness = 60%, chivalry = 70%, etc.)
  • logic-based planning towards goals for the set of actions available (wants to achieve goal X, so find a chain of A -> B -> ... -> X that meets that goal). This can be done on the character level (Bob wants goal X) or the meta-story level (story needs a dramatic pinch point at the 2/3 mark)
  • template based story patterns along the line of (hopefully more sensible) Mad Libs: (<ANTAGONIST> takes <VALUED ITEM/PERSON> from <PROTAGONIST> leading to recovery/rescue attempt).

The problem with all of these is that they all tend to result in very mechanical and formulaic story events that are obviously machine generated. It takes a lot of care and clever artistry to pick exactly the right attributes, symbols, rules and templates to work for each story. I don't think there isn't going to be a universal approach - every designer will need to handcraft their own based on what type of game and stories they want to tell.

But it's certainly achievable. I don't see any reason why you couldn't, for example, build a RTS or flight/space sim that builds the next mission from templates using the variables from the end state of the previous mission, building to a campaign arc shaped on the actions of the player. An RPG is slightly more complex in my mind, but could still be roughly equivalent.
also, I forgot to toss out one other thing that causes a serious problem with this system:
the more interactive, the more content creation overhead to tell the player what the npc's problem is. which means either, every possible action/goal is scripted in some way. or you have a way of creating the procedural voice/text content. text is potentially possible, and by extension, voice mechanism's as well, but more elaborate mission's means more elaborate explanations. so chaining together the info in a manner that conveys the procedurally generated quest could be an entire huge task in it's own.
Check out https://www.facebook.com/LiquidGames for some great games made by me on the Playstation Mobile market.

I hope it's not "your feelings of affection for some other character,"
[/quote] Goodness, no. I guess I could have been a bit more specific about what I am looking for in a game generator.

I am not looking to add randomized WORLDS, but rather alter the way the NPCs interact with the player based upon past interactions (Much like Fallout's response system), but in a way that simulates a "generated" plot line. My game has no need for dialogue, so super-intuitive AIs will not be necessary. Yes, I have considered the complexity of such a system, but I'm not rewriting GLaDOS here... My system only needs a few things: Should I attack? Should I assist? Should I run away? Should I follow? Base interactions. If the player saves a villager, and nearly kills himself/herself in the process, there should be some form of "sympathy" between the entities, and perhaps the villager would bring the player back to full health. Maybe you watch as the village chief's daughter is eaten by a vicious dragon, and the villagers resent you for not doing anything (and players are then less likely to receive any assistance from them). Perhaps you awaken a monster in a cave, and it runs away. Nothing happens initially, but then villagers start to go missing: Then the player would have to hunt down the monster, and once the monster is dead, all villages that had members go missing would consider the player a "hero," because they have no idea that the player released the monster in the first place! If you wait too long to find it, though, the villagers investigate and find evidence that the player released the foul creature.

The more I ramble, the more this sounds like predefined events...

"Only idiots quote themselves" - MisterFuzzy

This topic is closed to new replies.

Advertisement