Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Twine 2.x - Where we're going, how to get there... Project Timeline, etc.

Twine 2.x - Where we're going, how to get there...  Project Timeline, etc.

Good Evening Chris, & all the dev's, testers, & contributors...

First a sincere thank you.  From what I can tell in my explorations to date, twine is a beautifully constructed App...  very nice job, to you & all of your teammates.

My name is George, & I'm teaching my daughter how to program...  I first started with Java basics; and now we're exploring HTML5 & JavaScript.  During this, I discovered Twine; a project I wish to share with her, for I feel it will be excellent as an "engine" for her creative writing side.  Because she is still a beginner, I usually will work things through once & then once I've it down, work it through with her.  (This stops her from getting confused at this early stage of dev.)  So I'm really interested in the 2.x series, as it's HTML5/JS written in HTML5/JS ... great for her, as her skills increase.

I've started working with your Twine 2.x beta, and I really like it.  As a dev, I hope to contribute to it someday (sooner than later, hopefully.)  But I'm struggling a little bit in the differences between the documentation (all 1.x version stuff) and the 2.x implementation...  Maybe I'm the only one, since I'm coming to Twine straight at 2.x vs your other users who've worked through the 1.x versions.

So I've some questions that I've not been able to find:

Is there a timeline for 2.x?...  (hard, soft, best guess, Bueller, anyone..., anyone...? 8) )
Is there a to-do list for 2.x stuff for other developers to contribute?
Is there a FAQ for some of the major differences between using 1.x & 2.x?
To our Moderators...
  • In the forum, do you think it would make sense to create a top-level 2.x forum?  (Important going forward, I believe.)
  • Is there a forum for dev's?...  or is it mixed into the general forum?  (If mixed, can we separate it out?)
  • With regards to both above, can a moderator move this post into the [TL 2.x > Dev] forum? ... or presuming you create them, should I delete/re-create it there?
