SakeTami
ronchon
ronchon

patreon


Dev Roadmap #5b

3) So, what are some reasons to be excited about 0.8c? Is it all just behind-the-scenes stuff that the average player won't care about?

My answer is: I hope not! The technical overhaul of 0.8c is designed to address some of the major hurdles I've experienced while building TNH.

Forgive me for the screenshots in this post, Patreon unfortunately does not support code blocks as far as I can tell.

Hurdle #1: Repetition

There will only ever be a finite number of dialogue lines that we can write for each character, and I'm sure that anyone who has played through TNH has experienced their fair amount of dialogue and scene repetition.

To shine a light on this, let's examine what one snippet of code looked like in 0.8b1:

This is a fragment of the Ren'Py label that contains the reactions for summoning Jean via text when you're in a relationship with her. There are hundreds of labels like this one to handle all the various interactions with characters under all the various conditions you might be interacting with them (e.g. quirks, love/trust, progress in the game, etc.).

The issue with this is overspecialization - one has to make a reaction for every possible scenario you want represented in the game, and you simultaneously end up with a) a ton of repeated lines (how many ways are there for Jean to say "yes I am on my way"?) and b) a bunch of lines that the average player will never see because they blazed through the phase of the game where Jean is their friend but not their girlfriend. The amount of work is not concordant with the amount of variety you see in the game.

Add on to this the fact that it's not super easy to mod or translate the above label and it really makes you think what 2023 Ron was thinking. Hindsight and all.

Ron of a few months ago decided to rip things up and try for something simpler, easier to maintain, much more modder- and translator-friendly, and ultimately more life-like.

The basis for this new approach is to define lots of smaller, more modular pieces of dialogue and flag them according to what situations they can and cannot be used for. For example:

This is a generic response that can be pulled from any time Rogue is accepting a request from the Player. It is added to the pool whenever Rogue has enough love/trust to view you with some warmth but not enough to want to be in a relationship with you. Simple and not super engaging on its own.

Here's another example:

This one is designated as able to be treated as a secondary interaction that can be added onto another one, and it is marked for when you're asking Rogue to follow you. This means it can be combined with the previous interaction to create a sequence where Rogue first agrees to follow you and then asks where you're going. The simple beauty of this system, however, is that the first interaction could also be combined with a third interaction based around studying, and you'd now have a totally new way for Rogue to react to you asking her to study.

So, let's say we have 20 ways for Rogue to respond in the affirmative, 5 ways for her to potentially follow up in a way that's specific to following, and 7 ways for her to follow up in a way that's specific to studying. That's already 20 + 20*5 = 120 unique combinations of accepting following dialogue and 20 + 20*7 = 160 unique combinations of accepting studying dialogue, but we only had to write and translate 32 unique lines. (I'm neglecting some combos to keep the math simple).

And now if one of your intrepid fellow community members wants to add their own interaction, not only is it as simple as adding a new file that contains something like this:

But they've also gone and increased the number of combos by another N-fold with minimal effort.

Hurdle #2 Nested Interactions and Complex Interaction Logic

What if you're not after variety, but depth? You want to have a prolonged texting exchange with Rogue, rather than just a superficial "how are you?" + response? This system seamlessly supports this as well. Make things as arbitrarily complex as you want:

This all uses common syntax, such that it's now very easy to sprinkle in all sorts of combinations of simple and complex interactions and have them work with each other. Pretty soon you can have more dialogue combinations than you could ever play through.

Hurdle #3 Adding New Characters

I won't belabor this too much longer, but the final benefit of this tech overhaul is that it makes it that much easier to add new characters in a manageable, piecewise format. This new system will help us get you Ch. 2 sooner.

tldr; new way make easier make game


More Creators