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.
An enemy loved / Recovery of a lost one. Sabrina is lovers with their enemy Miley and seeks and finds the lost Miley. Amelia hates Sabrina.
Slaying of kin unrecognized / Rivalry of kin. Julia is preferred over their kin Saif. Saif is slayed, unrecognized, by their kin Julia and is a rejected kin. There is an object of rivalry.
Abduction / Discovery of the dishonour of a loved one. Harriet is abducted by Asia and discovers the guilt of their beloved Asia. Callum is the guardian of Harriet.
Complex situation generation (no relationships)
Similar to my work above, but without attempting to draw any relationships between the characters.
Deliverance / Rivalry of superior vs. inferior. Riley is a rescuer and a superior rival. Madison is an unfortunate. Ben is a threatener and an inferior rival. There is an object of rivalry.
Rivalry of superior vs. inferior / Involuntary crimes of love. Cole is a superior rival and a lover. Jade is the beloved. Daniel is an inferior rival and the revealer of their crime. There is an object of rivalry.
Abduction / Madness. Brodie is an abducted and has gone insane. Ezra is their guardian. Amiira is an abductor and the victim.
Simple situation generation
Nothing more than one of Polti's dramatic situations combined with random names. The most basic story-starter.
Revolt. Molly is a Conspirator. Tania is a Tyrant.
Daring enterprise. Harry is an Adversary. Olive is a Bold Leader. There is an object of desire.
Loss of loved ones. Aarav is a kin Spectator. Daniel is an Executioner. Jack is a kin Slain.
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.
Disaster / Conflict with a god / Involuntary crimes of love / Obtaining. Ella was in power but was vanquished by their enemy George and is a mortal in conflict with the immortal George and commits a crime because of their love for Oliver and solicits their adversary George. George is the revealer of their crime and refuses the solicitation of Ella.
Ambition / Pursuit / Remorse / Adultery. Alun is an ambitious person and is the victim of Maya and is adulterous with Leanna. Leanna is an interrogator. Maya is adversaries with Alun and is a fugitive being chased by Alun and has been cheated on by their spouse Alun. There is something coveted.
Daring enterprise / Remorse / The enigma / Crime pursued by vengeance. Jacob is a bold leader and is the victim of Milly and interrogates the mysterious Milly. Lydia is an adversary and is an interrogator. Milly is a criminal pursued by Jacob. There is an object of desire.
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.