This is a study in storytelling and morphology, eventually combining Georges Polti's "The Thirty-Six Dramatic Situations" with aspects of Joseph Campbell, David Adams Leeming, and Phil Cousineau's mythology patterns to create story frameworks. The ultimate goal is to study how their pattens could be used interactively to create procedurally-generated, player-driven stories. What you see right now are baby steps, but an important foundation for future work.
Character names are selected from a list provided by The Office for National Statistics, UK (England and Wales, 2009 database).
All stories are randomly generated on refresh.
Complex situation generation (with relationships)
This is where the bulk of my work is going: an attempt to draw more meaningful relationships between characters, based on a crude mix of two (or more) of Polti's dramatic situations. It's often a bit of a mess, but occasionally touches on a bit of brilliance.
I've culled a few of the situations that the algorithm can't quite handle yet. I'm putting them back in as the algorithm becomes more robust.
Obtaining / Supplication. Bonnie solicits their adversary Lucas. Lucas refuses the solicitation of Bonnie and persecutes Bonnie. Yasmeen is a power in authority whose decision is doubtful.
The enigma / Madness. Isabel interrogates the mysterious Edward and is has gone insane. Edward is the victim of Isabel.
Daring enterprise / Madness. Maisie is a bold leader and is has gone insane. Liam is an adversary. Elizabeth is the victim of Maisie. There is an object of desire.
Complex situation generation (no relationships)
Similar to my work above, but without attempting to draw any relationships between the characters.
Deliverance / Obstacles to love. Samuel is a rescuer and a lover. Jack is an unfortunate and another lover. Nana is a threatener. There is an obstacle.
Revolt / An enemy loved. Cameron is a conspirator and a lover. Iolo is the beloved enemy. Fearne is a tyrant and the hater.
Ambition / Madness. Oscar is an ambitious person and has gone insane. Libby is an adversary and the victim. There is something coveted.
Simple situation generation
Nothing more than one of Polti's dramatic situations combined with random names. The most basic story-starter.
All sacrificed for passion. Joshua is a Lover. There is an Object of fatal Passion. There is something sacrificed.
Rivalry of superior vs. inferior. Tyler is an Inferior Rival. Adam is a Superior Rival. There is an Object of Rivalry.
Madness. Oliver is the Victim. Eloise is has gone insane.
Overly-complex situation generation (with relationships)
The same algorithm as the top experiment, but mixing together four plots instead of two. The reason it doesn't really work is because it attempts to draw relationships wherever possible, resulting in entirely too many connections for too few characters. Many of the situations don't work when applied to the same characters, like a slain character still being able to discover something. Sometimes, however, it hits a nice balance by fluke. It's a curious example of the limitations of the current algorithm.
Recovery of a lost one / Madness / Conflict with a god / Falling prey to cruelty or misfortune. Ella seeks and finds the lost Freya and is has gone insane and is a mortal in conflict with the immortal Laila. Freya causes misfortune to fall on Ella. Laila is the victim of Ella.
Daring enterprise / Ambition / Discovery of the dishonour of a loved one / Self-sacrifice for an ideal. Billie-Jo is a bold leader and is an ambitious person and discovers the guilt of their beloved Muhammed and is a hero who is forced to sacrifice themselves for an ideal. Charlie is an adversary. Muhammed is adversaries with Billie-Jo. There is an object of desire, something coveted, an ideal, and something sacrificed.
Deliverance / Madness / Self-sacrifice for kin / Conflict with a god. Moiz is has gone insane and is a hero who sacrifices themselves for their kin Mohammed and is a mortal in conflict with the immortal Alfie. Mohammed rescues Moiz. Alfie threatens Moiz and is the victim of Moiz.
Pulls random names from UK census data, weighted for popular names. Also cross-references the male and female list to find gender-neutral options. It can currently retrieve around 8k unique names.