DEV Community

Livelore
Livelore

Posted on

Designing Branching Ghost Stories: Lessons From Building Interactive Horror

Interactive fiction and horror are a natural pair. Fear depends on anticipation, and nothing builds anticipation like knowing your own choice opened the door. But branching stories are also easy to get wrong: too many branches and the writing thins out, too few and the reader notices the illusion. These are the design patterns I keep coming back to when writing choice-driven ghost stories, whether in Twine, Ink, a chatbot, or plain hyperlinks.

Start with the ending you are afraid of

Most branching stories are written forward, from the first choice outward. For horror, it works better to start from the scares. Write the two or three endings you want readers to reach: the one where they escape, the one where they almost escape, and the one where the house wins. Then design the paths that lead there. Planning backward keeps the branches meaningful, because every choice moves the reader closer to or further from a specific fate.

Use the "bottleneck" structure

A fully branching tree doubles in size with every choice, which is impossible to write well. The common fix is a bottleneck (sometimes called "branch and bottleneck"): the story splits for a few scenes, then rejoins at a key event that every reader experiences, such as the lights going out or the knock at the door. After the bottleneck it splits again.

The trick for horror is to let earlier choices change how the bottleneck feels. If the reader picked up the flashlight, the blackout scene describes a narrow beam and something just outside it. If they did not, it is total darkness and sound. Same event, different dread.

Track state, not just position

Readers feel agency when the story remembers. Keep a few simple variables:

  • Fear — rises when the reader investigates noises, falls when they retreat.
  • Items — the key, the photograph, the candle.
  • Trust — how much a ghost or companion character believes the reader.

In Ink this is a couple of VAR lines; in Twine, (set:) macros. Then use them to change small details: a line of dialogue, a description, whether a door is locked. Small, consistent callbacks make a modest story feel much bigger than its word count.

Make the safe choice slightly wrong

In horror, the "sensible" option should not always be safe. If hiding in the closet always works, readers learn the rule and the tension disappears. Mix it up. Sometimes the cautious path is right; sometimes it delays the inevitable; occasionally it is the worst thing you could do. Unpredictability keeps every decision tense.

Write choices as actions, not labels

"Go left / Go right" is dull. "Follow the humming down the hall / Lock yourself in the nursery" gives the reader a feeling to choose between. Good choice text also hints at stakes without spoiling the outcome.

Pace with short passages

Horror needs rhythm. Long descriptive passages build atmosphere; very short ones create shocks. A single line on its own screen, such as The breathing stops., hits harder than the same line buried in a paragraph. Interactive formats let you control that rhythm precisely, because each click is a beat.

Borrow from folklore

Old ghost stories and urban legends are built for retelling, which makes them great frameworks for branches. The vanishing hitchhiker, the bloody mirror ritual, the lantern on the lake: each has a familiar shape that readers recognize, so you can spend your effort on the twist rather than explaining the setup.

Playtest for fear, not just bugs

When you test, watch where readers hesitate before choosing. Hesitation means the choice matters to them. If they click instantly every time, the options are probably too obvious or too low-stakes.

See it in practice

If you want examples of interactive horror done in short, replayable chunks, LiveLore hosts AI-driven interactive ghost stories where your choices steer the plot, alongside folklore write-ups and creepy fun facts. It is a useful reference for how short branching scenes and recurring characters can keep a story feeling alive.

Summary

Plan from the endings, use bottlenecks, track a little state, make safe choices uncertain, write vivid action choices, and pace with very short beats. Do that and even a twenty-passage story can make someone check behind them before bed.

Top comments (1)

Collapse
 
isaiahjr profile image
Isaiah Jr •

Bottlenecks are the right structure but the wrong place to put the scare. If every reader hits the same blackout, the blackout becomes furniture, and the reader who plays twice knows the shape of the story better than the story.

The version that worked better for me: rejoin the aftermath, not the event. Everyone comes out of the same night, but what they're standing in when it ends depends on what they were carrying. Same consequence, different room. You keep the writing budget and lose the "ah, this is the bit everyone gets" feeling.

And the "safe choice that is sometimes wrong" rule has an inverse that gets missed: the reckless choice should occasionally be right, for a reason the reader could have seen from the start. Otherwise the story punishes caution as a rule, and the experimental player learns to stop experimenting, which is the one thing a branching story can't afford.