Welcome to the new Writing Q&A site! This is the place for anybody interested in the craft of professional writing, editing, and publishing. We welcome questions about all types of writing: fiction, poetry, technical documentation, journalism, scriptwriting, non-fiction, essays, and more. Got questions? Click the "ask" button! Able to offer answers? Try the search button, click on any tag, or just browse. And please vote on content that stands out.
If you have an account on Writing Stack Exchange, you can claim your questions and answers with your account here.
We're currently running on temporary software while waiting for Codidact to be ready. The URL is on codidact.com now, and the software will be updated to match later. Regardless of the software, you can help us expand our library of questions and answers right now -- please join us.
Are there tools that can aid an author in writing a branching storyline?
I would like to know whether there are any tools that would help an author write a branching storyline. Usecases may for example be:
- campaigns for Pen and Paper games
- visual novels
- Choose Your Own Adventure-style books
The common thing is that there are people who will interact with your work by choosing certain paths, all of which you have to account for.
The problem with writing these things in Word is that you can very quickly lose track of where exactly you wrote what and which events predate the current state you are writing about. Overlooking paths you have already accounted for can happen quite fast. Putting new paths you haven't thought of before into the document is quite difficult. Making multiple files can lead to a lot of files and thereby it becomes difficult to keep track of everything again.
Of course often you have certain decisions that lead to branches and then merge the branches for key events again, but most the problems I mentioned are still there.
Is there software that would help me overcome these problems? Preferrably the software should be free.
While not a program I would suggest using a flowchart.
A flowchart is a type of diagram that represents an algorithm, workflow or process, showing the steps as boxes of various kinds, and their order by connecting them with arrows.
Since you mention visual novels in your question 2 good examples I know of are the flowcharts that you can find for the translations of the visual novels Tsukihime and Fate/Stay night.
While not the full image of Fate/Stay Night's you can track down the original .pdf file (it's included in Mirror Moon's translation of the original game and the Realta Nua PC Translation (the latter is what I'd recommend)).
You can see how the flowchart can not only track progress, but also allows you to play with choices and variable management during planning for branching storylines ie. in Fate Stay Night you see how it shows where it branches at the end of the 3rd day and that there is a check to see if you continue with the Fate Route (Blonde1) or Heaven's Feel Route (Purple).
As for a program you might want to try yEd. The link there takes you to the Software Recommendations SE Site where I asked for software for making Character Relationship Maps. In a way Character Relationship Maps are very similar to flowcharts and using yDe myself I can say that you could make a flowchart similar to Fate/Stay Night's in it.
1: I say Blonde because the route colours match to the heroines who Shirou becomes romantically involved with. Fate = Saber who has Blonde hair, Unlimited Blade Works = Rin who generally wears Red, Heaven's Feel = Sakura who has Purple Hair
I am using Ink by Inkle Studios. It's writer-oriented and open source. They have a free editor/compiler that exports an elegant web version, and they have a Unity plugin. The syntax feels more sophisticated than other tools I've tried. Ink has evolved over a few versions, and was used on the game 80 Days which is the best branching narrative game I've seen.
Rather than a flowchart or mindmap, Ink is more like coding in HTML – it uses markup syntax to handle the interactivity. Story sections are defined by index names, and typically end with several choices which redirect the reader to other index points in the text. At it's basic level, Ink is similar to the CYOA books except you don't "turn to page 23" you jump to an index point by name. This makes writing more intuitive for non-programmers.
Ink is also designed to exhaust the choices, so the next time the reader returns to a section the option he picked last time is removed. This works within the text as well, for instance changing the dialog or descriptions the second and third times through. The options can also be randomized, or only appear once conditional variables have been satisfied.
There are several tools you can use to create this: here's a few
- the amazing Ink (already mentioned), which also has a plugin for Unity
- Twine to write your branching stories and export to HTML, very visual overview
- Yarn Spinner, which includes a compiler to signal unreached branches and logical inconsistencies
- Chatmapper, specifically designed for dialogue
- Ren'Py, to create visual novels (uses python)
I want to add one more tool: Archivos. (No personal link, I just saw a demo from them and plan to check them out when I start writing more.)
First, ARCHIVOS helps Storytellers document the characters, places, and events of their stories, detailing the basic framework for the tale.
Then, Storytellers connect those story elements by defining the relationships between them that articulate not just the existence of the connection but also its nature (professional, personal, political, geographical, etc.).
The relationships in ARCHIVOS also support a hierarchy, like that of a parent to a child, or a manager to an employee. This framework will help identify and organize the structures within the story world.
As those structures become clear, Storytellers become true story architects, able to refine the and enhance the impact of their stories
This post of theirs about how to use it for LARPing seems to connect to a branching storyline -- some things are consistent, but choices lead to different EVENTS which can lead to other EVENTS, and you can map them out: