That’s often how it ends up being. I have an idea for one, very clear and funny path (through a scene, not through the whole game) and then I look at back at the choices and think, oh dear, what am I going to do with them?
The simplest option is to branch and bottleneck and steer the scene back on track. Ink is particularly well set up to do this with its “gathers”.
The other option, which is much harder, is to come up with alternative branches that are equally good.
I’ve always favoured the latter option. But it’s a lot more work, and if you go on doing it forever you’ll never finish the game.
This problem has, for me, been ameliorated by the fact that, to date, much of my choice-based writing has been in done collaboration with friends. If I write an option I have no idea what to do with, I give it to one of my co-authors to do. They invariably come up with something I’d never have thought of. It’s often just as good and sometimes better than the original through-line.
But writing collaboratively also produces the opposite problem. One friend in particular has a fondness for throwing me “curveballs”, giving me choices that deliberately subvert or veer off at wild tangents from the direction in which the scene was naturally trending. It’s then my problem to try and make sense of the resulting mess. We have an unspoken policy of never altering anything the other person has written.
It’s a fun game and one we’ve now been playing for more than forty years. But the resulting story reads like a acid-fuelled improv show in prose form.
I highly recommend writing collaboratively. It turns a solitary craft into a social activity. The project I’m describing is wild and undisciplined, but with a little discipline it can yield great results—just look at the Lady Thalia series. And my own, G. C. Baccaris’s and Duncan Bowsman’s Excalibur.
Anyway, this has been another of my digressions. Just call me Laurence Sterne. But my point was, I think, that writing collaboratively can take the pressure off writing branching narratives and I really think more people should try it.
Even when I am writing an “adventure game”, where paths map not to storylines but physical locations, I have the same issue. How do I make this other route interesting? There’s a thing over here, but why go there? It becomes worse when, in game terms, I want equal value out of those alternative branches. If turning left gives you X, then turning right should give you Y, which is different, but equally useful as X (unless I want to write “bad choices”, but I try to avoid that unless the character is getting killed).
Yes! I tend to find with parser games that the map remains malleable throughout the process, with rooms being moved around, amalgamated or removed completely right up until the very end. I think the policy of having at least two interactable things per room is a good rule of thumb. You can start writing a parser game by drawing a map, but that map might look completely different by the time you finish.
Yeah, I’ve always wondered if Aaron borrowed that idea from Harlowe or if “It’s like an ASCII-art gift tag!” is something that just tends to occur to some of us of a certain age range…
I love the idea of collaborative chaos as well — it probably produces surprises that a single author would never invent.
An IF jam around something like that would actually be pretty fun… I wish my English was better so I could participate in something like that, but for the moment… I could at least enjoy the result
I feel that. I started as the classic “Submit an intent to enter IFComp game with only a whiff of an idea when intents are open” and smart authors are already gauging their progress on a thing they’ve been working on a year and dropping out when I was just getting started!
Plunging in with an idea and no destination is a lot of fun and can occasionally be good just for practice and brainstorming. I’ve learned my lesson though - if I want to actually finish something I need to scope. Otherwise it’s like trying to fill a bucket of water with no bottom - the project will take all the ideas and effort you put into it without ever coalescing into an expected or defined volume.
The thing to consider is why is there a choice there at all if you don’t have content for it? If you’re forcing a choice into a moment only for the sake of interactivity you’re probably doing it wrong.
Sometimes you gotta make the player do a thing, and sometimes that involves not offering a choice.
The solutions I’ve found - the plot needs the player to do A-B-C-D to get to the finale. The route between A and B is where you allow exploration. The player is told in node A they must complete Three Trials to pass node B and continue the story. So you write a little mini adventure about how the player completes all three trials, hopefully allowing them to be completed in any order and they have all the choice. Once they do that, we bottleneck at B - the player doesn’t get a choice - it’s important to the plot to progress past B and now there’s a new mini adventure to complete the route from B to C.
Another trick or cheat I use - The player only has one choice for story reasons, but I want to simulate interactivity. What I do is give the player multiple choices that are basically different ways to roleplay the choice they need to make.
In a conversation with a friend I don’t remember meeting:
“Hey, Hanon! Nice to see you again! How’ve you been doing?” Sorry, I don’t remember you.
“You don’t remember me, do you?”
Becomes
“Hey, Hanon! Nice to see you again! How’ve you been doing?” Good! Good… I’m…fine. …Dad? I’m sorry, I don’t recall your name. I’m great. And you are…?"
“You don’t remember me, do you?”
All of those can lead to the same line of dialogue/outcome. And notice I can relay backstory via the variations of choice text instead of narrating to the player directly they don’t know this person talking to them.
If I’m clever, I can vary the text based on what variation is chosen:
“Hey, Hanon! Nice to see you again! How’ve you been doing?” Good! Good…
“Good! Yeah!”
I’m…fine.
“You look fine.”
…Dad?
“Uh, no, I’m not your dad.”
I’m sorry, I don’t recall your name.
“We met at Nell’s party last October.”
I’m great. And you are…?"
“Hmm.”
(Then I bottleneck to the single node continuing.)
The mysterious man raises an eyebrow. “You don’t remember me, do you? I’m Greg.” Right! Greg. I’m sorry, I’m bad with names. Forgive me, it’s been a while. I remember you. From Nell’s party! Greg.
(which again all lead to)
“I guess I didn’t make that much of an impression. Anyway, I wanted to ask you something.”
[plot continues where I want it to go]
If I’m even more clever, I can increment relationship variables from these selections for later despite this being a basic linear conversation. Greg might be more friendly after our back-and-forth if I chose more polite options, or subdued if I didn’t.
I’ve kept the dialogue going where I want, no choice the player could make affects anything significant so the conversation doesn’t become a Time-Cave, but the player feels at least semi-engaged with a range of choices that is a bit more substantial than Continue…
This discussion is being really useful and has provided a lot of things to think about. I think I have reached a nice idea o f how I could re-build the tool so that I can reach the way of keeping prose on a hand, logic on the other and put the writing experience first, for shaping later! I am already starting, I can wait… thank you guys for your help! Every comment is a lesson for me!
I don’t know, I suppose it depends on an approach, and what you know, because there are a lot of tools out there.
For example, let’s take Twine.
You can use their app with all the pretty graphical elements and graphs if you really want to, but personally I just fire up VSCode with my two badboys, Twee3 Laguage Tools + Twine (Twee 3) extensions, and just start coding. It’s fast, it’s scalable, and pretty with all syntax highlighting you would ever neeed.
Everything is additionally tied to version control and a project wiki, just like mr.Thorvalds intended.
As for your software you’re building, it looks great and I really wish you all the best with your hard work! However, as a person that really likes to add as much interactivity as possible, I fear that I’d hit a wall with some limitation sooner or later.
You can put a Continue… in a CYOA book, but no one will like it
In the sort of adventure book I was talking about, the choices are the bits in-between the mandatory sections. Imagine you are playing a Fighting Fantasy book. You start at the dungeon entrance, you are going to inevitably pass through whatever choke point I’ve designed (like the bridge in Warlock of Firetop Mountain), but the multiple routes in between are the choices the player has. (FF books were not hot on narrative choices, or indeed conversation, just choices of rooms).
If you just have a straight path, there are essentially no choices.
The Choose Your Own Adventure books are full of them. Not having grown up with them I decided to buy a few out of curiosity and I was surprised at how many pages had just one option at the bottom. Some of these chains of single-choice pages terminated in a bad ending which made it even worse! In the Fighting Fantasy books they are much less common.
I’ve tried to avoid having lots of click-to-continues in my current work but it’s next to impossible. I don’t think they’re a bad thing per se, but a lot of them in a row with no choices can be frustrating for a player, so I use them sparingly. Sometimes a reflective choice can be a good alternative, but perhaps it’s also good to give the player a break from making decisions for a while.
I confess that when I say CYOA (as a type of book), I don’t mean the eponymous series, which didn’t really sell well here, but Fighting Fantasy / Lone Wolf / etc. which were the things I grew up with.
Speaking only for myself, I have no trouble wearing both hats at once. I can write a paragraph, then write some code, then go back to writing another paragraph. In face, since a given paragraph may quite normally include some logic switching to control what prints to the screen, it isn’t alternating two forms of writing; it really is both at once.
Technically CYOA “Choose Your Own Adventure” is a trademarked brand for the book series, but I think it’s gotten the “brand name is eponymous” treatment.
When I mean the brand, I usually say CYOA™. That’s why the generic “choice narrative” is usually preferable when you don’t mean the books.
I realised you were using the term in the general sense, but having read a few of the Choose Your Own Adventure series recently I was struck by the irony of your comment. I don’t know of any other gamebook series that has quite so many choice-less runs
Thanks for the vote of confidence in our game making abilities!
EJ and I both write and code in equal measure which is very much not the norm, even in collaborative IF spaces. Most collaborations seem to have a dividing line between the person doing the writing and the person doing the programming, which TBF is also how this works in professional game development. That seems to be how pro spaces avoid this problem, anyway – the writers and programmers are separate people using separate tools so these collisions just don’t occur.
That said, with more people laying out their process in here I’m definitely seeing two rough camps of early game development: those who start with a story and those who start with game structure. I am very much in the latter camp as all my game ideas start with a gameplay concept first that the story is then built around, so it’s a little hard to wrap my head around how the story-first camp operates, but clearly it’s a sizeable chunk of the community! Definitely food for thought on how different tools might help different people out. [1]
I do get story-first ideas, but without an anchoring game mechanic they tend to end up as static fiction and not IF. So I guess I’m not any better at the “how do you add choices to this” part? ↩︎
I think there might be some survivorship bias on this forum, though. The majority of hobbyist IF authors are going to be at least comfortable with both writing and coding.
This is true, but I also think legacy platforms are running into modern development scenarios.
The world has changed. IF development has not kept up.
So there is a fork in the road. In one camp, there is a strong belief that the “art” of Interactive Fiction is in both coding and writing (Plotkin, Short, Finley, Ingold, Gentry, et al). In the other camp is the belief that the writing could supersede the coding (Twine).
For parser-IF, I also believe the coding aspect can be reduced tremendously with code generation (with GenAI or just traditional automation tools).
This thread has inspired me. An actual epiphany of sorts on where I want to take the Sharpee editor. It was going to be template-based, but now I think it might be inference-based.
Yeah, my experience is that no-code/low-code IF tools tend to have a pretty low skill ceiling, and at least in this community, people tend to migrate to other systems over time. Will LLMs change that? Color me skeptical; even if an LLM is doing the implementation, imo the skills needed to design a game and write a useful spec are the same fundamental skills needed to do the coding in the first place.
With the caveat that I haven’t taught programming specifically (all my teaching experience is more on the humanities-and-social-sciences side of things), I suspect the difficulty in learning to code lies more in “what techniques and idioms do I use to approach this problem” than “how do I write a do-while statement”. As a professional software engineer with decades’ worth of IF knowledge, I imagine you’ve gotten good enough at that part that it’s become automatic for you; but I suspect a novel author with no programming experience will struggle more with the design and spec-writing than with the syntax of Inform/TADS/etc. And if you just tell Claude “write me a program” with no further details, you’ll get a program, but you probably won’t get the program you wanted.