Skip to content

Twine Overview

Matt Javaly edited this page Feb 9, 2017 · 7 revisions

Twine is an open-source online tool for creating interactive event-based stories. Within the context of Prairie, Twine stories allow you to plan and visualize the story that you would like to tell separate from the Unity framework. This means that you can allow your imagination to run wild as you design and create your story, and then use Prairie and Unity to bring your imagined story into being.

On the Twine Wiki, you can find many tutorials and a lot of great documentation, but below we've provided a quick overview on how to use Twine.

Twine Story Structure

Twine consists of multiple nodes that represent the different events that can occur in your story, connected by a series of arrows that dictate where the story will go when certain decisions are made. In the sample story below, we see a set of nodes with titles that describe the locations in which the events take place, or the events themselves ("The Bedroom" takes place in the bedroom, and "Go to Comps Meeting" means that this node is when you go to your comps meeting).

It is worth noting that the names of the nodes are the options that appear in the parent node. For example, when you are in the bedroom, you have the options to either "Get Out of Bed" or "Go Back to Sleep". These are descriptive options that give you the options of what you might want to do, and are the titles of the child nodes so that the parent node directs to the proper child node when an option is clicked.

A Sample Twine Story

Twine Nodes

Each node consists of three parts: The title, the body, and the node's children.

The title, as mentioned above, is some kind of tag or description of the event that allows you to distinguish one node from another. Within Prairie, the titles serve a similar purpose of distinguishing one event from the other. However, the nodes are no longer connected through the title. Instead, each TwineNode holds a list of its children that are also distinguished by the title. If the TwineNode names were changed, the list would still contain the original nodes (but with the new names).

The body of the twine node is a good place to put down what the node is supposed to represent and what is supposed to happen during that event. If using Twine by itself, then this is where you would put the story that you are trying to tell the player of your story. In Prairie, however, this text does not store any purpose besides being a place that you can put notes to remind yourself how the story is supposed to go.

The node's children are shown in the sample node before inside of the brackets. The double brackets around the children name is Twine's notation for the children, so that Twine properly connects the parent nodes to the child nodes. These children represent the actions that can be taken based on the events that occur in the current node. For instance, when you eat a bad casserole, you have the option to either go to your comps meeting or go to the bathroom. Based off of these two options, other actions can happen, propagating one after another, based on the decisions made.

A Sample Node

Twine + Prairie = ❤

When Twine is used by itself, The information and formatting of the body of the Twine nodes drive the story forward.

After importing a twine story into Prairie, the Twine nodes are invisible, yet play a much more influential role within the story. For more information on Twine nodes in Prairie, please visit Twine Nodes.