A middle ground between achieving ambitious ideas and remaining grounded

I’m curious to see if I’m the only writer here who comes up with the most fantastic absolutely fun idea to add to their story only to start that section and realize it is a coding nightmare that makes me hate writing my game. Ambitious ideas are great as a reader but have been potentially deadly for me as a writer.

My specific issue with this problem is in regard to branching choices. Replayability is obviously vital to success with these types of games and I try to have certain sections of the story branch out tremendously. A conversation for example— one choice branches into three which branches into three more and then another three and so on; writing one choice in each branch is a great strategy to ensure a single play through is long enough…until I have to go back and fill in the million other choices and branch those off even more to make each play through relatively even. This typically causes a burn out and results in the first option being choice paradise while the other two responses are “one-and-done, back to the main story” because I didn’t want to replicate the convoluted mess from the other choice.

Burn out is a serious issue in these cases that can cause writer’s block or worse. I’ve been in a situation where I’ve committed too far to a side quest in which I didn’t want to delete what I’ve written but am too uninspired to code the second half. The only solution was to take a break!

Now that’s just a very specific example, so I’m curious if anyone has faced anything similar and how you personally overcame that hurdle. Do you avoid these ambitious ideas entirely? Create a simpler version of it? Go for it and just delete it if it’s not working? I’m curious about the approaches other writers take and would love suggestions or conversation on the matter!

The goal is to create the choose your own adventure game I would love to play, but not at the expense of ruining my love to write.

12 Likes

I do not. I just modify as I go honestly. Sometimes that means simplifying my vision, sometimes that means grinding my proverbial face in the code until I get it, sometimes that means I reach out for help here in the community. It depends on the writing, my mood, and how much time I can prioritize to writing.

Also just going to share this. This is not directly 1 for 1, but hey, I hope this is inspiring for you.

12 Likes

Write what you love I’ve heard it is a piece of good advice.

As for managing that infinite branching problem:
You could tailor your branching more tightly to serve a more specific purpose other than to branch out so the player has infinite options. Plan in advance, how limited your choices will be before you start (A mind map would be a helpful tool here), and try not to rail off too much.

You could do a test by coding a tracking variable and ask players to share the code they get after playing so you can know what branches are the most played and expand on that and contract on the less used ones, or limit the branching so it is more deep and less broad.

As for me, I think I just try to force myself to keep writing. If I see that what I’m doing goes too broad I may try to get back and see it from above and think of a more efficient way to do it, or if I’m derailing from what I want to achieve.

Taking breaks also works for some people.
There’s a saying in my language, I don’t think it exists in English but here is the translation. “scabies with pleasure does not itch” What means applied to this case is that if you love to write and you get burned out because of that, it shouldn’t be a bad thing. In other words, the consequences of doing something you like shouldn’t be bothersome.
Maybe I learnt to live burned out so I’m not a good parameter to compare.

6 Likes

As I’m starting my first story, the branching issue is something I’m genuinely worried about. Not so much branching out a lot, but one or two very long branches and then a couple of very short ones. I wonder if that is something that will bother players.

2 Likes

I tend to have more writing nightmares than coding nightmares. Like, getting a brilliant idea and then failing to put it on paper (or digital equivalent).

4 Likes

Players can’t see the branching, they don’t know what choices they missed. What matters at the end of every playthrough is the playthrough they did.

You can theoretically make a linear game with choices that lead up to roughly the same outcome and the player could still feel he had agency on the choices. That will fall on replayability though.

3 Likes

I know people can’t see the branching, but I was thinking more in the lines of people either replaying the game to see where other options lead to. Or if a game is (somewhat) popular and people start discussing it and it turns out some people have more game/background information/etc to talk about then others based on the choices they’ve made.

3 Likes

Well, yeah, when replayability is in play maybe balancing the branches should be something to have in mind. Unless you are willingly wanting not to do that for some reason.

1 Like

So I posted this and something came up immediately afterwards…bad timing :grimacing:

@AChubbyBlackCat That was absolutely something I needed to read! A reminder that it’s okay to fail and that failure leads to success is great advice, thank you for that :slightly_smiling_face:

@Loudbeat I haven’t heard of that saying before, that’s also fantastic advice. I actually hadn’t considered using a mind map before despite being a visual learner. That could be a game changer, thank you for that!

@Sylvio I’m on my first book here myself so I can’t tell you how to improve branching quite yet, but I can say from the perspective of a reader that it’s best to even the branches as much as possible. It’s absolutely not the do all end all because there are plenty of people like me who prefer a good story over perfect choice distribution and replayability. There’s plenty of time to improve that aspect and make our stories even better. Rooting for you!

