Branching scenario example + overview of Twine

Branching scenarios can be a pain to design. Happily, a simple tool called Twine makes it easier. Check out this scenario that demonstrates Twine’s basic features and makes a point about teaching through stories. Read more

Branching scenario example + overview of Twine

By Cathy Moore

Branching scenarios can be a pain to design. Happily, you can use a simple tool called Twine to easily draft the scenario and produce it. In this post we’ll look at an example branching scenario that I wrote to demonstrate Twine’s basic features and to make a point about scenario-based training.

Screenshot of Zeko activityIn the scenario, you’re a journalist in a hurry to get to a hot story in Zekostan, and your “guide” can’t speak English or drive. You have to quickly learn the necessary Zeko terms to navigate the roads and respond to events along the way. The scenario was inspired by a language-learning activity designed by Kinection.

Try the activity, keeping in mind that it’s a casual, unfinished experiment. Then come back here for more about Twine and my design decisions.


Twine works in Windows and on the Mac, it’s free, and it publishes branching scenarios in easily customized, accessible HTML. It’s based on TiddlyWiki, a lightweight information management tool.

Each scene in a scenario is really a small record in a wiki database. The links you create determine the path that the learner takes through the records. Thanks, Steve Flowers, for pointing out Twine in the Articulate forum.

Here’s the flowchart view, which Twine automatically creates as you link your scenes (click for a bigger image):

Screenshot of Twine flowchart view

Twine offers some advantages over other ways to write branching scenarios. You can:

  • Quickly switch between flowchart view and story-editing mode
  • Link scenes using simple text
  • Add images and sound files and otherwise use HTML
  • Export the story in text format for review and proofing
  • Publish the finished story in HTML
  • Use simple codes to keep track of variables or limit learners’ choices (not shown in the sample scenario)

Since Twine produces a standard web page, you could conceivably embed a Twine story in any elearning tool that lets you embed web pages and that doesn’t interfere with Javascript. It might also be mobile-friendly — at least, the sample scenario works on my iPhone.

Here’s the editing window for a scene. The “bookmark” tag means that this scene will appear as an option when users click the “Rewind” link to the left of the story.

Screen shot of a scene editing window in Twine

Visual design

The default publishing styles might not work well for corporate audiences. For example, the default version of the sample scenario had white text on a black background. However, you can quickly change the style by creating a special passage in the story that contains CSS. You can then copy that passage into future stories.

With four lines of CSS, I changed the background, text, and link colors. Here’s how one much more customized Twine story looks:

A few drawbacks

I was very happy with how easy it was to write in Twine, especially compared to my usual approach involving a separate flowchart and script. There were just a few things that didn’t work super well:

  • I put a few bookmarks in so you could see how the “rewind” function works. However, the feature displays the first few words of a scene instead of its (guaranteed unique) link text. In the sample story, the first few words are usually Ludo confirming or correcting your previous choice, so the feature doesn’t exactly shine this time.
  • Your browser’s back button should take you to the previous scene, but in my tests it occasionally went back one scene further.
  • The flowchart layout got bizarrely spread out about halfway through the story, and I had to manually drag scenes closer together. This might be related to the fact that Twine requires a more recent version of the Mac operating system than I have installed.
  • If you want to track learners’ performance in the scenario, you could use variables, but I’m not sure how that would interface with an LMS.

Development time

I didn’t track my development time because it wouldn’t have been realistic — I was learning to use Twine while I wrote the scenario and was writing this blog post at the same time. I can say that the “production” phase takes literally 2 seconds: you click “Build Story” and an HTML file immediately appears.

So you might assume that producing a scenario in Twine takes this long:

  • However long it takes you to write the story in text
  • + Some time for creating any images and sound files and embedding them using HTML
  • + Some time for tweaking the CSS to avoid the white-on-black theme (took me 20 minutes because I’m not fluent in CSS)
  • + About 2 seconds to click “Build story”
  • + Some time for quality checks (this goes quickly because it’s easy to find a particular scene in Twine’s flowchart view)

Teaching through a branching scenario

The example scenario is an attempt to show that we don’t have to front-load learners’ brains with vocabulary or other facts before the “practice activity.” Instead, we can plunge them, clueless, directly into an activity that exposes them to the new information in a way that helps them figure it out.

