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.
Pursuit / Daring enterprise. Corben is a bold leader. Lucas is an adversary. Lily is a fugitive being chased by Corben. There is an object of desire.
Self-sacrifice for kin / Remorse. Zac is a hero who sacrifices themselves for their kin Charlie and is the victim of Milly. Charlie is an interrogator.
Crime pursued by vengeance / Rivalry of kin. Myles is preferred over their kin Jack. Jack is a criminal pursued by Myles and is a rejected kin. There is an object of rivalry.
Complex situation generation (no relationships)
Similar to my work above, but without attempting to draw any relationships between the characters.
Erroneous judgement / Recovery of a lost one. Casey is the author of the mistake and a seeker. Darcie is a mistaken one and the one found. Isabella is a victim of the mistake. Harry is the guilty one.
Daring enterprise / Supplication. Rosie is an adversary and a supplicant. Kaelan is a bold leader. Nathan is a presecutor. Sumayyah is a power in authority whose decision is doubtful. There is an object of desire.
Abduction / Remorse. Gracie is an abducted and an interrogator. Eliza is their guardian and a victim. Isabel is an abductor and a culprit.
Simple situation generation
Nothing more than one of Polti's dramatic situations combined with random names. The most basic story-starter.
Remorse. Aaron is a Culprit. Hafsa is an Interrogator. Lucas is a Victim.
Obstacles to love. Oliver is a Lover. Archie is another Lover. There is an Obstacle.
Enmity of kin. Zahara is a Hated kin. Eliana is a Malevolent kin.
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.
Loss of loved ones / Daring enterprise / Rivalry of superior vs. inferior / Conflict with a god. Roary is slain by Tommy and is a bold leader and is a mortal in conflict with the immortal Tommy. Rayanna sees the slaying of Roary and is an adversary. Tommy a superior rival to Roary. There is an object of desire, and an object of rivalry.
Abduction / Self-sacrifice for kin / Abduction / Remorse. Chloe is abducted by Joseph and is a hero who sacrifices themselves for their kin Savannah and is abducted by Joseph and is the victim of Joseph. Savannah is the guardian of Chloe and is the guardian of Chloe and is an interrogator.
Rivalry of superior vs. inferior / Fatal imprudence / Falling prey to cruelty or misfortune / Abduction. Aleena is the victim of the imprudent Kaylee and is abducted by Kaylee. Rayan causes misfortune to fall on Aleena and is the guardian of Aleena. Kaylee a superior rival to Aleena and is the imprudent. 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.