With regards the the FAQ...  some questions:
*  In Tw1.x, you create different "types" of passages (passage, css, script)
-? In Tw2.x, ? all passages are "passage" type, but there's one global css & script "passage" you access through [Properties] ?
--  -- If there is only "one" CSS & Script available, what is the "best practice workflow" expected?  using [@import url("base.css");] && [$.getScript("my_lovely_script.js", function(){}  //if we can us jQuery that is.?.  Has this design decision been made?]

*  In Tw1.x, you can mod the CSS through the base CSS listed here:  http://twinery.org/wiki/stylesheet
-? In Tw2.x, ? are the base CSS names different? ... for instance, one thing I'd really like to do is "hide" the tooltips for the links...  I use the "passage names" for me as a writer, but I don't want the reader to see them...  I've tried various things, but I can't seem to get my CSS to "hide/disable" the tooltips when you hover over the links.

*  In Tw1.x, you can choose a "Style" for the whole work (i.e. Sugarcane or Jonah)
-? In Tw2.x, ? There's no "selector / drop down box" ... I would presume there's an easy way to do this from [Properties] CSS?

*  In Tw1.x, you make choices like this:  http://www.gamasutra.com/blogs/DanCox/20130209/186341/Learning_Twine_Part_2.php ; <<choice "Cry for help">>
-? In Tw2.x, ? I get -->  Unknown macro: choice

Thanks in advance!

George

PS  Please feel free to PM me if you'd like.

Comments

  • Thanks for your interest. Let me outline what my general plan for Twine 2's features is.

    I've personally given Twine 2 a number of design goals which include but are not limited to:

    1. Better separation of code and text

    2. Better command of story presentation

    3. A more expressive macro stdlib

    4. More intuitive, readable and friendly syntax

    5. Better and more unified conceptual model of what passages, macros, functions, syntax, assets etc. are

    6. An IDE that's more tightly unified with the story format

    7. Better tools to debug or analyse the running and structure of a Twine program


    The following Twine 1 features are planned to return largely unaltered:

    * Normal tags that are used for organisation in the passage.
    * Image passages, image-to-base64 conversion, etc. This is a fairly big deal, but should be easier than Twine 1's implementation.
    * Stylesheet passages, "tagged" stylesheet passages (the 'tagging' process may be different and graphical, involving laying down lines)
    * Compile-time checking of basic errors (possibly greatly expanded)
    * Includes, or a way to include other stories' assets into yours (but which won't involve a "StoryIncludes" passage).
    * Bookmark links as serialisations of the entire game state, etc.

    Other useful Twine 1 features (setter links, data-passage, etc.) might roll in with alterations.


    The following are planned Twine 2 features, which I shall now group in terms of the aforementioned goals:

    1. Better separation of code and text
      * Each passage possessing both a "body text" area and a "silent area"/"backstage" - the silent area being where most macros should be placed. One or the other are optional - there can exist "fully silent" passages containing only macro code.

    2. Better command of story presentation
      * Stretch-text as a per-passage option, instead of being split into Sugarcane/Jonah.
      * The ability to set passage transitions on a per-link basis.

    3. A more expressive and expansive macro stdlib
      * In addition to more enchantment macros like <<click>>, and transformation macros like <<replace>> etc., I also wish to add something that replicates <<cyclinglink>>, possibly like this.
      * There's currently not much support or awareness for "live" macros and code in Twine - my <<timedreplace>> is the most of it. So, I think a <<when>> macro that observes its expression and runs its contained code as soon as the expression becomes true may provide more utility in this regard.
      * HTML audio macros, and/or YouTube BGM macros - I've made or maintained these for Twine 1, and the "format war" seems to be resolving in MP3's side (RIP FOSS).

    4. More intuitive, readable and friendly syntax
      * Expressions:
        - The ability to write "$a > 1 and < 4" or "if $a is "Red" or "Blue"
        - Possibly 's as sugar for . property access - "$array's length", or "?hook's position".
        - Possibly some HyperTalk inspired sugar keywords like "it".
        - Maybe some way around JS's type coercion??
      * Macro tags:
        - Different syntax for macro tags than << and >>.
        - A better separator for macro parameters than just whitespace. Just commas? Maybe names?
      * Styling:
        - Some kind of macro that allows user-defined style syntax: <<render>>.

    5. Better and more unified conceptual model of what passages, macros, functions, syntax, assets etc. are
      * Some kind of unification of functions and macros, forgoing the need to learn one or the other - you can't write <<print <<either $a $b $c>> >>, but what if macros had a syntax and conceptual model that made this both possible and reasonable?
      * All the standard macros, functions etc. are defined as passages in a "Standard Library" which is implicitly included in every story, and can be perused.
      * With <<render>>, even much of the styling syntax can be self-hosted in Twine (barring critical things like links, and macros themselves).

    6. An IDE that's more tightly unified with the story format
      * I'm already working on syntax highlighting that uses the story format's syntax lexer, but given the above ideal of a "self-hosting standard library", making an IDE that uses the story's own <<render>> tags and its defined macros to determine highlighting, link connections etc.

    7. Better tools to debug or analyse the running and structure of a Twine program
      * A simple "debug mode" exists at present, but I'd like it to be enhanced to include listings of the story's variables and their values, and maybe a simple "console" that prints lines when various events occur (clicked a hook-link, a timed macro triggered, etc.)

    Now, the above includes some fairly weighty goals, and I have no illusions that any are guaranteed to arrive, but I feel that they are all worthwhile goals to pursue and dedicate to making Twine 2 a  true successor to Twine 1.

    Unfortunately, I'm not able to give any definite timeline of development at the moment, due to the burdens of my employment and of maintaining Twine 1. But, I have enthusiasm and dedication for this project, and hope to spend as much of my spare time on it as I can.
  • First of all, there is no secret Twine 2 forum :). Right now it feels unnecessary to create a Twine 2 subforum to me, but that is obviously something we can re-evaluate based on traffic. We've been talking over email mainly.

    There are no "script" or "stylesheet" passages in Twine 2 -- this was a design decision I made to try to simplify things. There's just the one space for each right now, but it remains to be seen if people will need something more complex.

    jQuery is included in Harlowe, the built-in story format, but that is obviously up to each format to decide on. Speaking of, there is no functionality right now for multiple formats (e.g. Sugarcane vs. Jonah) but that is coming.

    Leon, I think, can speak to the fate of <<choice>>. At least right now in Harlowe, it wouldn't achieve anything since you're looking at one passage at a time, but that might change with the stretchtext features he mentioned.

    My own criteria for a Twine 2.0 beta release is feature parity with 1.3.x. We're actually very close to this. Unless I'm forgetting something, there are only three features left:
    • Passage tags
    • Search/replace
    • Multiple story formats
    I've been, as much as I can, tracking todos in the bug tracker. This doesn't cover much of what Leon discussed-- this list is more of a ground-level view of stuff that will be implemented in the very near future.

    To Leon's list, I'll also add a WYSIWYG editor (which is tricky, as it will need to interact well with macros), a real undo system (e.g. being able to jump back to a previous revision of a story), and a revised tutorial (the work done on the wiki is good, but right now it's more a reference than an introduction).

    I can't make promises either about timing, because we have such a small team, but my goal would be a real beta by September.
  • L wrote:

      * HTML audio macros, and/or YouTube BGM macros - I've made or maintained these for Twine 1, and the "format war" seems to be resolving in MP3's side (RIP FOSS).

    May you take a look at the WebAudioAPI? I'd love to have support for these kind of stuff: http://www.scirra.com/labs/audioeffects/
    Also, while MP3's might be winning, we need support for a free format!
Sign In or Register to comment.