Project: Histrionic

Member for

4 years 5 months
Submitted by SuperSayu on Mon, 06/08/2015 - 17:41

Right off the bat I will go ahead and say that I am going to need help with this, not even in implementation, but just wrapping my head around the problem I've set for myself: Project Histronic aims to be a language by which you can automatically generate stories.

By language here I mean something akin to a programming language heavily mixed with actual story writing and improv. Consider the following improv exercise:

A smart girl and her friend walk into a library and find a magic book. They have a short discussion, then either one of them opens the book, or neither of them does. If they open the book, either the one who opens the book gets magic powers, or they both get teleported to a magic world.

This writing prompt almost writes itself; literally, a the simplest response to the prompt is nearly a retyping of the prompt itself: "A bright young girl walks into the library with her friend. 'Oh,' she says, 'a magic book!' 'Open it,' her friend replies. She does, and they are both teleported to a magic world." You could write variants for each of the explicitly called-for endings; "'No', she replies, 'that seems like a bad idea.' So, the two put the book back and move on," for example.

If you phrase the prompt more like stage directions, you may see parallels to computer programming:
[girl and friend enter library]
[girl and friend find book]
[if girl and friend choose not to open the book, they leave and the story ends]
[if the book teleports them to a magic world, then they are sent there and the story ends]
[if the girl opens book, she becomes a wizard and the story ends]
[if the friend opens the book instead, they become a wizard and the story ends]

That's a lot longer! The advantage, however, is that it is broken up into discrete chunks which can then be considered even smaller writing prompts. If you continue to whittle down the assignment into finer and finer chunks, you get to the point where you can answer a writing prompt with facts:
Entering the library: Narrate the entry of the girl and her friend. Optionally describe the library. Optionally describe the girl and/or her friend. Optionally have the girl and/or her friend do something.
Narrate the entry: Optionally name the characters. Optionally name the library. [Characters] [walking-verb] into [optional adjective list] [library].
Describe the library: Pick zero or more of the following objects and describe their features, in any order: the books, the bookcases, the library staff, the front desk, the doors, the carpet, the ceiling, the walls
Describe the girl: Pick zero or more of the following aspects of the girl and describe them, in any order: her hair, her eyes, her clothes, her actions, her age, the reason she is here
Describe the friend: [etc]

Suddenly, we get into the realm of computer-generated writing. Let's assume that each time this assignment is answered, the properties of the girl, her friend, the library and its contents, and the book are randomly (or semi-randomly) generated. Let's further say that it's random which attributes are called out, completely automating the task of describing the character. Already, following those directions leads you to having seeds for a dozen stories:
Jess and Dana run into the dusty library. The books are brown and rotting. Jess's hair is red and her eyes are green. Dana is short and fat. Jess and Dana laugh.
Jennifer and Jacob walk into the ancient library. The shelves are dusty and made of granite. Jennifer is wearing a white dress and is happy. Jacob has blue eyes. Jacob looks at Jennifer longingly.
Rachel and Timothy sneak into the shining library. The desk is golden, and the shelves are made of silver. Timothy is angry.

But can you really create whole stories with such a methodology?

For my part, the end goal of Project Histronic is to be able to write random scenes for computer games, adjusting or creating objects, scenes, and attributes as a result. The ideal first test for such a system would be to create something like Progress Quest but with actual writing instead of arbitrary adjective-noun soup; your character would go somewhere, and then (in the words of Jack Sparrow), "Complications arise... ensue... and are overcome." As the story progresses, existing objects and characters with histories and already-written descriptions pop up instead of creating new ones.

In particular, this would be a way to make procedurally generated games with depth, character, and replayability.

The only question is how... and there's still a lot of work to be done. That's it for now...