I didn't know Twine existed, so I built my own branching story editor starting from an office experiment. Did I just waste my time?

If you want to really enlarge the appeal of your tool, change the data export into something that is already a common format.

If your game exported to twee (the plain text format Twine uses), or to ink, then you have opened up your tool to a vaster community. (Twee is much easier, since the format is literally one JSON data block, a convention for representing nodes as :: name [tags separated by spaces and a syntax to represent links [[link text->destination node]])

For example I made a tool for making PDF/Print CYOA books, Gordian Book, and it imports/exports both Twine archive files and Twee alongside its own JSON format, so you can use Twine as an editor for its games.

Since your games don’t have variables or state tracking beyond the current node, that makes it very amenable for such a representation — and people are always begging for alternative Twine editors with better QoL than Twine itself :slight_smile:

The suggestion stems from a simple pseudo-marketing (lacking better term w/o shifting to Italian) consideration: the story of the origins raises natural red flags for paranoid people (it’s a phenomena endemic to US people), so I assess that is needed something which assuage these doubts.

Also, anglo-saxon people are, to put it mildly, rather backyard on sexuality, and the border between IF and adult IF is different between our peninsula and the US and, in a lesser measure, the UK (cfr. the heated debates on my IFs here…), so this deep cultural difference must be taken in account. (and honestly, I’m tired of chiseling around my main WIP for appeasing foreign (lack of) tastes…)

Best regards from Italy,
dott. Piergiorgio.

1 Like

I actually use Blender quite often, Unreal Engine, Node-RED and other node-based editors, so I totally get what you mean. Node graphs do become unreadable past a certain complexity.

That’s something I’ve been trying to address in the editor. When you select a node, the graph highlights only its incoming and outgoing connections in different colors, reorders them locally, and fades everything else out. It helps you focus on one part of the story at a time without getting lost in the full picture.

I agree that for really complex structures with deep state and variables, a visual approach alone won’t cut it. But I think in this case it’s not really about visualizing code, it’s more about visualizing a flow.
Even at a glance, without reading any content, a graph lets me immediately spot parallel branches, loops, convergences and dead ends.
That’s something I find really hard to get from text or a file-per-scene structure.

Your point about scoping nodes into zones is interesting because it’s actually close to what the planning mode does. You can organize levels into tiers and for each level mark what facts it reveals and what it assumes the player already knows. That gives you a way to reason about groups of nodes by their role in the narrative, not just their position in the graph.
It’s not automated testing, but it goes in a similar direction, and I’d see both as complementary to the visual editor rather than a replacement for it.

It could also be worth adding a way to visually group nodes on the graph itself, like frames in Blender or comment boxes in Unreal, so you can see the scoping directly. Something to think about.

You raise a fair point about the origin story. I can see how a “tracking system disguised as a game” could sound suspicious to some people. It was a completely internal thing at a small office, more of a joke than anything serious. But I understand the perception issue, especially for a different audience.

The Matrix theme is actually the one that causes the most problems in practice. Many people who receive the link, even from someone they know, close it immediately thinking it’s spam or a virus. I’ve been thinking about adding an option for the master to show a welcome message when the player first opens the link, something that explains what it is before the story starts. That should help with both the trust issue and the “what is this?” reaction.

About the cultural differences, it’s something I’ll have to navigate carefully if the platform will grow, especially with public stories and the publication review workflow. For now the review process is manual and I haven’t had to deal with it yet, but it’s good to be aware of it early.

1 Like

That’s a really interesting suggestion. The Twee format looks like a natural fit, especially since my system is purely choice-based with no state or variables.
Adding it as an export option would definitely make the content more portable and compatible with the existing ecosystem. I’d also need to figure out if it could work for import as well, so people could bring existing Twee stories in. I’ll look into it, thank you.

I’ll also check out Gordian Book!

1 Like

Since you are serious about this, you need to consider one thing.

You might want to have the ability to filter out UK IP traffic for stories that are marked nsfw, or make sure that your terms and services are watertight. I know it’s boring and borderline ‘wtf?’, but better safe than sorry since you are offering a paid service. You are already GDPR compliant, so that is good.

1 Like

So this is a multiplayer system? Do the choices that one player makes affects another?

My first impression is that an IF system that supports active intervention by a DM seems like a pretty novel idea to me, but that’s primarily because the demand for it is very niche. Someone who wants to run a game with a high level of human direction would be better off just doing a conventional TTRPG, and conversely, the main advantage of a digital text game over a TTRPG is the fact that it doesn’t require the labour of a DM.

As far as the listed features are concerned, “no inventory, no variables, no state tracking” seems like it would be a dealbreaker for most serious authors (although maybe it matters a bit less with a DM?), and I agree with others who are skeptical about graphical interfaces.

If I was interested in making an IF game that can be run/monitored by a DM like that, I would 100% build it on top of an existing narrative-scripting-as-middleware system like Ink or Yarn Spinner.

3 Likes

Actually I was thinking on suggesting this, but this will have started the Nth flame on law & politics, and the last thing I want is having to explain the huge differences the Italian legal & political system (… and I’m pretty sure no one want to read a comparision between the elegant finesse in the (rather successful) bunga-bunga case with the issue-in-doubt, crude and rather mishandled epstein files case) so if Ijinx want to discuss, we will discuss in private (and Italian), but let’s quetly put off-scope the potential legal issues.

Best regards from Italy,
dott. Piergiorgio

2 Likes

I started IF authoring with Twine a while back, but I stopped because, after 30 or so passages, it felt like I was panning around my story excessively just to access my content. I later tried ChoiceScript and saw the light with a linear writing focus, adding branches where needed and keeping a chapter’s worth of passages in a single file (most stories branch out and return to the main story line anyway). There’s also the benefit of seeing the previous passage content above where you’re typing to appreciate what the reader has seen and build that story like a novel. If every paragraph is on a separate page, I don’t find my writing flows as well.

However, I also prefer stories that have procedural elements so I was creating passages that weren’t linked to anything in particular. The Twine flow chart was essentially a cumbersome file directory that I had to click and drag to pan constantly. I’m fairly methodical about naming my passages and organizing files so a flowchart does little for me.

If your engine is built entirely for branching stories and doesn’t encourage breaking that paradigm, my comments are probably moot.


If anyone from the Twine consortium is reading this, I would love it if Twine just listed the passages, filtered by custom tags and provided a quick search for passage names. This could be an optional view mode.

2 Likes

The best place to suggest enhancements to the Twine 2.x application is its repository’s Issues page, because the project’s single developer is guarantied to see it there.

2 Likes

The Twine consortium is just a single person :smiley:

But I think many people share your view, and that’s why they work with twee files outside of Twine, using Visual Studio Code to edit them, the T3LT extension to track passages (and provide a map if needed), and the tweego compiler to compile them. I know loads of people who say they would never go back to working within Twine.

5 Likes

I’ll just make a few points about visual, node-based authoring;

Although DanF is correct in his criticisms, there are merits to this approach and it does work well providing the game isn’t too big.

But what is too big?

The sort of diagram editors I’ve seen in these newly announces systems, appears to me, rather limited. If you’re going to author with a diagram, the tools will have to be very powerful and robust.

I started authoring using nodes, and very quickly, it became a tangle. So you need ways to organize. The first thing i tried, is putting bunches of nodes inside other nodes. This looked promising; you tidy things away that are connected to a certain place or object, for example.

It didn’t work because i kept having to open and close this arrangement, and when open, it would overlap everything else and i couldn’t see what to do.

So now i author using layers. I urge node-base authoring systems to implement layers.

How do layers help?

You put your “map” on one layer. various objects on another and characters one per layer. Now adding more characters or objects does not increase the visual complexity. If you have a large map, break it up into areas or zones and put them on a layer each. Now i have a manageable workspace and can concentrate on one part at a time.

But how do the inter-layer links work?

Yes indeed, these do not get visualised unless the two layers in question are both visible, in which case everything is a mess.

So what i ended up doing, is inventing an optional “virtual link”. I do this by having a link property on nodes that is a proxy for a real link. It works in the exact same way as a real link between nodes, but it is a property rather than a node connection (internally, these proxy links are converted to real links when the diagram is processed).

Although I’d agree that a large game might well still become unmanageable, i do think that the layered approach allows for much bigger games than previously feasible.

3 Likes

I fixed the scrolling issue :ok_hand:

1 Like

No, a master can create multiple players and assign to each one a different strory, the are independent one from the oher.

Thanks for bringing this up, I honestly wasn’t aware of the UK NSFW filtering situation at all. I’ll definitely look into it. Right now the platform doesn’t have a content rating system as such, though stories already have a tagging system that could be a starting point for something like that. But I need to understand the legal side properly before deciding how to handle it.

I can see how hosting user-generated content opens up a whole set of legal considerations that I haven’t explored yet. Thank’s for the heads up.

Thanks again everyone for the feedback, it’s really helping me see things from perspectives I hadn’t considered.

A few of you raised valid points about managing complexity in a visual editor, so I thought I’d share what a larger story looks like. This one has 124 levels and 213 transitions, I originally built it to stress-test loading and rendering:

The graph supports click-to-focus so you’re not constantly panning around looking for things, and there’s also a table view for levels and transitions if you prefer working with lists.

3 Likes

Thanks, I appreciate that. It definitely started as pure fun and curiosity, and honestly that’s still what keeps me going!

Grazie Piergiorgio, happy to discuss privately. I’ll send you a message.

1 Like

I think the master/player model works differently from a live TTRPG though. It’s less “I’m running a session” and more “I’m crafting a controlled experience for someone specific.”
Whether this is a niche that would interest anyone, I honestly have yet to figure out.

Variables and state tracking are on the roadmap.

On building on top of Ink or Yarn, that probably would have been the smart move if I had known they existed when I started. At this point I have a working system with some features that don’t map easily to those formats (timed choices, pause/unlock flow, session tracking), so it made more sense for me to keep going than to rewrite everything.