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.
Discovery of the dishonour of a loved one / Revolt. James discovers the guilt of their beloved William and conspires against the tyrant William. William is a tyrant.
Madness / Self-sacrifice for an ideal. Elsie is has gone insane and is a hero who is forced to sacrifice themselves for an ideal. Wen is the victim of Elsie. There is an ideal, and something sacrificed.
Disaster / Pursuit. Archie was in power but was vanquished by their enemy Freddie. Freddie is a fugitive being chased by Archie.
Complex situation generation (no relationships)
Similar to my work above, but without attempting to draw any relationships between the characters.
Conflict with a god / Deliverance. Jack is a mortal and a rescuer. Joshua is an unfortunate. Emma is an immortal and a threatener.
Madness / Vengeance taken for kin upon kin. Ewan is has gone insane and a guilty kin. Isaac is the victim and an avenging kin. Rex is a relative of both.
Rivalry of kin / All sacrificed for passion. Cameron is a preferred kin and a lover. Kyle is a rejected kin. There is an object of rivalry. There is an object of fatal passion. There is something sacrificed.
Simple situation generation
Nothing more than one of Polti's dramatic situations combined with random names. The most basic story-starter.
Slaying of kin unrecognized. Emmanuela is a Slayer. Maisy is the Unrecognized Victim.
Remorse. Zainab is a Culprit. Layla-Mae is an Interrogator. Nathaniel is a Victim.
Discovery of the dishonour of a loved one. Emma is the Discoverer. Callum is the Guilty One.
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.
Self-sacrifice for kin / Ambition / Disaster / Loss of loved ones. Savannah is a hero who sacrifices themselves for their kin Jessica and is an ambitious person and was in power but was vanquished by their enemy Amelia and is slain by Amelia. Jessica sees the slaying of Savannah. Amelia is adversaries with Savannah. There is something coveted.
Conflict with a god / Falling prey to cruelty or misfortune / Murderous adultery / Recovery of a lost one. Tom is a mortal in conflict with the immortal Charlie and is adulterous with Eleanor and seeks and finds the lost Eleanor. Eleanor causes misfortune to fall on Tom. Charlie is the betrayed partner.
Involuntary crimes of love / Madness / Rivalry of superior vs. inferior / The enigma. Callum commits a crime because of their love for Isla and is has gone insane and interrogates the mysterious Kaden. Kaden is the revealer of their crime and is the victim of Callum and a superior rival to Callum. There is an object of rivalry.
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.