@LiliArch Oh yeah, I totally get those too! I think coding is just more frustrating for me because it doesn’t allow for quite as much creative thinking to get out of a funk. At least with how my brain operates.

4 Likes

This is something that might come in handy for you then.

There’s another tool I use now called Obsidian. It is free and you can create a canvas that is esentially a mind map.

The tool is, from my point of view, awesome for taking notes and creating this sort of thing, having it all organized by tags and links between notes and everything you put in there. I don’t know how people can create a cs game without one of these.

There are many out there, so you might want to take a look at some of them to see what adapts better to your needs.

5 Likes

These are great! Especially with the part of the game I’m working on right now, it’ll be a big help. Will definitely test out the different options, thank you!

Writing a choice game solely by winging it was a first game mistake and will definitely not happen again :joy:

3 Likes

Just be realistic about people’s suggestions that you can follow and you can’t follow, don’t make too many sub plot, ad make release schedule so you don’t lose motivation, plan the world before you write it on story, release big demo first because let’s be realistic many people’s lose motivation when only little amount of people’s see their wip and so you can see where part it work in story and what part don’t work

Example many game of thrones theme wip died because they keep add sub plot and explanation on thing.

2 Likes

I’m probably not someone who should be giving advice considering my first WIP has been on hiatus for far too long. I am absolutely in the same boat, and as someone with a decent enough background in programming, I have been finding ChoiceScript a bit limiting in some of the features that I wanted to implement.

Some of the features that I want to include:

  • A save system which generates unique “savecodes” based on the choices made and can be shared and loaded by others by pasting it in
  • A “novel mode” where you can read your playthroughs again (or others) by removing choices and following valid “savecodes”, I figure that this would be a cool feature to share your favorite playthroughs with others

Definitely check out the ChoiceScript wiki and forums for help with and example usage of the available commands.

With choices in games, I use the following terminology:

There are several types of choices that can be made in games and what kind they are depends whether you actually need to create a new branch or not. We might have the following types of choices:

  • A “fake choice” where the result does not affect the plot but may change the player’s status, inventory, or other variables.
    • These changes still affect the plot by potentially enabling/disabling or hiding/showing future options in choices, showing additional dialog or editing how dialog is phrased such as with multireplace, or making other similar small insertions or variable changes down the line.
  • A “true choice” where the narrative branches such as accepting a quest at a guild, you would necessarily need to write the details of what happens on each quest. However, all of these choices do not necessarily need to have the same length or level of detail.
    • Choices that result in easy versus difficult paths might allow for shorter writing on the easier path (or on the difficult path if the player can die, preferably sending back to a checkpoint).

If the narrative truly branches and you need to reduce the number of branches to make it more manageable, you do not necessarily need to remove the choices entirely. This can be done through what I call “rooting”. This is where multiple branches return to a single point which is similar to what *fake_choice does.

With conversations, there are several techniques to make them more manageable from the games that I have played.

  • Repeated *fake_choice scheme. The dialog progresses the same except for a few inserted paragraphs that differ depending on which option is chosen, but the conversation flow remains the same.
Repeated Fake Choices
Conversation start.

Shared dialog part 1.
*fake_choice
  #Option 1
    Unique text after option 1 is selected.
  #Option 2
    Unique text after option 2 is selected.
  #Option 3
    Unique text after option 3 is selected.

Shared dialog part 2.
*fake_choice
  #Option 1
    Unique text after option 1 is selected.
  #Option 2
    Unique text after option 2 is selected.
  #Option 3
    Unique text after option 3 is selected.

etc.
*finish
  • The *disable_reuse scheme where you have a *label that you return to.
Disable Reuse and Label
Unrepeated text.

*label conversation
Repeated text.
*choice
  *disable_reuse #Choice 1
    *goto c1_text
  *disable_reuse #Choice 2
    *goto c2_text
  *disable_reuse #Choice 3
    *goto c3_text
  #End Choice
    *goto end_choice

*label c1_text
Long discussion 1.
*goto conversation

*label c2_text
Long discussion 2.
*goto conversation

*label c3_text
Long discussion 3.
*goto conversation

*label end_choice
Continue here.

*finish
  • Shared *label rooting. This is where your many choices are reduced in branches instead of increasing by grouping similar options.
Shared Label Rooting
*temp suboption 0

How are you doing today?
*choice
#Fantastic! My day could not be any better.
  *set suboption 1
  *goto positive
#Great. Smooth sailing and all that.
  *set suboption 2
  *goto positive
#Good. Everything is going smoothly.
  *set suboption 3
  *goto positive
#Alright.
  *set suboption 1
  *goto neutral
#Okay.
  *set suboption 2
  *goto neutral
