Twine 1 is the first version of Twine, made in 2007 by Chris Klimas. It is a desktop application for Windows and Macintosh, made with wxPython. Its file format is .tws, which is a simple Python pickle file.
Twine 1.3.5 is the last version of Twine 1 authored primarily by Klimas. It possesses a considerable number of bugs. Fortunately, most of these are in the game engine, and could be easily patched out on a story-by-story basis.
This is also the only extant OS X version of Twine 1.
This version, released in mid-2012, features a number of improvements by Phillip Sutton, Henry Soule and Emmanuel Turner, including:
* Support for custom story formats (the Formats menu automatically updates to match the contents of the 'targets' folder).
* The «return» macro, a variant of «back». (This implementation broke IE 8 support, because “macros.return” is a syntax error in ECMAScript 3.)
* The «textinput» and «update» macros (whose inclusion was a mistake, as they were originally for testing purposes only).
* The ability to give a passage the tag “Twine.private” to prevent it from being included in the final HTML file (intended for development notes and other unused passages).
* The “StoryIncludes” passage, which can contain a list of filenames of .twee source files to import into the story when it is built (intended for easily importing sets of macros and other passages into a story).
* Preliminary Unicode support (Unicode allowed in passage titles).
* The ability to link to a passage by including its name in the URL after a 'hashbang' (for instance, if story.html had a passage called 'graves', you can link to it using “story.html#!graves”).
This version, released in January 2013, features further work by Emmanuel Turner, along with contributions by Misty De Meo, Henry Soule and Leon Arnott. Changes include:
* The «print» macro now correctly prints a variable containing 0.
* The «remember» macro now uses HTML5 Local Storage, providing greater stability and permitting the macro to function even when it's not on a web server.
* The 'Auto Build' feature, which automatically re-builds the HTML file in the background whenever one of the StoryIncludes files is altered.
* The 'StorySettings' passage, intended for misc. settings concerning how the story is built. Including the line “Obfuscate:SWAP” causes passage text in the generated HTML to be obfuscated using a basic char-swap algorithm (normally, story text is stored in the HTML as raw Twine code, which means people can obtain spoilers by reading it). The Obfuscation is controlled using a key specified by a line beginning with “ObfuscateKey:”. For instance, “ObfuscateKey:anbocpdqerfsgthuivjwkxlymzANBOCPDQERFSGTHUIVJWKXLYMZ” performs ROT13.
* Extensions to «back» and «return», including «back 2»
* The ability to use custom macros in the Start passage, and for custom scripts to be loaded before the Start passage is rendered.
* The “Responsive” story format, a modified version of Sugarcane styled after Initializr, with jQuery and Modernizr pre-installed.
* Passages can now have CSS applied to them using the “data-tags” CSS selector (Note: in this version, only the .passage elements can be styled using this selector).
This version is possibly the last significant revision of Twine 1. It features contributions by Leon Arnott, Soule, Turner, De Meo, and possibly others.
This continues the work of the previous alphas, and features a number of bugfixes, engine tweaks and GUI enhancements.
For a near-complete list of changes, see the Twine 1.4 release notes.
The Harlowe source repository is accessible here.