Why is writing interactive fiction still drawing diagrams instead of writing?

Regarding your last point: there are cases where text and logic are intertwined. Things like pronouns, pluralisation, or small variations based on state are very common in IF. I agree.

Handling those in a clean way without re-introducing a lot of inline logic into the prose is one of the problems I’m currently trying to solve.

So I don’t think the question is really “text vs UI”, but rather how much of the story’s structure should live inside the prose itself versus in a separate layer.

I think that example points out the difference between two kinds of logic.

troll blocking a room, gas exploding with fire are simulation rules about how the world behaves.The kind of logic I’m thinking about is closer to narrative state.

Things like:

  • what the reader knows
  • which choices were taken
  • how long the reader hesitated
  • which scenes have already been visited

Those kinds of signals can drive variations in the text without requiring a full simulation model of the world.

So the logic layer becomes less about modelling the physical world and more about describing narrative conditions.

That said, I have tried to represent the troll example with the tool I am working on, and it could be something like this (quick and dirty done :laughing: )

As if it’s possible to write static fiction without keeping a mess of complex structures in one’s head: outline, locations, plot points, characters and their relationships. There are fancy apps meant to help writers keep track of all that stuff. Some of them cost a lot of money. Heck, just the other day someone on Mastodon was asking about fiction written from the start in non-linear formats such as wikis and bestiaries. If anything, interactive fiction simply brings to the forefront that which all literature is made of, and makes it the whole point.

2 Likes

@oldskultxo I only went through the tutorial of your application so I only got the gist of how your software works. Just FYI, in case I’ve misunderstood something critical.

I really like the concept of a central writing area where I can scroll up and down to peruse all content. Where I feel a bit of resistance is the idea that I can’t see the logic at a glance. I have to click on each thing to see what it’s doing, or thinking. Once I check out a different bit of logic, I lose context of the other things that are happening. In a strange way, your logic structure (where you hide everything and only view one piece of logic at a time out of context) is the antithesis of your central writing area concept (see everything, write like a novel). It’s like the swing of authoring goes to the extreme opposite sides of workflow possibilities.

An IF author has to be both a programmer and a writer. This, I think, is non-negotiable.

One idea to consider is making all effects and custom logic visible in a smaller text under choices and such. It would provide a cheat view of what’s happening and maybe that extra info can be toggled. Something to consider, but as it sits now, I wouldn’t know if I forgot to affect a variable unless I explicitly click on the choice to see the effects and scroll that side bar down. You kind of have this ability when viewing the #flowcharts, but it’s not clear as to what’s really happening and by which choice.

Personally, I hate a lot of clicking. I found the amount of clicking to be more than I can handle so I’m not a candidate for your authoring system. Writing involves the keyboard, not a mouse. My dream authoring system would be a nice IDE with a simple syntax highlighter and a minimal, concise DSL… and there are authoring models that come close to this already.

Anyway, your tool is pretty impressive. EPUBs are a great format for fiction on the go. Just be wary of the programming side of authoring and making that experience great too. :slight_smile:

Maybe we should adopt a slogan… “make authoring great again”? Maybe just the acronym? Just spitballing. I’ll talk to the Intfiction PR department and see what they have to say. :wink:

3 Likes

That is interesting.

Writers already keep a lot of structure in their heads or in external tools and IF just makes those structures explicit because they become part of how the text is generated.

I started thinking about this because IF tools seem to assume authors think in structure first.

You create nodes, define choices, connect passages, and then fill them with text.

But many writers I’ve spoken with, seem to think the other way around: they write a scene first, almost as if it were part of a linear narrative, and only later discover where the branches or conditions actually belong.

1 Like

Thanks a lot for taking the time to go try the tool. I really appreciate the feedback.

Regarding the visibility of the logic, there is a way to see the structure more globally. In the View → Flowcharts section you can generate a flow diagram of the story you’ve just created. That view shows the different branches, conditions and variables affecting the flow.

I’m still experimenting with that part from a usability perspective, so comments like yours are very helpful to understand where the friction lives.

One point where I may see things slightly differently is the idea that an IF author has to be both a programmer and a writer. I’m not entirely convinced that this should necessarily be the case. In fact, I sometimes wonder if that assumption may have acted limiting the number of people writing interactive fiction.

Part of what I’m exploring with this approach is whether it’s possible to keep the expressive power of IF while lowering that barrier a little for writers who think primarily in narrative rather than in code.

Thanks again for taking the time to try it!

1 Like

I guess that one of the things I like about working in Twine is that there is no difference between those two things unless I want them to be. The troll blocking the room is just narrative. The gas exploding is narrative. I don’t have to simulate the world if I don’t want to. (It’s both the strength and the weakness of parser games that they are wedded to a world model, and often have to stretch internal logic to represent things not as world state).

