Writing Branching Narratives: Teller Script
Cultivate: Before Time is a branching mystery game, which means the wonderful Gwen is writing stories with different branches giving different avenues to explore. To make this easier for her, I made a tool called Teller Script in Unity. It’s a node based system that lets Gwen design the flow of the game in a visual manner without needing to learn a scripting language.
The general idea is to add your nodes, link them together by dragging a path between them, and fill in the details! Then slot them into a scene in Unity to play the script.
Some of the nodes are specific to Cultivate, but there’s a core system that is hopefully useful to anyone wanting to create stories in Unity. I’m planning to release it on the Unity Asset Store once we’ve thoroughly tested it.
Here are a few examples of the nodes I’ve made:
Teleport Character node
Teleport a character to a specific place in the game!
Write a conversation between various characters. This lets you add what each character says, and add things like animations and sound effects at each part of the conversation. You can also add an alternative to each line that will run if the speaker is interrupted by the player (e.g. if the player looks at something while the conversation is happening, the player could say something about what they’re looking at, then TellerScript returns you to the original conversation using the alternative line that might start with, “So, as I was saying…”)
This shows up to 3 branching options - add text in left, centre and/or right thought bubbles.
Depending on which bubble the player clicks, different branches will play next.
Play Animation node
Select a character, select that character’s animation, and whether or not that animation should loop.
Play Audio node
Does what it says on the tin: pick a sound effect or music, and this node will play it!
There are a lot more nodes - this is just a quick intro into our new tool. I’ve also added the ability to easily create new nodes if you’re a coder.
More on Teller Script soon - both from my coding perspective and Gwen’s writing perspective!