Generating quests with both algorithms and people power.
Hello I am a computer engineer student with a hobby for concept art and a big hobby for reading about games. Here I have written some ramblings, If it makes no sense then I must say sorry for wasting your time. I just needed to write it down, and sorry for all the grammatical errors in the text I got some problems with writing.
I have long been fascinated by the stories that arise in games with computer generated procedural content. And have been thinking about ways to generate stories in games, after hearing a podcast interview of one of the two developers of dwarf fortress (Tarn Adams). He talked about how he had problems writing contextual text for the AI in the adventurer mode of dwarf fortress. He also talked about how you could generate stories in games through simulation, and how that would lead to a more consistent story. But the problem was that contextual text for AI characters is extremely hard to generate.
What if you could make a story for the generated game world that made sense?
I have read many dwarf fortress logs, stories written with the gameplay and simulations of dwarf fortress as a base for the story. I find this a extremely interesting way of making stories. So why not do it backwards, why not create a story first and then if the game world fits that story then you could put that story in the game.
My personal idea about how to deal with problems like this is to make “text triggers”. Imagine a program that goes through a automatically generated world that consists of some buildings and some small objects. Now the program takes a pre written story written that goes like this:
“In a unread love letter in the trash there is information about how a treasure chest is buried next to a tree, that is placed between two houses. In the treasure chest there is a lengthy love letter about one robot gentleman love, and it tells you about how that robot will give his beloved a gift (a part of the machine to win the game maybe?), the letter also say where and when the robot will be if his beloved is interested (behind a named house at the time 22:00)”
The program then looks for a trash can in the game, a tree between two houses and a robot gentleman. If it finds that, then it will place a letter in that trash can, put a treasure chest next to the tree between the two houses, put that gift item in the inventory of a robot and finally make the robot walk to that special spot behind the named house at the given time.
The weakness of such storytelling is of course that you need a lot of it, as it is not guaranteed that all the criteria of the quest will be met, there might not be a tree between two houses (story might be modified so that there is several places that might be looked for if the first alternative is not found).
My personal opinion is that the way to solve that problem is to provide a easy to use program to make the stories in, think of it as a quest maker program that uses the simulation in a game to make stories. The program could be simple at first, only letting players place items on the map (books with self written stories that works as treasure maps) and treasure chests with items in them, the items would be place randomly inside a given radius of given objects, (behind a house, next to a tree, on top of a tree, etc).
So essentially what I am talking about is that after the world is generated, then there could be a “post generating” where the game goes through a online database of approved player made stories, and see if any of the stories involves objects that is in the currently generated world. And if the stories fit into the world then the game inserts those stories into the game.
And here is a random picture I have made that have nothing to do with the discussion, but might be pretty so It may not make you so mad for having wasted your time.
Interesting ideas. You would probably need a catalog of possible items and places to allow people to mark up their stories. This would allow the story engine to uniquely identify these 'objects' and work with them.