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.
Loss of loved ones / Falling prey to cruelty or misfortune. Alfie is slain by Alan. Evan sees the slaying of Alfie and causes misfortune to fall on Alfie.
Enmity of kin / Rivalry of kin. Poppie hates their kin Samuel and is preferred over their kin Samuel. Samuel is a rejected kin. There is an object of rivalry.
Slaying of kin unrecognized / Remorse. Rokas is the victim of Isobel. Lucy is an interrogator. Isobel is slayed, unrecognized, by their kin Rokas.
Complex situation generation (no relationships)
Similar to my work above, but without attempting to draw any relationships between the characters.
Loss of loved ones / Abduction. Jeanie is a kin spectator and an abducted. Matthew is a kin slain and their guardian. Lillie is an executioner and an abductor.
Remorse / Involuntary crimes of love. Joshua is an interrogator and a lover. Lacey is a victim and the beloved. Dexter is a culprit and the revealer of their crime.
Rivalry of kin / Disaster. Emily is a preferred kin and the vanquished power. Oscar is a rejected kin and the victorious enemy. There is an object of rivalry.
Simple situation generation
Nothing more than one of Polti's dramatic situations combined with random names. The most basic story-starter.
Vengeance taken for kin upon kin. Adam is a relative of both. Naomi is a Guilty kin. Addison is an Avenging kin.
An enemy loved. Nancy is a Lover. Jake is the Hater. Tobias is the Beloved Enemy.
Obtaining. Jack is an Adversary who is refusing. Jessica is a Solicitor.
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.
Involuntary crimes of love / Necessity of sacrificing loved ones / Obstacles to love / Crimes of love. Akram commits a crime because of their love for Sam and is a hero who is forced to sacrifice their beloved Sam and is lovers with Sam and commits a crime because of their love for Sam. Khadijah is the revealer of their crime. There is a necessity for the sacrifice, and an obstacle.
Madness / Remorse / Falling prey to cruelty or misfortune / Ambition. Martha is has gone insane and is the victim of Mohammed and is an ambitious person. Kara is an interrogator and causes misfortune to fall on Martha. Mohammed is the victim of Martha and is adversaries with Martha. There is something coveted.
Daring enterprise / Rivalry of kin / Obtaining / Self-sacrifice for an ideal. Ronny is a bold leader and is preferred over their kin Georgina and solicits their adversary Georgina and is a hero who is forced to sacrifice themselves for an ideal. Ruben is an adversary. Georgina is a rejected kin and refuses the solicitation of Ronny. There is an object of desire, an object of rivalry, an ideal, and something sacrificed.
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.