Skip to content

Navigation and Plot Management

M. H. Golkar edited this page Oct 9, 2022 · 3 revisions

Plot Management, the process of dividing your story/play to smaller scenes and/or sub-plots, depends highly on your storytelling style and narrative preferences, as well as technical matters such as runtime IO.

Navigation is another concept you may care about. It's the way you pass your players (the audience) through different plots and sub-plots, so they can interactively experience your game/story.

In addition to following, you can use author and chapter features to organize your projects to multiple documents.

Scenes and Jumps

Arrow offers many handy tools for Navigation and Plot Management. Scenes and the graph-node system is the basic ones.

Each scene can include one or many plots and/or sub-plots, consisted of nodes linked to one another.

You can link nodes by graph connections or by Jump nodes.

Jump nodes can navigate players to any (destination) node, either in the same scene or any other one. They do not have any outgoing connection; instead, they accept another node's name as their target parameter, and when played (in console or runtime), continue the plot from another point by playing that target node.

When there is no target node, play finishes right at the point (i.e. EOL: End-of-line).

You can rename target nodes without any problem, jump nodes use internal UIDs to track their targets and adapt themselves automatically to the new names.

Generally, we recommend to keep scenes independent and small as possible. You may also have a main scene, serving as an overall map or an interactive table of contents. This is a good practice and makes development of huge projects easier.

Branching & Refolding

Branching and Refolding are the core elements you need, to create a truly interactive experience.

By branching a plot-line, you give your audience different paths to explore, where a decision can change the story or the ending.

Arrow's main branching tools are Interaction, Dialog and Randomizer nodes.

Interaction and Dialog nodes accept one incoming connection (or are jumped into) and let user choose from a set of options. Each of these options can navigate user to another node, so another possible plot-line.

Randomizers do exactly what they are supposed to do. They get one incoming connection and send player to a randomly selected outgoing connection.

Arrow provides more ways to introduce interactivity to your narrative via custom logic as well; i.e. no-code programming, or combining variable-manipulator nodes with conditionals.

To learn more, check out documentation on Variables and Logic.

Refolding or merging is the opposite of branching. It's when you navigate players, so they end up in a deterministic focal node. Technical purpose of refolding is to limit or manage complexity of sub-plots by reducing possibilities. In other words when you want some of independently growing sequences of story events, begun by different decisions, to merge in a special event, so you can continue the rest of story with manageable number of branches.

Both Hub and Jump nodes are useful to refold your plots. Hubs do merge via graph links on the same scene, and Jumps are good when you want to merge branches in different scenes.

Clone this wiki locally