Devlog #2 Branching
Hey there, we're back with another devlog about a bunch of different topics~
But first things first!
Branching is a fairly central aspect of visual novels and there are various ways to go about it. A while ago we read an interesting analysis of some patterns you can find in story driven games, so if you're interested in that it's probably worth checking out!
We thought about how we want to handle branching in //TODO: today early on when we were planning the story, so a lot of that is not exactly recent, but it's becoming more and more relevant again since part two will finally show the actual branching all the choices in part one were working towards!
If you played //TODO: today in its current state you probably know that it's not branching into completely separate routes but rather gives you alternative ways to spend every day. Some things are mandatory, some things aren't.
It's a relatively small degree of non-linearity but it still required some extra work to make sure the events play out smoothly and the dialogue makes sense.
Especially for the optional work days at the bookstore or the gaming sequences we had to think of a way to structure things in a way that made it possible to skip a scene on one day but come back to it on another.
Basically this means that all the optional content will always be experienced in the same order so that events from one scene can potentially be referenced in a later scene. But since we can't know on which day exactly a scene will be seen, anything that directly references other events or a specific date needed to be separate from the actual content of a scene.
So depending on whether you decide to first play games directly at the start or a week into the story, Teal's inner monologue at the end of the scene will differ to avoid breaking continuity.
For example, the same scene can lead to this inner monologue on March 3rd:
"We ended up playing until past midnight."
"I enjoyed it. Suuj is always fun to hang around."
"But I still couldn't really concentrate."
"I couldn't shake the feeling that I was running away."
"But maybe it was still better than contemplating all of this without any distractions."
Or to this one on March 7th:
"At first it was weird playing the game, knowing that Joyce was watching the whole time."
"But along the way I forgot and it was just as usual."
"We actually talked about the game a bit after I logged off."
"And the competition of course..."
"Although to be honest, Joyce was mostly interested in who I was playing with."
It's only a relatively small thing to write but it turned out to be really important to properly fit this optional content into the bigger picture of the story.
Part two will feature some more traditional branching in addition to what we are currently doing but as this is entering spoiler territory we unfortunately can't go into any more detail.
One of the features that people seemed to like the most about //TODO: today is the ability to choose what pronouns or romantic preferences you want Teal to have.
This doesn't lead to any big changes in the story but similarly to what we were doing with the optional scenes, it was still important to us to reference these choices every now and then to really have Teal feel like a character and not just an empty shell for the player to fill (which is a valid approach but not what we wanted for this game).
This is basically done through stat-tracking.
There's variables for pronouns, preferences, and all kinds of other choices that are made along the way, affecting the narrative to different degrees. Whether it's just changing the value of the variable [tThey] to "He", "She", or "They", remembering if you chose to eat pizza on March 10th, or deciding which scene to jump to depending on your choice to spend the weekend with either Joyce or Phoenix.
Variations can be small or insignificant but it all adds up in the end!
The part of the game where Teal's preferences are reflected in the dialogue the most are (without any bigger meaning behind it) probably the gaming sequences.
They can vary quite a bit depending on what you chose for Teal in the beginning.
The driving force behind that is SuujiDenchi (or Suuj) who is well meaning if maybe a little oblivious/unreflected.
In pretty much all scenes he references both gender and romantic interests, often making assumptions (or simply not thinking much about what he's saying), so obviously we couldn't just use the same responses regardless of Teal's gender or preferences.
This generally results in small snippets of optional dialogue like this one:
if not(tPronouns == "He/Him"):
nT "Still not a guy, Suuj"
nF "THat's not what I"
nF "IT'S THE INTERNET"
Or this one...
nF "What, [ttheyre] awesome <3"
if (tPronouns == "He/Him"):
nF "(no homo)"
nZ "Sometimes I wonder why we're friends"
nF "D: *gasp*"
Or this one~
nZ "Given your... interests"
nZ "How does being so ironically straight work, Suuj?"
nF "BL IS PURE OK!!"
nF "Also that's just fiction."
nF "Don't you love it when two fictional guys fall in love?!"
if not (tOrientation == "Straight"):
nT "Why do they have to be fictional?"
nZ "Yes, suuj. Why~"
nF "It's just"
nF "C-can we move on pls..."
These if-statements are usually layered so some of these lines are edge cases that only trigger under very specific circumstances. But it's not much work to write them and we felt like it was worth it to include this extra content to make the characters feel more alive and give the choices some more importance.
But anyway, we hope you enjoyed this week's devlog! Feel free to share your thoughts or suggest topics for future posts.
We'll be back with another one next week!
Thanks a lot for reading and showing interest in our game <3