So the fact that the troll is guarding the room now might be a matter of setting troll.location to something, but it might just be trollIsGuardingRoom = true, or it might just be a matter of following a different narrative branch where that’s the case.

Of course, the weakness of that approach is that when you do want a more complex simulation you need to write it yourself, but at a core level it’s all about presenting a coherent narrative to the person reading on screen, they don’t make the sort of distinctions that we might as programmers.

2 Likes

Sounds like a dose of the classic “pantster” vs. “planner” divide in writing.

That famous divide is bunk in my opinion. You have to approach writing from both ends anyway.

1 Like

@felixp7 I think where the divide comes from is the initial approach an author brings to the table. But, as an author grows, they begin to appreciate what was once unfamiliar. They evolve. They get better and eventually embrace both… like with any profession requiring multiple skills.

3 Likes

This actually goes back to your original post:

This is the special challenge when writing IF. It’s not a linear novel where you can start on page one and write through to the end. Interactivity by nature requires committing to the fact that you will likely write content that will never seen by some readers.

[!abstract]- Choice of Games Word-counts
This is why Choice of Games thoroughly vets authors before contracting them to write their main games, because it’s often discussed that producing a CoG game of moderate length can require writing enough prose with variations to fill 2-3 standard-length novels. A novel usually falls between 70,000-100,000 words. A CoG of 100k total word count might result in a breezy 20k-30k word playthrough depending on structure. I’ve routinely seen posts in the CoG forum that complete word counts for a significant single game can hit the 200,000 to 400,000+ range.

For this specific reason, this is why it’s wise to figure out game-structure before seriously writing. An author might have an idea of the structure of the game and where they want it to go, but IF requires planning and thought about where agency/interaction/branching happens. That’s not to say you can’t write a screenplay-like “treatment” as a starting place and a guide before structuring a game to work out ideas, but doing the final writing and polish first without understanding the structure is like attempting to paint a house that is only framed in and doesn’t have drywall in place yet: How much paint do you need? Where does it go? Will the parts I spend time painting now be even visible when the house is complete?

This is why IF authors usually start with a diagram, flowchart, outline, notes first because that then gives an idea of what exactly needs to be written. The term for this is scoping a project. There’s no point spending money buying paint and applying it to an in-progress house before you know where it needs to go. Just like there would be no point in typing out your novel on a manual typewriter before acquiring enough paper to contain the words.

That’s because you must also be a game developer (or at least think like one) to create a work of IF; you aren’t just a writer. So you need the hammer and the tools and the typewriter. Or you need to collaborate with someone who will do structure while you churn out prose. Or create your system that handles that. Or somehow hand your prose with directions how to choice-ify it to an AI to figure out…which is a whole other ball of wax.

You’ve developed your own tool to sort of do what you want which is great and you should keep doing that if it works. Later in the thread you describe

So basically, a MYST book. :face_with_tongue: In MYST the lore is a very skilled writer would write a book describing an entire world with as much important detail as possible, and the magic then lets someone touch the book and “link” into that world which is a parallel universe that most closely matches the written parameters.

The actual closest thing to what you’re describing without delving into AI is Inform 7 with its world model and (mostly?) standard language source-text.

Lobby is a room. "You can check in over there."
A reception desk is a supporter in Lobby. The description is "Finely polished, but battered in places."
A stained glass lamp is a device on reception desk. Stained glass lamp can be lit. The description of stained glass lamp is "Probably Tiffany."
After switching on stained glass lamp:
     now stained glass lamp is lit;
     say "Bright light illuminates some paperwork on the desk.".
After switching off stained glass lamp:
     now stained glass lamp is not lit;
     say "The lamp goes dark.".
Some assorted paperwork is scenery on reception desk. The description is "It's not yours. You don't need to mess with that."

Note how as I wrote this out without pre-planning, I had an idea for something that is revealed when the player performs an action, which becomes a new game element I must now implement. This is why scoping a project beforehand is incredibly helpful because diving into coding a game in the brainstorming/first-draft/idea stage leads to combinatorial explosion of saying-yes-to-everything without at least general parameters of everything the entire game will encompass. That’s not to say you won’t have new ideas during any stage of the process, but if your game structure is scoped in as much detail as possible, you can avoid creating unplanned problems that crop up about mid-way through spec-game creation. Midway through I decide I want the player to SMELL THE FLOWER, so now I need to create a new action I hadn’t planned for, and go back and rewrite other sections of the game and add content to approve or deny SMELL DINNER, SMELL THE RECEPTION DESK, SMELL THE LAMP…

