Dynamic story generation

General discussion about LÖVE, Lua, game development, puns, and unicorns.
Post Reply
User avatar
Omnivore
Prole
Posts: 18
Joined: Fri Jun 28, 2013 12:51 am
Location: West Coast

Dynamic story generation

Post by Omnivore » Sat Jul 27, 2013 10:50 am

Time to once again revisit this old (to me) topic in a new forum. This attempt has been prompted by the viewtopic.php?f=3&t=39796 thread. Earlier today I blogged a copy of my old theory on the subject at http://darkstarstraveller.blogspot.com/ ... story.html, I'm posting here to see what others interested in the topic have to say, what tools they've discovered, any code libraries, articles, tips, etc.

The basic idea I had 17 years ago was that the idea of a dynamic story could be expressed as a node network after breaking down the idea of a story into its component parts. You could then make a dynamic story generator by applying some steering logic to find a path through the nodes where the path had some internal consistency - that is if Gruegash the Orc dies in node 8, he doesn't reappear in node 19 unless somewhere in between there is a story provided method for him to be restored to life.

The code to express such a node network isn't all that hard after you decide what parts make up a node and what mechanisms you wish to provide for connecting them. The hard part, indeed the one I found personally insurmountable to a full fledged system is creating an authorship tool that allows non-programming storytellers to create a dynamic story.

As well as the big, dynamic story, idea, I'm also very interested in solutions for smaller subsets of the overall problem: quest generators and the like.

Looking forward to hearing your thoughts,
Omnivore

PS: Some interesting resources on the general topic:
http://larc.unt.edu/techreports/LARC-2011-02.pdf - a 2011 analysis of 3000 quests from popular MMO's
Last edited by Omnivore on Sat Jul 27, 2013 5:34 pm, edited 2 times in total.
Lua lou aye, ah no its, lua louie

User avatar
raidho36
Party member
Posts: 1952
Joined: Mon Jun 17, 2013 12:00 pm

Re: Dynamic story generation

Post by raidho36 » Sat Jul 27, 2013 10:54 am

Dwarf Fortress has very extensive story generator embed to world generator. General rule is that it has nothing pre-defined. It just creates some basic set to start with and then just simulates what's going in, and it eventually forms a very deeply detailed story in a natural fashion. Of course there's about zero chance that it'll generate you some epic tale of utter bullshit kind of story, as seen in FF13 and such, it instead gives you more real-life like stories, with addition of things like forgotten beasts, necromancers and other nonexistent stuff, but as if it was real and a part of actual life.

User avatar
Plu
Inner party member
Posts: 722
Joined: Fri Mar 15, 2013 9:36 pm

Re: Dynamic story generation

Post by Plu » Sat Jul 27, 2013 2:17 pm

I think your blog is quite spot on for novels and books. However, I'm not sure that's really the path you want to walk when creating a dynamic story generation system for a game. After all; who is your algorithm to decide what the player finds interesting and what he considers a micro-plot?

One of the things that are great about games, is that they let you explore the paths you consider interesting. I think it might be worthwhile to let go of trying to set the importance of events beforehand, and instead to just start building the story from events, and filling it in in the direction the player enjoys going.

It's how I've always done table-top roleplaying, and perhaps there lies a great source of information for you as well. It's not mechanical algorithms, but games like dungeons&dragons and other storytelling games with a game master have provided a wealth on information on the subject of telling a story that's specifically tailored to the people playing the game.


The method I generally use to create these stories is to start by providing clues towards adventures, without actually filling them in. Then, as the players follow the clues, you fill in the area directly around them in great detail, but the further something is away from them, the less detail it has. As players travel, the area in front of them keeps getting more detail, while they get less detail about the parts they leave behind.

As such it both always feels as though the whole world is alive, and gives them incentives to go to places and see what they're like, while at the same time not putting too much a drain on the available resources (in this case; my own ability to remember all that stuff)

User avatar
Omnivore
Prole
Posts: 18
Joined: Fri Jun 28, 2013 12:51 am
Location: West Coast

Re: Dynamic story generation

Post by Omnivore » Sat Jul 27, 2013 4:26 pm

The Dwarf Fortress system seems interesting, especially the way it keeps and builds a historical record.

Now as to table top RPG, I have a fairly long history. In fact, many of my personal programming projects have been related in one way or another to the Traveller RPG system. In Traveller there are a number of published adventures along with many user authored ones in various publications and sites. Each of these adventures is far beyond what you normally get with a run of the mill quest generator, although some of the more sophisticated ones like Anarchy Online Classic's mission system begin to approach the simplest user authored adventures.

So no, I'm not out to create an entire major arc story dynamically, of far more current interest to me is the generation of dynamic sub-plots. These could be considered to be a sequence of linked quests in their simplest form. All computer games tell the player what is important. Including sandbox games. At least I've never seen or heard of a truly generic cross genre sandbox game.

The goal is not to force players down a particular road. The goal is to provide roads with many branches, relying upon dynamic generation of content to create more possibilities, not less!
Lua lou aye, ah no its, lua louie

User avatar
raidho36
Party member
Posts: 1952
Joined: Mon Jun 17, 2013 12:00 pm

Re: Dynamic story generation

Post by raidho36 » Sat Jul 27, 2013 4:37 pm

But that's still forcing player to a certain road, it's just there's more paths on the road that create slight illusion of variety. If you really want dynamic story, you should throw away any kind of static general story and let the generator do the whole thing.

User avatar
Omnivore
Prole
Posts: 18
Joined: Fri Jun 28, 2013 12:51 am
Location: West Coast

Re: Dynamic story generation

Post by Omnivore » Sat Jul 27, 2013 4:52 pm

raidho36 wrote:But that's still forcing player to a certain road, it's just there's more paths on the road that create slight illusion of variety. If you really want dynamic story, you should throw away any kind of static general story and let the generator do the whole thing.
Eh where did I say you couldn't go off road?

There's no forcing in it, just provision of additional *optional* content. Repeatable content that is substantially different each time, yet still generally interesting to fans of the genre. (whatever your target genre is)

Something in between randomly generated go shoot John or take X to Y 'quests' and full fledged authored story-lines.
Lua lou aye, ah no its, lua louie

User avatar
Plu
Inner party member
Posts: 722
Joined: Fri Mar 15, 2013 9:36 pm

Re: Dynamic story generation

Post by Plu » Sat Jul 27, 2013 6:29 pm

If you want it to generate dynamic sub-quests, I'd make a bunch of templates for them and then just fill in the missing variables. Stuff like "take item X from location A to location B". Then you string a few templates together, give the parts cool names, have a list of basic stories to go with them, and you can generate quite a bit of content fairly easily.

User avatar
ejmr
Party member
Posts: 302
Joined: Fri Jun 01, 2012 7:45 am
Location: South Carolina, U.S.A.
Contact:

Re: Dynamic story generation

Post by ejmr » Mon Jul 29, 2013 8:04 pm

Omnivore wrote:The hard part, indeed the one I found personally insurmountable to a full fledged system is creating an authorship tool that allows non-programming storytellers to create a dynamic story.
That is exactly the problem that stopped StoryTron in its tracks a couple of years ago, after over a decade of work:

http://www.storytron.com/WhatWentWrong.html
ejmr :: Programming and Game-Dev Blog, GitHub
南無妙法蓮華經

Post Reply

Who is online

Users browsing this forum: No registered users and 11 guests