Twine is an open-source tool for creating interactive, nonlinear fiction.

It is a great starting point for making games and it was even suggested by Bioware to fans wanting to create Bioware-like branching stories.

Twine does not need any code to create a story, but it is very flexible. With Twine, authors can turn stories into games using variables, conditional logic, images, CSS, and JavaScript. It works really well for prototipying too.

Thanks to its gentle learning curve, Twine makes development accessible.

Twine saves stories as html files that work in a browser, and it is easy for authors and developers to share their work with the World.

There are currently two versions of Twine available, and each version supports different story formats.

You can think of Twine as the main engine and of story formats as the language (markup and code) you can use to work with it.

Twine 1.x

Twine 1 was the original version of Twine. It is still available for download and use and it is still fully functional. 

The latest version is 1.4.2 and is still being used by many developers, thanks to its mature development.

The main story formats supported by 1.4.2 are Jonah and Sugarcane.

Twine 2.x

Twine 2 is the most recent version of Twine. It is the recommended version for new users. The main advantages of Twine 2 are that it can be used via a web editor and that it saves stories in .html format.

The latest version of Twine 2 is 2.1.1 and the story formats it supports are Harlowe, Snowman andSugarcube.

Before getting started writing your first game or interactive story, it is important to decide which story format to use.

Harlowe: good for beginners with no coding experience and for authors who want to focus on simple interactive fiction.

It is possible to implement game mechanics in a story written in Harlowe, though some features will need workarounds and a bit of sweating.

This RPG prototype by Chris Martens was built with Harlowe, as well as this experiment of mine, still in WIP format. (You can’t finish the game and some links are broken, but it is good to show some advanced features).

Sugarcube: good for advanced users and for authors who want to have a better support for game like features. A great game developed with Sugarcube is Scaffold 22.

Snowman: only recommended for users with a good knowledge of Javascript and coding. It is great if you want to use the main engine and write your own functions. Birdland is an awesome game built with Snowman.

More details on picking a story format are available in the wiki.

I will focus on Twine 2 and Harlowe. If you are interested in using Sugarcube, here is a great tutorial by Adam Hammond.

Coming up next

I will update this section with links as I write new posts, but you can also browse the Twine tag to see more about this subject.

  • Creating your first story in Harlowe
  • Using variables to add RPG elements: inventory, hit points, coins
  • Special passages: startup, header, footer
  • Customise the look and feel of your story with CSS
  • Publish your game