That may not be “writing” as an author in the same way you’re hoping, and it produces a parser game instead of a choice narrative[1] but this is why I7 has caught on with many authors and is often despised by coders (understandably) for its frequently wishy-washy nature of how specific tasks can be described and work instead of one “right” way.

[!TLDR] TL;DR:
The “source text” for an interactive work by nature needs meta commands to describe how the world model works or when and how choices are presented to the reader that aren’t written as prose the player will read: After switching on the lamp: [here's what happens] and this requires code of some type: macros like <if $door_unlocked = TRUE>, a complicated natural language model like Inform 7, or AI which often will have its own unusual ideas how to interpret your game based on the description.


  1. though Inform7 can create a choice narrative with extensions and clever source text! ↩︎

4 Likes

TL;DR … XDD

Nope, talking serious: Thank you so much for such a detailed response, this is exactly the kind of discussion I was hoping for, and what I enjoy!

I think I agree with most of the things that you’re saying. Interactive fiction definitely requires thinking about structure, branching and state in a way that traditional linear fiction doesn’t. Absolutely.
Where I think a bit differently is when that structural thinking should happen in the workflow.
Pushing authors to design the structure first that works very well for people who already think like designers or programmers? I am no sure about that.

But the feeling I kept running into while writing my own project was that the moment I started thinking in nodes and conditions, the writer in me disappeared and the developer appeared. So my experiment is almost the inverse: write the narrative layer first, almost as continuous prose, and then let a behavioural layer decide how that text is revealed.

So the goal isn’t really to remove structure, that would be impossible… but to move where it lives in the workflow, so that writers can start from narrative instead of from architecture.
Whether that works in practice or not is something I’m still trying to discover :slightly_smiling_face:

Good luck. It seems a superhuman feat - like building a car while driving it. I’d love to see it work like that!

2 Likes

From my (little) personal experience with developing parser IF, it really is impossible to write the game text linear. It would not be interactive if written linear.

1 Like

If you are curious, this is the car I am driving while building it iepub Reader | Read interactive fiction in the browser !

(Please note that the original work is the Spanish version and that the English one is translated with AI. It is just a way of testing multilenguaje feature)

In my experiment, the interactivity still exists, but allowing the author to write the narrative layer as readable prose first, and then letting the system decide which fragments are shown to the reader depending on state.

From the reader’s perspective the text is conditional and interactive, but from the author’s perspective the writing process can remain closer to writing prose. That would be a nice summary.

Just trying to find out how does the experiment scale, or just die :slightly_smiling_face:

The original CYOA books were printed in such a format, where the reader would need to move on to a specific page based on their choice selections. It is easy to simulate such in a single page hypertext document.

I’m guessing using techniques similar to how additional meaning can be added to the content of a word processor document by using (markup) options, like: sections, headings, bullet list (choices), etc…

And mail-merge related syntaxes / techniques could be used to inject things like: variable output, like user-supplied character names; list looping, like inventory contents; etc…

The translation fades in and out.

[!warning]- Picky first-impression critique
Chapter 1:
First I have about five CoG-style character building choices. Not bad. And then…is that pulsing icon loading the next section or timing me to make sure I read all this? Do I click? Do I wait? Did the game die? Is taking time to craft the next story beat based on choices I just made? I went through a couple times and sometimes it just stays there, sometimes it eventually progresses. Don’t know what’s happening. Sometimes 3-4 minutes have to go by, even though this long series of paragraphs built up as I made choices and I didn’t have that much to read, so hopefully not a hard timer.
Chapter 2:
2240+ words describing me in a bar, my choice is basically “I don’t want to walk/I don’t want to be in the noise of the bar”; I’m eavesdropping on two people, following them, almost getting into a fight, walking back to the bar, and someone named Hugo apparently lets me sleep there. Some of my misunderstanding may be due to occasional lapses into Spanish (I can kind of read, but not always.) No further choices: “So much so, for Berlin.” I wake up.
Chapter 3:
The first thing you see when you open your eyes is the factory ceiling. You would recognize it anywhere. It is hard to breathe. You stir, restless, in bed. Your clothes are soaked with sweat.
[…]
[Now another 1400 words go by without interaction describing my morning - I’ve had a nightmare, interacted with a ghost, had coffee, found out there’s no water for a shower (or at least hot water), gotten dressed, checked a generator, walked outside, window-shopped, perused parts at a flea market, bought a beer in the same bar, found a note with an address and a metal disc in the couch cushion of the bar, examined a cable held to a post by tape, discovered underground sewer tunnels but passed by, found that the metal disc opens an apartment building, climbed the stairs and now get to interact:]

You keep going straight.
You turn toward the brighter corridor.

:face_with_raised_eyebrow:

This may be just a test of the authoring system, but 1400 words describing my entire productive morning and my initial agency is reduced to a binary choice? With no context? I guess I’m visiting the apartment that fits this random disc/key I’ve found, but nothing I’ve read informs my decision to go straight or into the bright corridor.

[!note]
Agency is key in IF. There’s a way to mask a mostly linear story with non-branching reactions and potentially interesting optional internal monologue. But this character did so much without my input until they encountered a simple right/left fork. Where was my chance to decide to do and explore all these things that are just narra-described for me? How important is it I go the wrong way or the right way if it’s important I find the apartment this key-disc thing goes to?
Since you’re interested in choice based structure, it often requires breaking a story down into exploratory “nodes” between narration to get to the next major story beat. Chapter one is character creation, that’s fine. Chapter two is an adventure in the bar, but it just happened - I didn’t get to choose my drink. I didn’t get a chance to actively listen to the conversation of those apparent antagonists and make inferences. I didn’t really get a choice not to follow them - which may be important to the story so if not following the plot is disqualified, why offer a choice to do that? (False-choices can be an effective tool, but they need to actually offer insight and a good motivation to consider a “nope, not gonna follow the plot” choice and a reason to not actually act upon it. And ideally false-choices need to occur in the midst of valid choices to not give the impression the player can just random-click something to advance.)
Chapter 3: Where were all my choices to discover I can’t take a shower, to get dressed, to ponder what happened last night and make the decision to follow this lead? - which then makes sense to cutscene-narrate to get to the next interaction-node. I want to explore the flea market, discover the disc in the couch cushions myself. Maybe consider buying an artisan ashtray from a vendor (useless, but interactive!) and find the apartment. That taped up cable had a lot of prose importance, can we hold up and examine that? - nope, plot treadmill.

If this is how the system decides to create interactivity, I’m not very convinced of the concept. The story seems to be actively told despite interaction from me.

2 Likes

@HanonO (I wrote directly instead of respond I guess) Wow very nice tester! Thanks for the feedback…

First of all… damn!! The language bug was supposed to be fixed in the previous release… it seems a regression… thanks for pointing it out to me.

Regarding the rest of the critic, mainly thanks for spending your time there. That said:

  • Regarding the mysterious icon: it is supposed to be a swipe up icon for jumping to the next chapter. but seems it is not so clear. How would you improve it?
  • Regarding the missing agency. Maybe here is the main friction point about how I planned my story. Really, depending on how you built the character in first chapter, and how you have behaved while reading(velocity, scroll, restart chapter…) the story has already branched but you have not noticed. If you replay the book probably you will read a slight different story, but the same (because that is the kind of way I pretended to achieve for this story, not because is mandatory in the system). So somehow part of that is intentional — I’m experimenting with a structure where the story exists as a continuous narrative and the system reveals different parts of it depending on the reader’s behaviour and earlier choices.
  • It is a bit risky business to do what I am trying with decadence in terms of pure IF audience to be sincere… if you do not see the branching, you could think it does not exist… absolutely true

Decadence is currently functioning both as a story and as a test case for the underlying authoring system, so feedback like this is extremely useful in understanding where the balance between narrative flow and player agency needs to be adjusted.

You can load the book in the editor form docs/advanced demo and see how it is built from a writer perspective (and find the language bug there )

I will take into account this feedback as if it was pure gold.

Thanks again for taking the time to explore it and write this up.

PS: as you have just discovered I am better programmer than writer XD

Reading through a CYOA book start-to-end (or writing one in that order) is not at all something I would experience as “a continuous linear text”, and more importantly, I don’t see how it differs meaningfully from e.g. the Ink script for a similar mechanically-simple branching narrative.

On some level I definitely understand the desire to do something that, in the moment, feels more like writing than programming. But the problem is that the syntax of Ink, with its nested list structure for short branch-and-bottleneck interactions, and its straightforward “divert” syntax for more substantial branches, is (IMO) about as close to that as you could ever reasonably hope to get.

Having poked around in OP’s tool, my takeaway is that the need to perform multiple mouse clicks and interact with two sidebars and multiple input fields just to add a single choice is much further from anything I would describe as “writing the narrative layer first, almost linearly” than the experience of just writing in Ink.

EDIT: To clarify, I feel like for me the two most obvious deviations from a “linear experience” when writing IF are the need to see multiple mutually-exclusive choices (or conditional text blocks) simultaneously visible at the same time, and the inconvenience of not having the “previous” and “next” scene be visible immediately above & below whatever scene you’re currently writing. OP’s tool does not currently solve wither of these problems. I imagine that making an editor for Ink (or another system) that does solve these problems might actually be a worthwhile challenge. My best guess at what this could look like currently is the “editable live preview” idea I floated earlier.

3 Likes