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.
Madness / Crime pursued by vengeance. Harry is has gone insane. Luke is the victim of Harry and is a criminal pursued by Harry.
Crime pursued by vengeance / Supplication. Kimberley is a criminal pursued by Sophia and persecutes Sophia. Finley is a power in authority whose decision is doubtful.
Rivalry of kin / Daring enterprise. James is preferred over their kin Ryan and is a bold leader. William is an adversary. Ryan is a rejected kin. There is an object of rivalry, and an object of desire.
Complex situation generation (no relationships)
Similar to my work above, but without attempting to draw any relationships between the characters.
Vengeance taken for kin upon kin / Loss of loved ones. Jake is a guilty kin and a kin spectator. Tabatha is a kin slain. Hayden is an avenging kin and an executioner. Rivka is a relative of both.
Disaster / Crime pursued by vengeance. Scarlet is the vanquished power and an avenger. Aiya is the victorious enemy and a criminal.
Falling prey to cruelty or misfortune / Slaying of kin unrecognized. Scarlet is an unfortunate and a slayer. David is the master. Jessica is the unrecognized victim.
Simple situation generation
Nothing more than one of Polti's dramatic situations combined with random names. The most basic story-starter.
Necessity of sacrificing loved ones. Seanna is a Beloved Victim. Oliver is a Hero. There is a Necessity for the Sacrifice.
Enmity of kin. Jan is a Hated kin. Liam is a Malevolent kin.
Murderous adultery. Zainab is another Adulterer. Sophia is an Adulterer. Alfie is the Betrayed Partner.
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.
Ambition / Enmity of kin / Murderous adultery / Supplication. Elise is an ambitious person and hates their kin Marlo and is adulterous with Riley. Marlo is adversaries with Elise and is the betrayed partner and persecutes Elise. Keanan is a power in authority whose decision is doubtful. There is something coveted.
Ambition / Deliverance / Conflict with a god / Recovery of a lost one. Eleanor is an ambitious person and is a mortal in conflict with the immortal Ella and seeks and finds the lost Iwo. Iwo rescues Eleanor. Ella is adversaries with Eleanor and threatens Eleanor. There is something coveted.
Recovery of a lost one / Self-sacrifice for an ideal / Rivalry of superior vs. inferior / Necessity of sacrificing loved ones. Charlotte seeks and finds the lost Hayden and is a hero who is forced to sacrifice themselves for an ideal and is a hero who is forced to sacrifice their beloved Hayden. Jamie a superior rival to Charlotte. There is an ideal, something sacrificed, an object of rivalry, and a necessity for the sacrifice.
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.