(Click on "Refresh" in your browser to get a new story)
A little story...
Comments welcome at henrikslarsen@hotmail.com
Also, check out The Seventh Sanctum, which was one of the sites that got me started.
---------------
Anyone with a bit of knowledge about random generators will quickly notice, that this small story generator is extremely simple: All it really does is write the same story over and over again, only substituting people, places and events with others from a list. Peters boss is substituted for a family, the desert becomes a village, etc., and a 'new' story seems to appear. In some cases, the story has logical flaws (like destroying evidence to find treasure). I call this a Simple Liniar Substitution Generator.
I am currently working on an improved model, whenever I have an hour or two and the mental whereabouts to play with this thing. I have two construction concepts, which I am trying to implement in practice:
- The Meta-Layered Generator, or 'Complex Liniar Substitution Generator', is very much a step-by-step project. It works by essentially having a Simple Liniar SubGen, in which certain story bits affect a kind of 'greater picture'. For example, the little notes on the main characters personality could be inserted as a special influence on what the character actually does; a temperamental character would use force to do stuff, while a shy, but intelligent character would use brains. In all, though, the concept still produces a very liniar generator, with limited story complexity (i.e. the story structure does not change much). It just 'remembers' things that may later be important a lot better.
- The Associational Generator is a lot more complex, borrowing methods from basic artificial intelligence design (simple neural networks, for those who know the term). It first randomly selects pivotal components in the story, among them the main characters, and then makes random connections between them, based on relations that each component can have. Imagine everything in the story as being a highly detailed thing, which can have a lot of different relations to other things. The generator then randomly selects what relations will be included in the story. Two people could be related, or friends, or enemies. A house could be dangerous, hold treasure or clues, or be valuable to a character, etc. etc. The resulting web of relations is then sorted into a timeline of events, which form the story. It's a theoretically simple, but practically very difficult approach. I hope to have it grow somewhat naturally from the Meta-Layered Generator, but it will take some work.
In addition to these things, I am trying to create a good mental image of story structures, in the way of single scenes, plotline relations, foreshading and story focus (short and long term). The idea is to evolve the current generator into the creator of a central story, in which bits and pieces may have their own secondary generators. Imagine if the current generator could set up a rough picture of the story. It could then hand this to another generator, which would take individual events and create full scenes around them. The results would then go to a third generator, which would take the scenes and rewrite them in a way that has better language. Step-by-step it would go like this:
Main Generator: Persons A and B do not like each other. They use resources to attack each other.
Second Generator: In scene 42, Person A uses a gun to injure Person B in the arm, making Person B weaker in a counterattack.
Third Generator: Alfred whipped out the gun, firing off three shots while ducking behind a broken table. One shot ripped through Ben's shoulder, causing pain to burn through his entire arm.
This all sounds smarter than it is. I still have no practical idea how to get through the many problems of creating even a good main generator. It takes time, but I guess I'll just take that time, then :-)
Henrik.