2016 icon indicating copy to clipboard operation
2016 copied to clipboard

The Track Method

Open tra38 opened this issue 7 years ago • 8 comments

The Story Compiler approach defined by Chris Pressey is interesting, particularly for its unique method of story generation...You start with a "null story"...

[IntroduceCharacters, *, CharactersConvalesce]

And you then insert a subplot in this null plot within the asterisk (Topic_1):

[IntroduceCharacters, *, Topic_1_Start, *, Topic_1_End, * CharactersConvalesce]

And you can recursively add in another subplot (Topic_2)...

[IntroduceCharacters, *, Topic_1_Start, Topic_2_Start, *, Topic_1_End, Topic_2_End, *, CharactersConvalesce]

And then keep adding more and more sub-plots to artificially lengthen the story:

[IntroduceCharacters, *, Topic_1_Start, Topic_2_Start, Topic_3_Start, Topic_4_Start, *, Topic_1_End, Topic_2_End, Topic_3_End, Topic_4_End, *, CharactersConvalesce]

But see, that requires code. And writing code is a problem in programming because of the dreaded word - maintenance.

Every line of code written comes at a price: maintenance. To avoid paying for a lot of code, we build reusable software. The problem with code re-use is that it gets in the way of changing your mind later on. ... If we see ‘lines of code’ as ‘lines spent’, then when we delete lines of code, we are lowering the cost of maintenance. Instead of building re-usable software, we should try to build disposable software.---Write code that is easy to delete, not easy to extend.

So what if we just skip the Compiler stage? Hardcode the final generated story outline within the computer code itself... providing structure for the plots that the computer will arrange in a pleasing manner. Here's a hardcoded version of the outline:

  • Introduce Characters
  • Topic 1 Section
  • Topic 2 Section
  • Topic 3 Section
  • Topic 4 Section
  • Topic 1 Section
  • Topic 2 Section
  • ...
  • Topic 3 Section
  • Topic 4 Section
  • Characters Convalesce

We have all the benefits of organization through using a story compiler, without ever having to write out a story compiler.

We can go even further in eliminating code. The Story Compiler approach had continuity within the subplots...first, you have to talk about the McGuffin, then you have to lose the McGuffin, then you have to find it again. But maybe we can drop the need for continuity entirely in favor of each section of a subplot dealing with the same "topic". Each section of the subplot illustrating a specific aspect of the topic, and once we finish addressing that section, we can move onto addressing a new aspect of the topic. So, we could have a topic about a McGuffin...with three sections: the character loses the McGuffin, the character finds the McGuffin (or builds a new one), and the character talking about what the McGuffin does and why it is important. And the order of those sections are utterly irrelevant during the text generation process.

My goal during this month is to actually test out this approach by using a pre-generated corpus. The corpus itself will not be enough to generate a human-readable novel (I don't have enough words for that and don't necessarily want to go through the effort of finding 50,000 words). However, it is human-readable for over 5000 words, I am willing to declare it a decent success.


As a side-note: this approach was not my idea. I actually showed the Story Compiler approach to a literary publisher, and after a few days of discussion, he came up with this new approach - which I believe he called the "Track Method". Consider a runner who runs around a track. He reaches the first checkpoint - Topic 1. Then he runs and see the next checkpoint - Topic 2. He keeps running, encountering Topic 3. Finally, he makes it to the finishing line - Topic 4...and then he keeps running, back to Topic 1.

The runner can keep running forever and ever, but it's probably best to keep at 4 different topics with 4 circles around the track. And you can easily change the tone of the story by essentially changing the beginning and ending of the story (the IntroduceCharacters and CharactersConvalesce stages).

The Track Method can also be used to structure manual writing as well (making the Story Compiler probably the first story generation technique to inspire human writers), and the literary publisher mentioned to me the possibility of using the Track Method to help him write a speech.


EDIT: One important issue to note here though is that you do need to write transition phrases to explain why the author is moving away from one topic and is talking about a different topic (or, to continue with the running metaphor, what happens when the runner leaves the Topic 1 checkpoint and reaches the Topic 2 checkpoint)

These transition phrases can be very generic and interchangeable though (so you could write 16 different "stock" transition phrases).

tra38 avatar Oct 25 '16 03:10 tra38

Sounds interesting. I'm interested to see how it turns out. Even though it won't be 50,00 words, just having a few thousand interesting and readable text will be success in a way. A lot of novels I've seen get boring after only a little bit.

superMDguy avatar Oct 31 '16 17:10 superMDguy

Repo and Story With Placeholder Text (10,453 words). I'm going to have to slowly replace the placeholder text with text to "glue" the different passages together...as well as add an actual introduction and conclusion to the whole thing.

I'm also going to edit the corpus directly, to try to make some of the passages more like self-contained adventures.

When I finish writing the "glue" and the introduction/conclusion, the same story will be repeated 5 times, to get the necessary word count.

tra38 avatar Nov 05 '16 01:11 tra38

Consider this done, I guess. There's three obvious conclusions I can draw from this proposal:

  1. It works. A human really can read all of my computer-generated short story, and even if some of the filler text is dull, at least it's a unique form of dullness, a "human" dullness instead of "computer" dullness. Basically, the novel is interesting and readable. So I count this as a success.
  2. It doesn't scale. I have to spend a lot of time finding the corpus, curating and editing it so that it makes a modicum of sense, then thinking about the glue phrases that are needed to make it sensible. I have to spend a lot more time curating the text than I am in writing the code for the text. If people can find a reusable corpus, maybe this type of literature could be worthwhile.
  3. Still, the Track Method is a good way of mashing together different ideas and concepts, since it provides a framework that allows the mashing together of several different corpuses in a manner that makes it seem somewhat sensible. Then again, there's many other ways to mashing together different corpuses...consider If on a winter's night a library cardholder which uses a framework to justify pulling random passages. So the Track Method isn't necessarily uniquely positioned to mash together different concepts, but at least it is able to do so while still nominally being based on the "Story Compiler".

tra38 avatar Nov 08 '16 03:11 tra38

Maybe wikiquote can be leveraged?

On Mon, Nov 7, 2016 at 10:28 PM Tariq Ali [email protected] wrote:

  • Human-Readable Short Story https://github.com/tra38/track-method/blob/master/story.md, 13,606 words
  • 5 Different Short Stories, Combined Into One Novel https://github.com/tra38/track-method/blob/master/novel.md, 67,408 words

Consider this done, I guess. There's three obvious conclusions I can draw from this proposal:

  1. It works. A human really can read all of my computer-generated short story, and even if some of the filler text is dull, at least it's a unique form of dullness, a "human" dullness instead of "computer" dullness.
  2. It doesn't scale. I have to spend a lot of time finding the corpus, curating and editing it so that it makes a modicum of sense, then thinking about the glue phrases that are needed to make it sensible. I have to spend a lot more time curating the text than I am in writing the code for the text. If people can find a reusable corpus, maybe this type of literature could be worthwhile.
  3. Still, the Track Method is a good way of mashing together different ideas and concepts, since it provides a framework that allows the mashing together of several different corpuses in a manner that makes it seem somewhat sensible.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/NaNoGenMo/2016/issues/15#issuecomment-259035774, or mute the thread https://github.com/notifications/unsubscribe-auth/AAd6GU9PXlMwT_IDS29J9HJN0YJHSsVpks5q7-xsgaJpZM4Kfg4H .

enkiv2 avatar Nov 08 '16 12:11 enkiv2

I didn't even think of that. Wikiquotes probably could be leveraged, depending on how well you can either:

  • sort the quotes into proper categories, or
  • come up with some "frame story" to justify the insertion of random quotes.

tra38 avatar Nov 09 '16 00:11 tra38

Wikiquote has pages that are quotes about particular subjects by various people, as well as pages that are quotes from particular people about various subjects.

On Tue, Nov 8, 2016 at 7:24 PM Tariq Ali [email protected] wrote:

I didn't even think of that. Wikiquotes probably could be leveraged, depending on how well you can either:

  • sort the quotes into proper categories, or
  • come up with some "frame story" to justify the insertion of random quotes.

— You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/NaNoGenMo/2016/issues/15#issuecomment-259302328, or mute the thread https://github.com/notifications/unsubscribe-auth/AAd6GX3uX1cTJR2FoJ0gBBMCzr5JPE3jks5q8RLJgaJpZM4Kfg4H .

enkiv2 avatar Nov 09 '16 11:11 enkiv2

I gave the computer-generated novella to a human editor for review, and while the text appears readable...and he did read it, the text itself appeared too "heavy" and "hard to read", due to the old language (half the corpus came from a book published in the 1890s, and the other half came from 1930s sci-fi stories). The novella's themes and ideas were very interesting...but the generated text was just too ancient.

This is a different problem from most computer-generated works, where the works are just repetitive. Since one can critique the computer's writing in the same way that one can critique a human author's writing, I technically have succeed at my goal (human-readability). Still, this does indicate that I need to select my corpus carefully (should aim to copy and paste more recent works, instead of works from Gutenberg).

tra38 avatar Nov 14 '16 23:11 tra38

Alright, so after a year of forgetting what was actually in the novella and rediscovering this thread where people praised it, I actually decided to read the computer-generated novella in full and found it actually pretty good and exciting.

So I think there's really is something of value in "paragraph typology". The problem is in "corpus collection", but "corpus arrangement" is a much easier problem to deal with. If we can scale up "corpus collection", I think we'll be golden.

tra38 avatar Dec 16 '17 13:12 tra38