A traditional approach to this type of language activity would be to first tell learners how to say “left,” “right,” and similar words in Zeko. We might have a little drill or game to get them to recognize the words quickly, with “correct” and “incorrect” feedback. Then we’d use the journalist’s story as a practice activity.

What I’m suggesting instead is to skip the information and go straight to the story. Design the story so the learners can discover meanings on their own. Then provide a natural pause to review what they’ve learned and make sure they got it right. Read more about this in Throw them in the deep end (but keep a life preserver handy).

But you can’t teach everything through a scenario!

Of course, it would be tedious to teach all the vocabulary of a language through scenarios.

In the Zeko sample, I’d pause the action where the story currently stops and include an optional game to reinforce the new words.

I’d then finish the story, probably including a scene in which you win an exclusive interview with the Minister of Science by correctly using Zeko to warn her away from some sort of danger.

Then I’d revert to “normal” instruction to more efficiently cover additional vocabulary and grammar for awhile. Another branching story would appear later, to both reinforce what has been covered so far and to introduce a handful of new terms or concepts. Maybe it would require learners to recognize the grammatical pattern of a phrase and build new phrases using the same pattern.

But it’s just text!

Yeah, it’s just text. I wanted to show you Twine’s default behavior. The sample scenario is an example of the quickest and cheapest way to generate scenarios with Twine.

While some designers shun text because they (incorrectly, in my view) think it’s boring, I think its greatest weakness in the sample scenario is that it teaches people to read Zeko, not to speak it or understand it when it’s spoken.

If I were serious about teaching language this way, I’d produce the dialog in audio only. It would probably be simplest to produce the narrative as audio as well and make each scene’s audio file play automatically when you land on the scene. Instead of displaying redundant text, I’d need to come up with visuals that support the story. That’s way more work than I wanted to do for a quick sample.

Soft skills might work better

I wrote a fake language story because that was the only way I could guarantee that none of you knew the answers and you would therefore experience being clueless in a scenario.

However, scenarios might be more suitable for teaching soft skills, such as having difficult conversations, overcoming buyers’ objections, and leading a team through change. Soft-skill materials don’t have as much information that requires memorization, and they have more grey areas to give the stories depth.

For a much deeper, more polished scenario that also plunges learners directly into a situation, see the Haji Kamal piece for soldiers in Afghanistan.

Possible advantages of this approach

By skipping the formal teaching and going straight to the story, we:

  • Let learners who already know some Zeko skip explanations that they don’t need
  • Encourage learners to build meaning from (somewhat) realistic experience and mistakes, mirroring how we learn in the real world
  • Give learners a more challenging puzzle to solve than rote memorization
  • Possibly improve recall by connecting facts to a story

Basically, we avoid making the material too easy and therefore forgettable.

But it’s not fair!

Some people argue against this approach because it increases the likelihood that learners will make an incorrect choice: “You’re setting them up for failure!”

But we’re not just throwing learners into the deep end. We’ve given them a life preserver by designing the story in a way that introduces new information a bit at a time.

The harshest choice in the story is the first choice between “left” and “right.” You have a 50% chance of getting it right. If you get it wrong, you learn “no” and you immediately get back on track. It isn’t likely to be a catastrophic experience.

Story characteristics

The sample story is just a lightweight tale that I outlined in five minutes. But it does include the characteristics that I recommend be included in real branching scenarios:

  • A big goal with emotionally compelling consequences: you have to be first on site because you screwed up your previous assignment
  • Minimal setup: four sentences establish the back story and the challenge
  • Suffering: your guide doesn’t speak English; your competitor might be close behind
  • Time pressure
  • An increase in tension partway through the story: is that the Agence France-Presse car behind you?

P.S. I have nothing against Agence France-Presse.


Scenario design toolkit now available

Design challenging scenarios your learners love

  • Get the insight you need from the subject matter expert
  • Create mini-scenarios and branching scenarios for any format (live or elearning)

It's not just another course!

  • Self-paced toolkit, no scheduling hassles
  • Interactive decision tools you'll use on your job
  • Far more in depth than a live course -- let's really geek out on scenarios!
  • Use it to make decisions for any project, with lifetime access



33 comments on “Branching scenario example + overview of Twine

