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.
Recovery of a lost one / Disaster. Kaci seeks and finds the lost Eshaal and was in power but was vanquished by their enemy Paige.
Involuntary crimes of love / Rivalry of superior vs. inferior. Ester commits a crime because of their love for Thomas. Emily is the revealer of their crime and a superior rival to Ester. There is an object of rivalry.
Loss of loved ones / Self-sacrifice for kin. Ebony is slain by Jorja and is a hero who sacrifices themselves for their kin Isabelle. Isabelle sees the slaying of Ebony.
Complex situation generation (no relationships)
Similar to my work above, but without attempting to draw any relationships between the characters.
Daring enterprise / Rivalry of superior vs. inferior. Joseph is an adversary and a superior rival. Lewis is a bold leader. Harry is an inferior rival. There is an object of desire. There is an object of rivalry.
Crime pursued by vengeance / Self-sacrifice for kin. Oliver is an avenger and a hero. Oliver is a kin. Jack is a criminal.
Ambition / Disaster. Maryam is an ambitious person and the vanquished power. Olivia is an adversary and the victorious enemy. There is something coveted.
Simple situation generation
Nothing more than one of Polti's dramatic situations combined with random names. The most basic story-starter.
Obstacles to love. Sudenaz is a Lover. Isaac is another Lover. There is an Obstacle.
Rivalry of superior vs. inferior. Amy-Rose is an Inferior Rival. Chloe is a Superior Rival. There is an Object of Rivalry.
Murderous adultery. Daniela is another Adulterer. Lucy is an Adulterer. Summer 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.
Crimes of love / Enmity of kin / Disaster / Ambition. Fionn commits a crime because of their love for Madeleine and hates their kin Savannah and was in power but was vanquished by their enemy Savannah and is an ambitious person. Savannah is adversaries with Fionn. There is something coveted.
Abduction / Remorse / Fatal imprudence / Conflict with a god. Scarlett is abducted by Khadija and is the victim of Khadija and is the victim of the imprudent Khadija and is a mortal in conflict with the immortal Khadija. Lucas is the guardian of Scarlett and is an interrogator. Khadija is the imprudent.
Loss of loved ones / Pursuit / Slaying of kin unrecognized / Obstacles to love. Alexandre is slain by Betty and is lovers with Kayden. Kayden sees the slaying of Alexandre. Betty is a fugitive being chased by Alexandre and is slayed, unrecognized, by their kin Alexandre. There is an obstacle.
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.