Unread text in a different color?

Honestly, disregarding why (wow my game would just be random words in bright colors everywhere), the single thing that would interest me with such a feature would mean that there would have to be some way that the game could see if and what you had played it before.

So there would no longer be single saves, just one long save that you keep restarting? How would you know which one you would want to load/replay later? I think choicescript games are far too complex compared to visual novels to pull that off.

That being said I would love to be able to use something like that to breach the 4th wall and do an undertale.

3 Likes

There would only be two colors: The default color, and the color for read text. Maybe even let the reader choose the colors, so that the reader is comfortable with it. Or, instead of color, it can be a different font.

I don’t think there would be different saves, kind of like how achievements track certain scenes, maybe something can be used for this? I don’t know.

You’d need one achievement like thing for each playthrough.
That’s what I worried about above with the mass of small details that might change.

In theory: all of the concerns brought up here are infinitesimal in comparison to the benefits, like saying that farms are bad because sometimes a few shafts of corn are the wrong size. I think it would be really interesting and useful if you can opt in or out of it.

In practice: Extremely difficult to implement. Lots of required manpower. The outcome is only a novelty and would be a jarring change compared to the games released thus far. I don’t think the company’s priorities should be changing a fundamental aspect of the ChoiceScript language just for this particular novelty.

5 Likes

For one of my games, I forget which, I hacked Randomtest to only display new text in random playthroughs and […] if it was text that had been seen before. This just required using a “hash table,” a lookup table of what text had been seen before. Hash tables don’t require storing the text itself (text is essentially converted to a short number for lookup), so the memory usage was not bad. If you wanted it to be smart about different MC names not really counting as different text, that would require a little more work; but as it was, just hashing the whole screen of text worked well for me. The only change for your use case would then be to drop appropriate html tags around the repeated text.

8 Likes

Sometimes skipping to unread text is also useful for big branches as well – one series that comes to mind is Zero Escape, which has many branches and (bad) endings. Even though you can often jump to a certain section in the game, you’ll often come across dialogue you’ve seen before – it’s nice you don’t have to reread through everything if you don’t want to (especially if you’re rereading because of a bad end), and can instead see what else the game has to offer. :thinking:

2 Likes

What about random multireplace?

Well, hashing the screen’s worth of text would result in its not being recognized as repeated until the exact screen of text is repeated. But, you could go code line by code line or paragraph by paragraph if you preferred.

I can only speak for my own stuff, but that’d be a massacre… too many random things, too many tiny bits

I’m actually saying it would work fine with random multireplace, and you’d just have to decide what the appropriate level of chunking is given your degree of randomness.

3 Likes

In some cases every other word?

I think people are thinking that every choice is either new or read before, but in my case it’s a section there half a sentence there and so on. A small paragraph can depend on several variables.

I still don’t understand how the game would be able to recognize what was on your old saves in a new playthrough. I can’t even see what achievents have been done before. Or am I missing something because that would be sweet?

3 Likes

Aye, there’s the rub - you’d need to write to a file to have the info survive reboot. I don’t think they usually have that permission, so that would be a conversation with CoG for an official game.

2 Likes

Side note: the reason Ren’Py games and other visual novels can allow you to skip text you’ve already seen is because there isn’t nearly as much variation.

Visual novels are long, but they’re mostly the same game, each playthrough, with only a few choice options added in here or there.

And…a lot of VNs don’t even allow you to skip what you’ve already read (here’s looking at you, Voltage and Cheritz), so you’re still stuck either using a total fast forward and possibly missing something or just tapping through everything.

While I think it would be cool, I also think the coding aspect of this, for games with this many variables, would be hellacious.

3 Likes

It isn’t bad to implement in JavaScript. But, it just occurred to me that you could implement it in ChoiceScript itself, by passing all your text to a gosub that stored the info in a homemade hash table, which you could create with arrays or an indexed string.

Now that would be crazy!

Wouldn’t that be the thing we mentioned about artifically upping the wordcount?
I’m not certain the staff checks for whats in the files, just that they are all there.

I don’t think it would be much code. Just weird code.

If you move all your text…
And the official wordcount does not count code lines (we still should ask rachel to confirm)… you’d double your wordcount

Unless it’s changed I was fairly certain the “marketing” word count includes code.

1 Like

We should ask directly.