Comments are closed.

  1. Great example!

    Often called “test then tell” this approach really works. The trial and error learning is compelling and the learners retain the information.

    I used this approach in a project a couple of years ago (without the advantage of a specialized tool). The negative comments from reviewers included “you really have to think about this” and “people will be so busy doing this they won’t be able to get their work done”.

    I had a clock and a ‘score’ on the screen as well. People would go through it multiple times until they had a perfect score and some would compete with one another for best time – voluntary reinforcement and drill!

    Anything that makes this type of eLearning easier to develop is a big plus!

  2. Cathy, thanks for posting this and demonstrating how easy and effective it can be. I had seen the Articulate post by Steve Flowers and had been toying with using this approach for one of our mandatory no-fun courses in the agency. I think it could be an interesting and different way to get people to pay attention.

    Now, my question is, what CSS lines did you use to change the appearance? I’ve just started playing with Twine and have been watching Chris’ Twine tutorials, but I don’t see the actual lines that will change the appearance. Could you give me some guidance on that? Thanks.

  3. Julie, I love the “negative” comments. It sounds like you created a great project.

    Sonnie, here’s the CSS I used. To change the background to white and text to black:

    body {background-color:white;}
    body {color:black;}

    To make the “Rewind” and other sidebar links legible after changing the background to white:
    #sidebar li:hover{color:grey;cursor:pointer;}

    To make the links blue:
    a { color: blue !important }

    So the whole CSS “scene” looks like this:
    a { color: blue !important }
    #sidebar li:hover{color:grey;cursor:pointer;}
    body {background-color:white;}
    body {color:black;}

    I hope this helps.

  4. What a neat tool! How did you upload the story? I get a link that goes back to my personal computer. I tried pasting the source code but it wasn’t recognized.

  5. Catlin, I’m not sure I understand your question. Twine exports an HTML file to your own computer. To upload the file to the internet, you need to have access to a web domain and use an FTP tool to copy the HTML file to that domain.

    If you search for something like “how to upload a web site” you’ll probably get lots of ideas. I use Fetch (on a Mac) to move files onto one of my web domains.

    Or were you asking about something else?

  6. A reader reports that because her organization blocks anything that uses ActiveX, she hasn’t been able to use Twine. She also ran into trouble with the back button not working in IE, and the “back” command described in support documents doesn’t work, either. So it looks like Twine might offer some frustration or be unusable for users in big organizations.

    If you’ve had any success or challenges in using Twine, please let us know.

  7. Cathy, this appears to be a great tool. I wish we would have had this when working to develop scenarios!

  8. Cathy made one comment above that just jumped off the page for me: “…we don’t have to front-load learners’ brains with vocabulary or other facts before the “practice activity.” Instead, we can plunge them, clueless, directly into an activity that exposes them to the new information in a way that helps them figure it out.” This applies to all type of training. I guess it made such an impact on me bacause I am saddled with creating “poke and puke” training for a client that resists what Cathy is prescribing.

  9. Mike, thanks for your comment. I’m glad the point about not needing to front-load learners’ brains stood out, because that was what I hoped to demonstrate with the activity. And thanks for the “poke and puke” label, which I hadn’t heard before. It’s unfortunately accurate for a lot of training.

  10. Has anyone tried Inspiration? It’s for high school and grade school students but I’ve used it – you can switch between outlining and a graphical layout. This looks different. In most ways this looks like it’s specifically for story writing.

    Can someone take a look and tell me what you think about this versus Twine?

  11. Kevin, I used Inspiration as a mind-mapping tool for awhile. I think it would be as useful as any other mind-mapping program for creating a flowchart of a branching scenario.

    The advantage of Twine is that it creates actual links between each part of the story, and you can quickly try out the story without having to recreate the content in PowerPoint or a similar tool.

  12. Cathy, thanks for posting a great tool with the flow chart describing all the features in tool…..really this is interesting and more informative with gr8 examples.

  13. Cathy, you’re an inspiration. I got tuned into Twine immediately and tried my hands on it. The first couple of hours yielded this result which I thought sharing with you:

    I’m a guy who is nowhere close to programming; my question to you is: Is there a way for a guy like me to not know any coding and yet include images and audio and make branching scenarios much more compelling using this app?

    Please lend your thoughts on the branching scenario; I know it’s rudimentary and not in the Haji Kamaal mold, but it was a couple of hours of sheer scripting pleasure. I work in the great e-Learning factory which is India where we do not get too many opportunities to churn out anything beyond the assembly line. I’m trying to move out of the fold. Thanks for the blog.

    1. Amaru, thanks for your comment, and thanks for sharing your work. Unfortunately, the link you posted is a link to a file on your own hard drive, which we can’t access over the internet. To share your file with everyone, you’d need to upload it to the internet. You might Google “upload a web page.” If you’d just like my feedback, feel free to email me the file and I’ll be happy to take a look at it.

      The tutorials for Twine include directions for adding images, but they assume you know some basics. To add images, you’d need to learn how to edit them to make them the right size, upload them to the internet or to whatever server is hosting your story, and then follow the instructions in the tutorials to use the “img” code in HTML.

      Adding audio would be a little trickier. You’d have to learn how to record and edit a sound file, upload it, and link to it using the “a href” code in HTML. Making it play automatically instead of through a link is more complicated, and I don’t know how to do that myself.

      Both of these skills are worth learning, and it’s also good to know a few other things in HTML, such as how to format text. If I remember right, I learned basic HTML skills in a few days using a book called The Visual Guide to HTML or something similar to that.

      At the same time, I think a good story with challenging decision points can be compelling on its own, as just text, without images and sound.

      Best of luck, and please do feel free to email the file if you’d like my feedback.

      1. I found that with this tool, if I create it on a Mac, PC users cannot see the final product. Has anyone else experienced this with Twine?

      2. Jess, I created the sample scenario using Twine on a Mac, and as far as I know, people with PCs have been going through it without trouble, so I’m not sure what could cause the problem you’re seeing.

  14. Hey Cathy,

    How cool. You’ve explained the features of the tool and potential application to storybuilding perfectly. This is exactly how I envisioned folks using it to rapid-prototype the dynamic unfolding story.

    It’s really cool to use the first time around. Have you been able to put it to good use in a real project? Have you uncovered out any drawbacks or unforeseen advantages?

    1. Hi Steve,

      I haven’t had time to use it since my first test run, so I don’t have a final verdict yet. It does seem suited more to artistic projects than to corporate elearning, where (unfortunately, in my opinion) there are higher expectations for bling. In the corporate world it could be a great prototyping tool, as you point out.

      1. We’ve used it a bit to prototype interactive conversation elements (similar to those offered by Jellyvision.) It works great for this purpose. I take this and filter it into an XML structure for my own conversation engine. These have appeared in “add sized” banners on EPSS to transition into new concepts or propel the novice skill chain. These work pretty well for the purpose.

        So we use these to provide SME’s and reviewers a quick look at the series but will reformulate it into something that provides a smoother experience for the end-user.

  15. Thanks for this post! One area that I’ve always lacked is in storyboarding, and I really like your approach to this using Twine.

    I’ll be heading over to look at the articulate post that you mention too, to compare.

  16. Hi,
    I have used Twine recently for a Theater Design Class to make a Role Playing exercise for Online students. The tool is great and had been working fine.
    But, suddenly – now for some reason in the HTML published version, it does not take me further from the first link. I have close to 20 more options after that – but it does not open the link and expand to show whats next.

    Please can someone help me please?? I am in a bit of time crunch. Have to have the file ready in the next few days for students taking the class in the Summer semester. Any help would be highly appreciated.


  17. Excitingly there appears to be life in this project yet. A version 1.3.6 (a heady increment of 0.0.1 from the version current when Cathy wrote this post) is in the pipeline and being alpha tested (as of June 2012). Good stuff as this is by far the tidiest CYA editor I’ve been able to find.

  18. Cathy, did you remove the activity? I watched it about a month ago and wanted to review it, but I keep getting the dreaded 404 error.

  19. Cathy – do you know of a tool that I could use for easy action mapping? (hint, hint – if there isn’t one maybe you could make one?) I’ve been using Popplet to do it but it would be great if there was one out there with the nifty symbols you use for each action mapping element (goal, activities, information, etc)
    I teach instructional design and have my students use you action mapping technique in one activity, so having a tool to point them to would be awesome! :o)

    1. Hi Miriam, thanks for mentioning Popplet — I’d never seen it before. It reminds me of Murally, which I’ve used for site design. I’m working on an app that among other things could be used for action mapping, but it’s hit a development snag so I can’t say when exactly it will be available. I’ll be sure to mention it in the blog! In the meantime, I use MindManager and color-code the nodes (green fill for behavior, orange for activity, etc.). I have to draw some lines manually but it works okay for now.