Hacker News new | past | comments | ask | show | jobs | submit login
Twine is an open-source tool for telling interactive, nonlinear stories (twinery.org)
338 points by memorable on Sept 12, 2022 | hide | past | favorite | 72 comments



Interactive, nonlinear stories == interactive fiction (IF) == text adventure games in the style of 1980s Infocom.

It's interesting that the Twine website seems to actively avoid calling them IF or text adventures or games, and prefers "stories" instead. Maybe the community feels that those labels are too limiting. (I haven't played any contemporary IF or any Twine experiences, so just observing as an outsider.)


> interactive fiction (IF) == text adventure games in the style of 1980s Infocom.

Not necessarily, infocom style games are just a subgenre of modern interactive fiction nowadays. Infocom style games are enormous and full of obscure puzzles, mazes, etc. that require hours and hours of gameplay. IF has branched out a lot and most stories are written to be completed in less than an hour and typically have less infuriating puzzles or mazes, along with complete help and hint systems.

There are tons of award winning IF stories that involve no real combat, puzzles, etc. and are just exploration of interesting environments or talking to characters. Check out some of the winners from the annual IF competition for a great sampling of modern IF: https://ifcomp.org/comp/2021

Emily Short in particular is someone who really pushes the boundaries of IF, her story Galatea from the early 2000s is a great example of how far beyond Infocom style games IF has gone: https://www.ifwiki.org/Emily_Short and https://ifdb.org/viewgame?id=urxrv27t7qtu52lb


Emily Short, Zarf, Adam Cadre. All masters breaking the boundaries of the IF genre.

Adam Cadre's Photopia [1] made me choke some tears. His 9:05 [2] is darkly comical, and is fun to explore again once you know what it is about.

Zarf's Spider and Web [3] is both a thrilling spy tale and a subversion of text adventure mechanics. For those who are never going to play this game, a minor spoiler. The setting is a fictional Cold War-style spy setting, your "adventure" is you being interviewed by your captor, recounting your story so far; for much of the game, whenever you make a false move -- the kind which would result in your death in a traditional adventure -- your captor will just simply tell you "...except that's not what actually happened, is it?" and rewind the story to the last checkpoint, where something has changed.

Then there's Rematch [4]. It's essentially a one-move game. One move -- that is, one complex multi-clause sentence -- and you die, except if you figure it out. And the kinds of things you can do in that one move are very complex!

---

[1] Photopia: http://adamcadre.ac/if/photopia.html

[2] 9:05: http://adamcadre.ac/if/905.html

[3] Spider and Web: https://eblong.com/zarf/zweb/tangle/

[4] Rematch: https://ifdb.org/viewgame?id=22oqimzgf8snv002


Spider and Web is such an awesome game. I remember playing it years and years ago, possibly circa 2005, on the bus on my way to my first job, on my old and battered Nokia phone, for which I found a IF interpreter somehow.

I remember at one point I managed to overcome a tricky part of the game, then lifted my head and smiled to myself, satisfied. Then I saw that the game printed at me "You smile in the darkness" and I went "wtf". People stared at me. At that time not too many people were busy with their phone during bus rides.


Varicella is amazing, too. (the game, not the infectious disease)


Yes! I forgot. To be honest, there are too many cool and genre-breaking IF games to list.


There are two games I have really enjoyed but that I'm unable to find again

- A single room game where you have to get rid of your inventory (it's a lot more compelling than it sounds)

- Having to figure out a constructed language in a tribal setting to get medicine for your son


I think the second one is The Gostak, by Carl Muckenhoupt:

https://www.ifwiki.org/The_Gostak


I definitely want to play the game you just linked and thanks for alerting me to it. However, in the game I was thinking of, the parser and descriptive text are in English, but characters speak in the constructed language and only respond to it


Both sound interesting. I've played enough IF to know just "getting rid of your inventory" is a promising starting point!


There is a distinction between Twine games, or choice-based games, and parser games, which are typically called Interactive Fiction games. One provides a pre-set list of choices at branches of narrative, while the other provides a world that the user can explore and manipulate via a palette of text commands.


Wait, Twine is _not_ for making "text adventure" style games with a palette of text commands? Somehow I was getting the idea that it was, but when used for shorter stories authors just didn't want to call it "text adventure". but we're actually talking about a different feature set of the game software entirely?


Twine does not lend itself to making Infocom style games easilly. It is more like Choose Your Own Adventure books in that at its simplest it is "do you want to go left or right?" style choices. However, you can use javascript to program more complicated styles of game play.


Yes - Twine is for what's called "CYOA" (after the old Choose Your Own Adventure book series) or "choice based" interactive fiction. That type of IF has its origin in gamebooks, and generally consists of sections of text that you move between by picking from a list of choices ("to open the door turn to section 223, to run away turn to section 543", that sort of thing). Digital tools can add more dynamic elements, but generally it's rooted in the experience of reading/playing a Fighting Fantasy or Choose Your Own Adventure type gamebook.

The other main type of IF is the "parser" kind - that's the Infocom style where the UI is a bit like a command line, you type arbitrary commands, and get dynamic feedback. The main tool used nowadays for making that type of IF is Inform 7, though there are others.


The IF community has included choice-based games in "interactive fiction" for a long time now. They're eligible for IFComp and everything.


I've made several Twine stories, participated in IF jams, and see folks using IF/stories/&c fairly interchangeably. It could certainly be that Twine keeps a naming convention in order to be neutral, but as an IF writer and therefore more or less a community member, it's not something that I see people fighting over as opposed, say for instance, to the roguelike community.


There was one pretty bizarre Twine story about genetically engineered ponies. It was subtle, you didn't realize how gross it was at first reading. It was brilliant. Do you remember the name?


You're probably thinking of Horse Master: The Game of Horse Mastery.


Yes! That one. Thanks!


The IF community will absolutely go to the mat insisting that Twine, etc. is IF in the same sense as parser games. They are judged side by side in the biggest annual competition.

I get that they are trying to be maximally inclusive, but frankly I have no idea what they are talking about. These things are plainly apples and oranges. And there is great value to be found in both.

But saying these are directly comparable is roughly analogous to saying a point and click adventure game is comparable to a "quick time event" game. I think the IF community cedes too much ground with respect to parser games in the name of having a bigger tent.


This wasn't always the case -- there was a considerable amount of resistance to the idea that choice-based games were equivalent to parser IF in the community as recently as 10 years ago.

There were a few related factors that led to the current state, where if anything parser IF is more on the margins than choice-based IF.

The first is that choice-based IF is far, far easier to write, debug, and release than parser-based IF. The barrier to entry is _much_ lower.

Because of this, the diversity of authors participating in the IF scene expanded quite a bit. Parser-based IF skewed really heavily toward the programmer demographic. Twine and other choice-based options brought in a lot of LGBTQ and minority authors who wanted to tell their stories but didn't have the programming background to do so with a parser-based engine.

Twine and other choice-based engines were designed web-first. They incorporated graphics and other visual features enabled by the browser environment while parser-based engines were still effectively stuck in VT-100 emulation mode.

Finally, choice-based IF is also often better at simulating interpersonal interaction and conversation than parser-based IF.

Parser-based IF stagnated for quite a while. Graham Nelson's Inform 7 programming language was a work of staggering genius, but it was a closed-source one man show for a very long time and didn't update to keep pace with what the choice-based engines were doing.

Inform 7 has just recently been open-sourced, with a rearchitected pipeline that should allow for some interesting integrations and enhancements. It will be interesting to see whether there's still sufficient interest around the tool such that the community brings it into the modern era. I certainly hope there is!


Fascinating survey of how we got here.

I would also note that, whatever the API, parser games still leave something to be desired in the year 2022 compared to what is now possible with other gaming frameworks. I'm thinking of indie games like Papers Please and Beholder. But also Twine, et al.

The parser interface accomplished beautiful things in its heyday, but now feels to me to be needlessly constrained and difficult. I think there is a future for text-based IF. I think there are entire genres of games that are only (theoretically) possible with that interface. But the usual <verb> <object> + inventory puzzles formula is just too narrow, too time-consuming to play anymore. And I say this from a place of love.


In my parser game _Aotearoa_ (https://ifdb.org/viewgame?id=lrbpmlpsknsgvgem) I worked really hard to provide player affordances such as an in-game interactive tutorial, exhaustive noun and verb synonyms, plus keyword highlighting so players literally _couldn't_ miss a primary interactable item.

Even with all of this, people still got stuck, and properly pacing a story that uses an unconstrained parser world model is an exercise in frustration. But I disagree that the games are too narrow. If anything, the frustration comes in because they are too broad. No other game genre has the sheer hubris to present the player a story, tell them they are the main character, and then challenge them to literally do anything they can think of to overcome the puzzles they are presented with. "I got this," they say, presenting that blinking cursor on a blank line. "Anything you can imagine, I can handle."

Of course every parser title fails spectacularly at this. But the best ones fail in impressive and fascinating ways. S. John Ross's _Treasures of a Slaver's Kingdom_ explicitly limits the number of verbs down to six, but succeeds in creating a game environment that is enjoyable on both the direct and meta levels. My own _Aotearoa_ does a lot to remove the normal barriers to entry to interactive fiction, at the cost of some immersion should you choose to use the cues and tutorials. Andrew Plotkin's _Hadean Lands_ and _Spider and Web_ both have high-stakes, complex stories with detailed world models. This is usually the recipe for frustration and failure in parser IF, but both titles implement wonderful unique, _diegetic_ mechanisms to motivate failure and experimentation.

I would hate to see parser IF go away. I think its innovations have been more valuable and influential than many people realize, and I think there's still a lot more that blank line and that blinking cursor have to offer.


There was a google talk several years ago that highlighted the trend to allow and encourage diverse people, programmers and non-programmers, to write their own interactive fiction, "Everyone Can Make Games Now - Carolyn VanEseltine" [0].

[0] https://www.youtube.com/watch?v=C4Kl8RaLuMk


I think you're right to a certain extent -- CYOA and parser-based IF are not the same thing and appeal to different (albeit overlapping) audiences and creators -- but also that the IF community is correct that CYOA is a perfectly legitimate form of "interactive fiction", as are a lot of hypertext works. Just like the roguelike community has found, it's healthier to expand the territory than to fortify the walls. Parser-based IF is better off than it's been in years and the increased energy brought to the community by Twine and other CYOA systems is a big part of that.


My GR writes IF stories and I think even though there’s ressemblance with the text adventure games it seems that they manage to differentiate themselves by being closer to books and mainstream fiction. It seems like the average IF is read more like a book and less like a game.


Sorry to be off topic, but what’s a GR? Just a typo of GF? I searched but the only thing I found was Golden Retriever and I don’t think they are very good at writing fiction in general.


Whoops yeah, it was indeed GF*


I've always wanted to try using Twine to prototype a product.

Apropos of nothing, here's Julia Evans using Twine to teach debugging practices: https://computer-mysteries.netlify.app/slow-website.html


SPOILER WARNING

Hmm. I chose network tab, changed the dns and won. I don't think I experienced interactive fiction.


Twine is nice, I am using it to create the story for a game with visual novel elements in Unity.

I'm using a heavily modified version of Cradle[0] and it works great.

However, I personally had a bad experience while trying to contribute to Twine. I encountered a severe bug that made me lose all my stories and only happens if you have Twine in another language than English. I read the code, identified the issue, wrote a detailed issue and sent a PR[1]. I got no answer until a year later saying "not applicable anymore" since the app basically got a rewrite.

At least I'm happy a lot of it got rewritten however it still seems as unstable as before, with random crashes and stories that can disappear on their own.

[0] https://github.com/daterre/Cradle

[1] https://github.com/klembot/twinejs/issues/898


Yeah, Twine devs definitely treat it like their own baby. Not a bad thing per se but act accordingly.


There's a text-based representation called twee. You can use tweego (https://github.com/tmedwards/tweego) to convert between twee and html/twine.


Any tool that allows lots of people to make stuff easily is good in my book. And Twine has allowed to do that. Twine has helped professional production companies to sketch interactive stories before full blown production: Black Mirror's Bandersnatch used Twine to sketch the choices that players can make (https://www.pcgamesn.com/black-mirror/charlie-brooker-twine). That also means that there is a lot of bad stuff too, but that's fine, that's part of what a good tool allows to do.


I used this a couple years ago for teaching a college class on intro to game narrative class and I didn't want to assume any of the students knew any programming. Since many in the class weren't gamers some of them came up with some interesting topics like trying to do a story-based game about whether a college football player should go pro or not or getting ready to go out for the night.

Since then I've contributed to his Patreon and out of all the people I support on patreon he is the most consistent with sending out weekly updates on his progress.


Related:

Twine is an open-source tool for telling interactive, nonlinear stories - https://news.ycombinator.com/item?id=21771022 - Dec 2019 (50 comments)


See also: https://storyboard.viget.com/ which was built to provide an even easier editing interface for choose-your-own-adventure style fiction.


I've enjoyed using Inklewriter myself.

https://www.inklewriter.com/

It's free software, and I've always enjoyed using it.


A nice game made in Twine is "Chuk and the Arena" [0]. I'm playing through it with my young son currently (having completed it myself before). It's not extremely easy but not very difficult either, and rather forgiving. It's also kind of sweet in a way. Except for the obvious bad guy(s), people you meet are kind, they help you and each other.

Another very impressive Twine game by the same author, 4x4 Archipelago [1], was fun to play, a randomly generated RPG with multiple plots. But it's wayy too long and requires some grinding.

They're both kind of like standard IF in that you have an inventory, you can use stuff from the inventory to do things and complete tasks, and you have to rely on hints to figure out what to do. Also both of them have no time-based elements and it's very obvious where to click.

[0] https://ifdb.org/viewgame?id=2fa5imp327k84ox

[1] https://ifdb.org/viewgame?id=nmg570ycyex4mty0


Neat! I don't see many fiction-based apps on HN and I love it when I do :)

Shameless plug, but: I've been working on a site with similar aims (although not exactly the same): Storylocks.com [https://www.storylocks.com/]. It's not exactly IF, but a simple way for multiple people to write stories together. Fiction writers unite!


I run a competitor: https://fiction.live/


A fun recent twine project (not mine):

"Malefactor” is a strategy text game in which the player takes on the role of a Sauron-style Lord of Darkness with the goal of conquering the world."

https://adeptus7.itch.io/dark-reign


If you're into a weirder side of twine I highly recommend works by Porpentine.

https://en.wikipedia.org/wiki/Porpentine_(game_designer)


In my list of ideas is one for a Twine-compatible Twitter-Adventure Maker[0]. Remember those "choose your own adventure threads" that showed up on twitter and got viral a while back[1]. It would be great to be able to use Twine for authoring those.

[0]: https://github.com/captn3m0/ideas#twitter-adventure-maker

[1]: https://www.linkedin.com/pulse/media-trend-choose-your-own-a...


Has anyone experience using this or similar tools for e-learning / in-house "edutainment" solutions? Like walking a stakeholder through how to write a user story, or introducing how to do a certain task with in-house systems?


I've been on the receiving end of that.

Place I worked at a few years ago, used to have some mandatory courses about various of the company's concerns, like security practices, contract handling, or various other stuff. They decided to make it "fun" by having the courses done as some form of interactive thing which could certainly be done with Twine/Sugarcube.

It was hit and miss. I think there's a very thin line between writing something "entertaining" and something "awfully cringe". Some of the stuff was ok, but sometimes they veered a bit too much into writing some weirdly fantastic story over explaining whatever it was they wanted to explain.

So I'd say it is a valid tool in itself; it can work. But as with any other tool, the result depends a lot on how you use the tool.


Not to be confused with Meta's "twine" cluster management system (which isn't actually called that, except where trademark lawyers can hear).

https://research.facebook.com/publications/twine-a-unified-c...


There's also PyPI package upload tool:

https://github.com/pypa/twine


This is amazing. It's exactly the sort of thing that I can use with my children who enjoy digital literacy (i.e not social networks) but crave play based learning.

The language, the tooling.. it all communicates effectively with the way my children think and approach things. Imagine a world of interactive literacy (note: not IF!)? This is a gamechanger for us.


Thanks for bringing this to my attention, I had totally forgotten about this when Charlie Brooker spoke about it as plotting out Bandersnatch.

I am a Senior Learning Technologist and currently working with lecturers for good ways for plotting out virtual home visits etc for health workers, and this is going to be a much better solution than what I was constructing at the time.


Maybe off topic but after playing with some of the examples, I can't help but find some of them jarring from a UX standpoint. There is not often consistent indication of what is interactable or clickable, and half of the pages are time based (with no indicator of progress or waiting) and half of them require clicking.


I've been looking for something Twine-like, but with non-HTML output. Does anyone know of an alternative tool that can output structured data, like JSON or XML?

Essentially, I'd like to find a non-technical-writer-friendly UI for interactive stories that can output data appropriate for consumption in a game/app/system.


Ink from Inkle[0] can output to JSON. It has a Unity integration and I have used the JSON format in a custom game engine. Their editor (inky) makes it easy to play through the story as you write it. I used it for NPC dialogs for game.

[0]https://www.inklestudios.com/ink/


Awesome, thank you!


I did exactly that a while ago combining Twine with Twison [0]. A non technical friend would write the story with Twine, compile to a JSON file, and I'd parse it with a quick script on build time so I could display it on a React web app (that I'd then make apps with, with Cordova). There were a few things that could be improved in the process but it all worked incredibly well after I hooked everything up!

[0] https://github.com/lazerwalker/twison


Nice, was your friend able to just use the Twine web API then? (no installation / setup required for their tooling)


It's been a while but I recall he'd run Twine locally with the Twison plugin. Nonetheless, I believe you can easily add Twison as a plugin to the Twine web tool. That way you'd only need your game designer to send you the updated JSON file (or possibly commit it to a VCS) after working.


I'm building a tool called Elm Story (https://elmstory.com) that exports to JSON. It's in early access.

https://gitlab.com/elmstorygames/schemas/-/blob/master/0.7.0...


Awesome, I'll take a look!


Ink


We really need to get working on more advanced AI based tech for this kind of stuff. Content of all kinds in general. Especially in games where we can create large open worlds, but have corp run devs/pubs who don't want to spent time filling those worlds with stuff.


So, this plus StabilityDiffusion equals?



Thank you so much for sharing this! I've been waiting for years for such tool. Is it Friday yet?


I believe this was used by Charlie Brooker to build that interactive episode of “Black Mirror”.


I fail to find an example.


Some of my clients’ grooming meetings that veer too far off into yak shaving could use this tool…


itch.io has got you covered https://itch.io/search?q=twine+game


Also https://itch.io/games/tag-twine since it gives different results.


Is this a "call-and-response" AI writing assistant? Or most just to structure a story you write yourself? I went digging on their website but couldn't find the answer.


Twine is a platform for writing and reading interactive stories with a branching structure. It has nothing to do with AI.


It helps you structure the story, no AI involved.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: