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 / Disaster. Caitlin solicits their adversary Harry and was in power but was vanquished by their enemy Harry. Harry refuses the solicitation of Caitlin.
Necessity of sacrificing loved ones / An enemy loved. Layton is a hero who is forced to sacrifice their beloved Ray and is lovers with their enemy Ray. Harriet hates Layton. There is a necessity for the sacrifice.
Recovery of a lost one / Adultery. Mohammed seeks and finds the lost Jack and is adulterous with Jack. Henley has been cheated on by their spouse Mohammed.
Complex situation generation (no relationships)
Similar to my work above, but without attempting to draw any relationships between the characters.
Slaying of kin unrecognized / Remorse. Faith is a slayer and an interrogator. Lily is a victim. Krystian is the unrecognized victim and a culprit.
Involuntary crimes of love / Abduction. Bobby is a lover and the abducted. Martin is the beloved and the guardian. Cohen is the revealer of their crime and an abductor.
Erroneous judgement / Abduction. Oliver is the author of the mistake and an abducted. Sofia is a mistaken one and their guardian. Samuel is a victim of the mistake and an abductor. Jack is the guilty one.
Simple situation generation
Nothing more than one of Polti's dramatic situations combined with random names. The most basic story-starter.
Rivalry of kin. Aaron is a Preferred kin. Niamh is a Rejected kin. There is an Object of Rivalry.
Discovery of the dishonour of a loved one. Sadie is the Discoverer. Thomas is the Guilty One.
Rivalry of kin. Riley is a Preferred kin. Abbie-Leigh is a Rejected kin. There is an Object of Rivalry.
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.
Adultery / Murderous adultery / Fatal imprudence / Crimes of love. Jack is adulterous with Jack and is adulterous with Jack and is the victim of the imprudent Trey and commits a crime because of their love for Jack. Trey has been cheated on by their spouse Jack and is the betrayed partner and is the imprudent.
Madness / Pursuit / Fatal imprudence / Crime pursued by vengeance. Morgan is has gone insane and is the victim of the imprudent Marnie. Marnie is the victim of Morgan and is a fugitive being chased by Morgan and is the imprudent and is a criminal pursued by Morgan.
Revolt / Murderous adultery / Disaster / Supplication. Amelie conspires against the tyrant Lily-Mae and is adulterous with Alanna and was in power but was vanquished by their enemy Lily-Mae. Lily-Mae is a tyrant and is the betrayed partner and persecutes Amelie. James is a power in authority whose decision is doubtful.
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.