These forums for Electron Dance were closed on 09 December 2014.
I Twined
  • http://mattweiner.net/reunion.html

    I'm not that happy with this on a few levels. (It was part of a challenge to write something with at most 15 passages and 1000 words, which partly affected the writing style, although my usual writer's block affected it just as much.) But it exists, anyway.

    I think a few people mentioned this in relation to Fear of Twine: The promise of some Twine proponents that you can make a game without programming is kind of false, isn't it? It seems like most of the Twine games I hear about use scripts of some sort, and even in my game which used only the stuff on Anna Anthropy's "How to write a Twine" page there was a lot of fiddly variable code to enter for the state tracking I wanted to do. (It didn't help that the slightly older version of Twine that I started with didn't actually display passages with 'display' in them.)

    Also it bugs me that the names I give the passages are displayed in the title bar. I want to give the passages names I can remember to make it easier to include the links but they're extraordinarily on-the-nose and I don't want them appearing in the finished project. If you can play full screen and make the title bar disappear I'd recommend doing that. (Inform makes it a little easier to use literate names in your project without necessarily displaying them.)
  • That was part of the reason I wanted to do Fear of Twine--I kinda wanted to show, like, yeah, it's easy to do a very simple one with asides and dual branches, but if you want to do something more complex, you're gonna have to learn variables. If you want to make something that looks different, youre gonna have to learn CSS.

    Which isn't bad and the programming you need to do isn't that far removed from BASIC--I was taught BASIC programming as a little child in the 80s in school. Learning the ins and outs of variables and if/then statements isn't this mathy thing, it's simple logic and organization.

    I guess a lot of why I'm growing to love Twine is because there's such a range of stuff you can do--I think the boilerplate I normally say is something along the lines of, you can learn the basics in an evening and if you wanna go further it goes pretty deep. Basic Twine is great for a lot of things--to ease someone into game writing, to provide a different way of getting kids to write, etc etc--I don't think it should stay there, and half of why I love the fear of twine stuff is because literally everyone tried something different, even the first-timers.

    I don't know how to do the passage title things--I have these ridiculously ordered and structured node maps and I have a naming convention I use--like TWEEZER was a bunch of NIGHT2G1UP2 which is very meaningful to me--I can tell exactly where in the story that is, the content, and the emotional tenor of that passage--but otherwise meaningless and I don't think people even pay attention to that. I know there's some way of changing the top bar title. I'm not sure. That's another thing about Twine, while 1.4 put a lot of awesome macros in, it's not really COMPLETELY useful out of the box. You do need to add a lot of scripts to give it certain behaviors. Again, I like the flexibility, and I think its accessibility is a little overrated personally.

    I will play yours in a bit!
  • The accessibility is totally over-rated.

    I wanted to write a deeper blog about this, but since in theory I'm supposed to be good at coding, I don't exactly want to whine about having to code. But yes, any time I'm doing any state tracking (the state-tracking in Haunted House is really minor) there's some variable bits. That's not too bad; it's like BASIC, practically. But anything more complicated than that? Well, then I'm writing CSS and JavaScript, which makes me feel like Twine is more of a limitation than it is a helpful accessible tool at that point. You can write a LOT of different types of games with JavaScript. I could be writing JavaScript in Unity. So if I'm writing JS at this point why limit myself to Twine unless I really just feel like it's the best possible medium for me?

    Twine will certainly allow really simple stuff without "coding" but anything else is coding.

    Contrast that to Inform 7 which though it uses coding logic, does not feel as much like "coding" with a regular language.
  • It's funny that you both mentioned BASIC because I was kind of like "Holy geeze, I'm doing BASIC again." And... well, I could probably write a BASIC program a lot more easily than Pascal or LISP these days, at least without a ton of brushing up. But BASIC is a bunch less newbie-coder-friendly than Inform 7. For one thing, if it hadn't turned out that upgrading Twine fixed my problem I wouldn't have known how to begin debugging.

    (This is perhaps not quite fair because I've really managed to get deep into the weeds in Inform. Maybe if I'd put in that much effort to Javascript I'd understand it. And if I understood Javascript I'd probably be using Undum.)

    Maybe there's something a little more Pascal in the fact that you have to initialize the variables but that seems like it makes it even less user-friendly; you have to make a big block of variable inits in the Start passage, don't you?

    Also, can you set a link back to the Start passage? My links back never worked. I do think I restricted myself some by only using the instructions on Anna's page; I had a laborious system of variables to flag whether a passage had been visited (it was a real pain, I had to create a different variable for each page), and it turns out I could use the "visited" function for that. Still it seems to me that the particular thing I was doing would've been BUCKETS easier in Inform, where I could write one rule to say "do this one thing for all these scenes."

    BTW I can explain what's actually going on in the story if anyone wants.
  • You are learning something borne of the dark secret of Twine. Come closer:

    Twine was in no way developed as a tool for writing interactive fiction, for making games, anything like that. It's a graphical front-end for a wiki language called Twee. If I know my derivation properly, it's called twine because it's an implementation of TweE for WINdows. The twine scene is, essentially, a scene around games made using Wikipedia. Now Twee and twine are, of course, more flexible than that, but a lot of the idiosyncrasies people notice are kind of a legacy of this being made to do something it was never intended to do in the first place.

    The thing about variables was the case, yes, but that's some of the 1.4 functionality--undeclared variables automatically start at 0. You cannot link back to Start. Most people create a second passage and the only thing that's in Start is "<<display "title">> or whatever--that's what I do to avoid that exact problem.

    Twine 2 is apparently going to take care of most of this, because it is being developed from the beginning to have all of the necessary functionality, and I really wonder how that's going to affect that.

    But yeah--I've always found the accessibility of Twine to be a slight misinterpretation. Hell, anyone can grab a notebook and cobble a story--but like anything, you need to learn how to write. A lot of writers get attracted to twine because they think there's going to be no difference between that and writing, and that's where you get very wordy twines with Advanced Footnotes rather than choices.

    I haven't played much with inform--tried with whatever implementation was around in '04 but couldn't make head nor tail of it. I like Twine because I figure there's a dynamism possible in the text that isn't there in Inform, and because there is always a sense of forward progress in Twine--all of the Twines I've made, if you blindly click you will get to an end--which is something I have fun with, like in TWEEZER if you just click the first option in any menu you're presented with, you will get the absolute worst ending in the game and I love that most people are going to end up with that--which is something that doesn't always happen in parser. I think parser TENDS to be better for modeling worlds, while Twine is better for internal and less concrete stories.

    There's also the issue of ad hoc verbs vs a standard list. A parser game, you can forgive a couple of nonstandard commands, but if there's too many that edges into Guess the Verb territory. Twine is fine to have a different set of verbs in each choice, or actions which aren't verbs.

    Of course this is shifting into parser vs cyoa, which is a slightly different discussion. I don't want to be married to twine necessarily--I don't like to give myself limitations like this--but right now for the stuff I'm writing, Twine is a way of giving my writing a more explicit physics structure. I think that's some of it too--twine feels a little more physical than inform, in the writing, at least. But again, I haven't tried 7 yet. I just don't have any ideas which would fit into that.
  • Some of the tutorials are out of date. Verena also had some problems because of that.

    As someone who has a fair amount of game-making experience (more than a decade, Jesus Christ...), I can say that making games with Twine *is* quite different. Sure, there's variables and all that, but they're quite easy to use, and it's nothing compared to trying to get even basic collision detection working.

    The claim of "anyone can make a game!" is slightly over the top, as it's really more like "anyone can make a very basic CYOA game, which not everyone enjoys!" But it's certainly far more accessible than any other tool so far.

    Inform 7 is very impressive, but I find it very confusing to work with.
  • A lot to respond to here but I can't right now because they plowed us in again and I have to shovel the driveway out before I take a kid to daycare. (You WILL be oppressed by my #dadfeels.) But two quick thoughts:
    1. I'm sort of suspecting that Twine is really a gateway drug for getting people to learn Javascript. And that some of its evangelists know this.
    2. Richard, in 2004 you were looking at Inform 6 which looks kind of like Javascript or Python or I don't even know what because I don't know any of the languages anyone uses anymore. Now there's Inform 7, which looks like English -- if you type in "The Observatory is west of the Ballroom" you have a valid source code for a game with two rooms -- which leads to its own false promises and definitely is a way of tricking people into learning to code, though specifically into learning to code in Inform 7.
  • See, the English-like nature of Inform confuses me more than it helps me, because I feel it actually makes things *more* complicated. English can be structured in all kinds of ways, most of which won't work in Inform. Writing "Observatory = Room" is actually a lot simpler. It's just that most programming languages make you write "{ set 'Observatory' = $room (0,0,0,0,0,1,0, no, goodbye, crodocile, trinketfnu); #$&ยง&%/%$/!00x }" instead.
    Post edited by JonasKyratzes at 2014-03-14 17:11:38
  • There is definitely a point. Inform 7 works for me for a few reasons:
    1. With some exceptions, I don't find it that much harder to remember the particular form of English that I7 requires than I do to remember the particular syntax that other languages require. Like, I get confused sometimes by the difference between "Let foo be bar" and "Now foo is baz" in I7 (the first one creates a temporary variable of a certain kind, the second sets foo to a value), but that doesn't seem any more difficult than remembering the difference between = and eq in Twine -- or whatever. (= and := in some other languages, I think.)
    2. When I do get confused, the Englishy nature of Inform often makes it easier to search the documentation. If I want to know when to use "a thing (called item)" and when to use "(item - a thing)" I can search the docs for the string "(called" or something like that. It seems to me that it'd be harder to do that when you aren't looking for English words.
    3. The Englishy stuff may not be so much easier to write, but it's a lot easier to read. Including stuff I wrote myself (well, except for things like this), and it made it much easier for me to learn the language by reading examples.
    4. All the coding I've done for a long time has been in I7, so I'm used to it.

    Well, that's just a long-winded way of saying diff'rent strokes for diff'rent folks.
  • So hey yeah here's the more I was going to say to Richard. I did know that Twine was a frontend for Twee and even that Twee compiled to TiddlyWiki. Or something like that. And I did wind up creating a start page that was just a link to the real start so I could link back. This might have been kind of annoying given that the challenge I was doing limited me to fifteen passages (and I blew two on my name and the title!) but my writers' had block clamped down completely after twelve so it was kind of a relief. Curious about Twine 2.

    I have no problem with Wordiness and Advanced Footnotes but it seems like soon most people want to do something more and that quickly gets messy. Is there any way to debug in Twine?

    The availability of nonstandard choices is definitely a huge advantage for choice-based games in general. I think existing parser languages are probably a lot better at doing modeling out of the box -- there's a lot of stuff I could do in Inform pretty easily that just makes my head hurt to think about doing in Twine, although that might be familiarity with the language. (It ain't collision detection for sure.) There are a fair number of projects I can think of that would be better in Inform with a hyperlink interface than in any Twine I could make. Although I should ask the more experienced folk: How easy is it to say "Whenever the player visits a page for the second time, add one to this number: in Twine?

    I have a lot of inchoatish thoughts about parser vs. CYOA. Lately at intfiction I feel like some CYOA people have been telling us that parser is going the way of the dinosaurs and we have to adapt or die which is probably true but I'm not sure I care. I do find that in a lot of CYOA interfaces I just start link-mashing which is less true in parser unless it's getting real repetitive. Also one CYOA guy (who has an enormous amount of experience writing parser games) was saying that you can do just about anything you could with parsers in hyperlinks, which I'm inclined to think is BS, partly because all the parser-as-hyperlink mechanics I've seen (mostly involving verb menus and popups on nouns) have been extremely annoying and made me wish I could just type stuff in on the keyboard. Everyone makes saves by hitting command-S.

    But that's another thread.

    Not to sound needy, but did anyone happen to play Reunion?
  • I did play it! There is a degree where I think it's clear you are playing with Twine and figuring out what you can do with it, and you said yourself it was an anti-writers block piece. There's a degree where this, and a lot of other works in Twine, seem almost like they're coaxing the player, naw, c'mon, you didn't get the real ending, you didn't see it all, and that's something which I think diminishes the role of choice in the story. Think of it as a work of parser IF where there's a puzzle where you see a bunch of boxes and there's one that has the key in it. The rest explode in your face, and so the puzzle ends up becoming opening the boxes one by one and typing UNDO if it's the wrong one.

    What I got, plot wise, from this was "you" dealing with the narrator, an old flame you left for "Robert", and now that Robert's left you, you're dealing with this fantasy of meeting with the narrator and making things right. But you're really torturing yourself--this is one of those unresolved relationships that will never be resolved, and so you don't get forgiveness from the narrator--you're gonna be tortured by this. In a way, the invitation to try again is kind of part of the torture--there's a more complete version of events to find, a moment of further honesty, but it doesn't end cathartically. You're asked to search for an ending that, unless I'm mistaken, isn't there.

    You know. I almost see this as a more cyclical piece--I can picture a version which is more generative--which has some more randomly generated elements, perhaps you're meeting the narrator at different places or with different weather conditions, and there are more options to the conversations--all of which end in the same rebuff. This goes to my personal taste of having things require that eventual dose of perspective, but I think a game ABOUT being unable to make things right could be well served by being about this conversation that repeats infinitely with no satisfying resolution.

    People will HATE that though.

    One of the games that gets mentioned in the CYOA vs parser wars is Hollowmoor, which is one of those gimmicky games you mentioned. It might be a great piece of IF, and a lot of the heavy IF crowd, the "I've never eaten that before and I'm never gonna eat that" crowd, they love Hollowmoor, but I'm with you--it's murderous to play. It's an awful interface, because Twine is not well suited to that. I can see it being awesome in parser.

    I think it's a fascinating idea, and one I wanted to try before I saw it had been done before--I also home brewed a very very simplistic parser in twine once as an experiment, but that's all it is. I'm with the parser crowd in that Twines are rarely games, they're rarely IF, and I think it's the ultimate silliness to say, well, my personal definition of "game" is this so you all have to accept that. At the same time, something like Sam and Leo is "interactive fiction", even if it's not parser, even if it's not a game, and I think if you spend your time bending one to fit the other you're not going to have good results. I don't work in Twine because I can't learn Inform--my troubles with inform 6 aside, as you've pointed out, it's probably as easy to learn at this point--I work in Twine because I'm making stuff about broader choice rather than small discrete actions. I mean, hell , putting Debt as the first thing in Fear of Twine was a line in the sand. This is not a game, this is not interactive fiction, this could not be done in Inform. This is a twine.
  • "I'm with the parser crowd in that Twines are rarely games"

    This is like that show You Bet Your Life. Say the magic word and the duck comes down and... you don't want to know what the duck does.
    Post edited by matt_w at 2014-03-15 15:49:56
  • Here we go with the duck penis again.
  • What an ingrate I am, asking for comments about my game and when I get one whipping out the old duck dick.

    So yeah you have the main idea, that "you" is (literally) dreaming of meeting with "I" and making things right and thinking of what happened, but there's no resolution to be found because "I" is really a figment of "your" imagination. She's part of the dream. (Dead in real life, in fact.) So "you" keeps torturing herself by going back and dreaming the same dream again, but it never gets anywhere.

    What I apparently didn't get across (my writing group has told me that being overly clear in my fictional writing is not a problem I have) is that "I" is not an ex but a female childhood friend. I think the comments about "your" looks and awkwardness would come across as a lot meaner on your reading! Not that they're not mean anyway. Robert was actually sort of dating "I" except not really. "You" thinks "I" stopped speaking to her over Robert but that wasn't it at all.

    Lots of this probably isn't to be found in the published piece at all. These are (you may have gathered) characters I've been thinking about a lot and have actually written some read-only stuff about. Everything else I've done/thought about with them has been with the "you" character as the focus. Somehow when I started writing it down it came out in first/second person combined -- in Reunion it falls into a relatively common IF paradigm where "you" is the PC and "I" is both and NPC and the voice of the game but if I do the main project it might be a bit odder (the dreamer would be narrating to an NPC but the dreamer would still be a PC), which I hope would be cool rather than disorienting.

    I was thinking about that cyclic structure of dissatisfaction in conceiving the whole thing -- the thing where NPCs tend to repeat the same quip in response to the same prompt, why? because it's a dream you're trying over and over. Also I was trying to pass the Bechdel test and this time I failed miserably because when I had fifteen passages and was trying to write in a hurry the only thing I could pull out about these characters was that stuff about Robert, but really I think in this case the Bechdel test helped me think of some characters that I might not have written otherwise. If I do a bigger piece it might have a cyclical structure but I'd probably try to allow for a slightly less unsatisfying ending. I'm thinking maybe it could be something where the narrator (the "you" character in this one) is either piecing her memories together or dreaming, if you do a good job at reconciling the story fragments then it's not a dream (and less negative).

    Anyway the formal thing about this is if you revisit a page (except the start) the "I" character starts to complain about repeating herself, and if this happens enough then it opens up an explicit statement of your dissatisfaction before funneling you to the same ending. The complaints are in a separate passage that gets included in all the usual passages if they're being repeated.

    Somewhat by coincidence after this I played The House at the End of Rosewood Street, which has a similar cyclic structure (heavily, if you mess something up you wind up starting the whole thing over again) and... well, I shouldn't say more. It's interesting because it could be done as a Twine but I think it actually needs to force the player to type a bunch of repetitive commands. Actually I missed a lot of the content by not doing incidental actions the first time through but I can't quite bring myself to try again.

    I just downloaded Your Swimsuit Jumped Over Its Own Weathercock, You Liar! which is definitely next on the play list.

Howdy, Stranger!

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