#Meh.
  *set suboption 3
  *goto neutral
#Not too great. I've been better
  *set suboption 1
  *goto negative
#Badly. When it rains, it pours.
  *set suboption 2
  *goto negative
#Terrible! Today is literally the worst day of my life.
  *set suboption 3
  *goto negative

*label positive
Good for you! @{suboption Let's hope it lasts.|Let's hope it gets even better!|Let's hope it goes from good to great!}
*goto after

*label neutral
Just another day, eh? @{suboption Well, it could be worse.|The good and the bad are just about even.|Well, it could be better.}
*goto after

*label negative
I'm sorry to hear that. @{suboption If it's any consolation, it could be a lot worse.|If it's any consolation, it could be worse.|Well, at least it can only get better from here, right?}
*goto after

*label after
This is the main shared branch.

*finish

There are countless more and you can combine or nest the above in infinite combinations to create nice branching conversations without exponentially increasing the amount of code and dialog required. You can also use *if statements and conditionals to allow for even more sophisticated branching and rooting. Of course, the more unique interactions and paths, the more complex things will become, which is why many stories tend to only have a few branches at a time and use other techniques to give the player more interaction and ways to impact the story.

As can be seen by my WIP, I am a prime example of what you describe.

I also have been having some issues with the styling of the game finding myself wishing for additional fonts (like monospace to make ASCII art), additional justification and spacing options for text, and more control of background color and font color (to make the reader appear more like a terminal). I went on a long side quest looking at Twine and SugarCube, though they require additional knowledge of HTML, CSS, and JavaScript in exchange for the additional freedom.

I have also gone on several side quests because some of the IDEs and Hosting Sites for ChoiceScript did not support the latest features, properly display images, etc. As a result, I wrote a bunch of Python scripts to automatically convert images to URI format to embed in the compiled HTML, etc. Luckily, it seems that some of these changes have been fixed since then… though others have been introduced. Hopefully, I will be able to finally make some progress without feeling too bogged down by ChoiceScript.

Knowing what I know now, I would not avoid these ambitious ideas entirely. However, creating a simpler version is definitely an option, especially to keep the ball rolling and avoid overexerting yourself. For me, my biggest problem has been separating coding and ambitious ideas which are impractical in ChoiceScript from writing. I know that I can make a version in ChoiceScript, but it will be quite slimmed down and not quite what I wanted. But, at the same time, the alternatives require a lot more code and time to pick up.

Right now, I am planning to separate my structuring and coding from writing by having all of the text in separate files and using *gosub_scene and variables to bring the text over. This will allow for me to write what I want and then structure and balance the options later on and to separate debugging from writing. Of course, I am still quite stuck on how exactly I will be writing from the perspective of an AI and none of my current ideas translate that well into ChoiceScript. I am lowering my ambitions for my ChoiceScript version to be realistic, but my story ambitions remain. I definitely released my WIP too early and should have fleshed out the story a little more and reigned in some of my ideas.

I recommend planning out your ideas however you need, whether it is through some kind of flowchart, mind map, or other format. Once you have the skeleton planned out, I think it will be easier to fill in the details, eliminate/combine unnecessary branches, add interesting ones, and otherwise keep making progress. Definitely read more ChoiceScript based games from Choice of Games and Hosted Games to see how they handle branching and conversations to balance complexity with replayability. Hope this helps.

9 Likes

First thing to say is that this isn’t true. Devon Connell has written one of the most successful HG series without conceding much to actual variability. The same is true of Zachary Sergi’s work, which was super-successful on the CoG side while also being on rails. People loved it for the genre and the long playthroughs, and most didn’t care that the length came with lots of fake choices.

From everything we’ve heard, the percentage of CoG fans who play as completionists exploring most or all routes is probably low (if vocal on the forums); the percentage who play just once, enjoying the sense of options but not wanting to reread to chase them all, is probably over 50%, and certainly enough to sustain a successful series.

So when/if you write branchy games – as I am absolutely doing! – do it for yourself and for people who share your tastes and will enthuse over it with you. Don’t do it just because you think it’s needed for success. It’s not, and it’s better for you to write what you enjoy rather than what some imagined audience demands.

In terms of making it through the branches without burnout, my own top tip is not to run ahead down one long branch to the end. Resolve each choice block fully before moving on to the next; try as much as possible not to leave empty branches TBD behind you. If you’re burning out on that, rethink whether you need to write differently to keep each branch enjoyable, or just to prune your ambitions down to a finishable level.

If I wrote a path all the way to the end and then had to go back and fill in a million gaps, I’d burn out too. Finishing your choice blocks as you go is a discipline that helps keep your game at a manageable scale. (And anyone who’s read the XoR2 WiP can hopefully confirm that it’s consistent with a game that’s still pretty ambitious.)

12 Likes

I would echo this but with the caveat that the illusion of choice is what’s important. It absolutely can and does come up in reception and reviews if the illusion is broken in some significant manner (ironically even when the game is genuinely branchier than most) so that players generally feel their character had minimal agency or voice and they might as well have been reading a novel sans the interactive bit. But, key word here is feel. It is highly possible to create the sense of agency and interaction I’m talking about without the actual parameters of the story expanding all that wildly just as it is possible to have a generously varied plot that gets endless complaints about its “meaningless choices.” (Then again, there’s games that have been widely acknowledged as deeply railroaded yet were strong enough in other areas to still be regarded positively overall, so as always, who truly knows the most consistent secret ingredients outside of luck when it comes to the finicky nature of art!)

For instance, Sordwin from the Evertree Saga is another example of a hosted game that does not branch much basic story beat wise yet was popular. I bring up this game because I’d argue it has the narrowest plot of the series and has also received the highest praise (All of them are praised, Sordwin is simply the fan golden child). In particular, it technically ends the same no matter what. But it utilizes the rooting method @Speedcubing_Gaming was referring to well in that there’s a plethora of smaller scale avenues to get to its mandatory scope bottleneck points. Additionally, there are a few consequences that can be mitigated in terms of workload due to length of time said consequences last. For one, a character with an inherently impermanent role in the series has the potential to be imprisoned or killed. This does not create major branches for the author to address later but will contribute to the players feeling that they had autonomy.

To present what little advice I can, I’d say if you’re wanting to put rails on bloat whilst still offering choices, one method can be thinking carefully about motivation. Say as an illustration, your main character is confronted by police. Instead of inserting the choice to tell the truth or lie to the authorities, perhaps focus on why an otherwise honest character would choose or be forced to lie there and then give the player the ability to express their character’s angle.

5 Likes

I still think that guy 6 years ago knew what he was talking about!

This is nothing we haven’t talked about years ago, but the reality about choicegames is that we’re about quantity over quality* of choices–if your only measure of quality is how much it shifts the course of the rest of the narrative. If you write a choice that a player wants to click, that resonates with them or sounds cool or makes use of some stat they’ve specialized in, THAT is the dopamine hit that’s going to have them reading your next page, even if they only get a couple custom paragraphs and a golf clap for making that particular choice.

8 Likes

Mind maps are cool but boy I feel like Id get a motivational famine if I ever actually made a mind map and saw what I’m dealing with like the example you provided. Ignorance is bliss after all.

2 Likes

Oh but I create the mind map as I write the game, I don’t do all the mind map before starting to write.

If you don’t zoom out like I did you only see a small part of it. Though the one I showed here is just an unfinished chapter of about 10k words, and the upper part is notes or max/min stats I wanted to have at hand. I have bigger ones. But yeah, I love to be able to see all the choices and ifs together. It helps me a lot to track stuff out and have a vision of the paths that could come to a node I’m writing or not. Color coding according to stats, events, triggers, or whatever you need also helps a lot to see things at a glance.

I don’t know about others, but for me, it can maybe start easy, but at some point, it reaches a level that starts to get unmanageable by the RAM I have in my brain.

2 Likes

Completely agree with this! Especially since I’m the opposite and not great at coding myself, the difficult part is definitely figuring out how to implement an idea using limited resources. I’ve scrapped a few game ideas before starting them in the past, such as a reality show with eliminations that would be extremely difficult to implement using choice script.

Although I didn’t realize that I have a habit of trapping myself into figuring everything out using what I felt comfortable with instead of opening up to different techniques. I never considered the difference between branching and rooting, seeing so many alternatives to choose from is a huge help. Thank you for such a detailed response! Best of luck with your game!

This is a really good point, it’s very tempting for me to fall for the vocal majority or self expectations! I imagine a story with passion will be better than a forced one.

Another good point, I think that mapping everything out will be huge for fixing this problem I had. Just having a better perspective on what needs to be done rather than going in blindly is huge mentally, even just imagining it now. Thank you :slightly_smiling_face:

Great advice. Using your example, just having that small little comment on a past decision makes my journey feel unique in the Evertree Saga. It’s so easy to forget that sometimes when you’re only viewing the writer’s perspective of a game you’re working on and not from the outside.

Being told my attunement has increased is still one of the greatest feelings ever :joy: Thanks for the response, huge fan of your work!

5 Likes

I feel I’d get so obsessed about making the perfectest (and prettiest) mindmap I could come up with that I’d forget to do anything else.

2 Likes