As per last devlog, I started by answering some of Kate Compton’s questions for defining a generator’s ideal output, its properties and its constraints.
What am I trying to make?
I would like my generator to create an epistolary horror story – told through the medium of a developer commentary – about developing a 90s FPS.
By narrowing down the genre of my artifact, it became much easier to identify sources for inspiration and analysis. Below I’ve listed some examples:
- Epistolary horror
- Dracula (Bram Stoker)
- Frankenstein (Mary Shelley)
- House of Leaves (Mark Z. Danielewski)
- Graveyard Shift (Roger Matheson)
- Developer commentary
- Portal
- Amnesia: the Dark Descent
- Resident Evil 2 (long!)
- Paratopic (Robert Yang’s commentary rather than the actual developer’s, but useful for analysing horror design)
- Works about game/software development
- Microserfs and Generation X (Douglas Copeland)
- Halt and Catch Fire
- Silicon Valley
- The Social Network
What makes for a good example of this artifact?
Even without performing a deep analysis of each genre, I could come up with a number of factors that successful examples have in common:
- Epistolary horror
- Is scary
- A sense of foreboding
- Often concerns an offscreen terror, or something that cannot be easily expressed in language
- The speaker doesn’t know whether the message will be received or understood
- A character not comprehending what is happening
- Is full of questions
- Feels like a subjective experience
- Moments of respite vs mounting tension
- Initial perspective (what’s happened?) -> a shift in perspective (this has happened) -> the true perspective (oh no, that has happened)
- Mad science / the breaking of a natural boundary
- A logical conclusion, given the information available (rules for dying to / defeating evil must be logical)
- Populates imagination with a cast of unseen characters
- A revelation
- Language is the language of a correspondent/speaker
- “What possessed them?”
- Draws attention to details about a situation or environment
- Developer commentary
- Populates imagination with a cast of unseen characters
- Draws attention to (and recontextualises) details about a situation or environment
- Delivers an understanding of the team or team members aims; sense of whether they succeeded or not
- Reveals paths not taken
- Accounting for or explaining decisions
- Feels like a subjective experience
- “What possessed them?”
- Works about game development
- Mad science / the breaking of a natural boundary
- Populates imagination with a cast of unseen characters
- A revelation
- “What possessed them?” -> interested in innovators and mavericks; what drives people to create new things
What makes for a bad example of this?
- Epistolary horror
- Overly descriptive (literary language) or too direct in its description (no mystery)
- Not scary, not thrilling
- Exists in the realm of the known
- Predictable
- Structureless – no sense of build or direction
- Overly structured – no sense of surprise
- No consequence or cost to characters
- Developer commentary
- Uninformative – doesn’t provide design insights
- Too jokey
- Unclear
- Few observations – dead air
- Works about game development
- Overly technical
- Lacking in a human element / characters
How would a human build this thing?
It is helpful when making a generator to sit down with someone who makes the sort of artifacts you are building, and have them walk you through the process of making something. What questions do they ask themselves along the way? How do they make decisions? How do they describe the tradeoffs between choices? How do they describe the different problems that they have to keep in mind? How do they name all the parts of what they are working on, and all the relationships between them? (the academic term for this is an “ontology”)
Kate Compton, So you want to build a generator?
With the above questions as a framework, I approached my friend Stewart Pringle, currently Dramaturg at the National Theatre and also an expert in horror writing. His answers are too detailed to be published here in full, but here are some of the most useful provocations:
- ….horror is most closely aligned to comedy, and it’s really in that structural respect that it’s most true. Horror usually relies on a structure very like a joke, setup, assumption, shattering of that assumption, punchline – except whereas in a joke it’s the establishment and twisting of a convention into absurdity, in horror it is the twisting of a convention into uncomfortable or frightening territories…’
- Good questions:
- ‘What’s the worst thing that could happen in this situation?’
- ‘What’s this really about?’ – ‘horror isn’t an interesting end in and of itself, it’s a sublimated territory which your characters traverse, and what exactly it is that is being sublimated by it is the key question in the drama. What is The Wicker Man really about? Isolation, conventionality, the dangerous things in the wild parts of our nature. What is Suspiria about? Puberty, sexuality, suffering for art. You can do the same with all but the most pointless horror stories.’
- What constitutes ‘good horror’?
- Having something to say
- How much it raises the pulse
- How long its images linger
- How it encourages you to think about something differently (grief in Midsommar, racism in Get Out)
- Being in ‘good taste’, ie not having ‘unpleasant and stupid things to say’, or saying them unpleasantly (Hostel is an example of horror being in poor taste)
- ‘The big trade-off between choices that I always think about is sort of a question of how much you tell an audience vs how much you leave mysterious.’
- ‘You have to keep in mind the story’s relationship to reality, particularly if it’s quite a wild or heightened story, and that can be a challenge.’
- ‘In any kind of narrative fiction you sort of want to teach the audience how to ‘read’ what you’re creating, but in horror there’s a real power in teaching them incorrectly, or teaching them differently, and then creating an exciting shift.’
- ‘If dramaturgy is only ever a series of small surprises followed by a bigger one, in horror I sort of think of it as a series of set-pieces leading to an almighty fuckstorm at the climax. In Whistle and I’ll Come To You, it’s a series of dreams that eventually lead to a full-on malignant apparition. In The Weir it’s a series of unconnected stories that gradually paint the picture of a dangerously unprotected and haunted universe.’
Stewart also provided my with some more examples of epistolary horror that I can look into:
- Whisperer in the Dark, Call of Cthulhu and Herbert West: Re-Animator (Lovecraft)
- Carrie, Jerusalem’s Lot and Survivor Type (Stephen King)
- A Story of a Disappearance and an Appearance (M R James)
Conclusions and Actions for my ‘Artist in a Box’
From my research and correspondence with Stewart, I could define my epistolary horror generator as something that needed to:
- Have a cogent theme (either consistently across the entire game experience or limited to, say, a group of 5 stages)
- Write in set-pieces, which collectively progress to a ‘larger’ set-piece near the end
- Divide set-pieces into four ‘beats’: setup, assumption, shattering that assumption, punchline
- Generate memorable images

Obviously it’ll be a little more complex than the above diagram, but having three design goals on which to focus – theme, structure and imagery – feels helpful.
Since structure is going to play such an important part, I am sure I will be making use of storylets. Storylets (summarised in this blogpost by Emily Short) are pieces of content with prerequisites that govern when they are displayed, and which have an impact on whether other storylets are displayed after them. A simple example of this approach’s relevance to my project would be in ensuring that, in a given set-piece, a ‘setup’ piece of text is generated first, then followed by an ‘assumption’ piece of text, a ‘subversion’ then a ‘punchline.’
- Every time a storylet is displayed, it could tick up a ‘progression’ indicator.
- Setups are only displayed when progression = 0; assumptions at 1; subversions at 2; punchlines at 3.
- When progression is more than 3, it resets to 0, starting a new set-piece and beginning the process anew.
- Each reset might tick up a higher-level ‘tension’ indicator, which would unlock storylets more suited to the later set-pieces of a story.
I’m imagining these storylets to be structural ‘containers’ rather than bespoke pieces of writing, with [details] filled in by the theme-related imagery decided at the beginning of generation; they could even contain their own degrees of randomness, like the {A|B} functions of Perchance and Tracery.
The next steps are to begin coding the generator itself!