How to make slowprint better (+ranting)
Slowprint. Rolling text. Hackerman animation. Whatever you want to call it.
It's a popular little detail to add into your game to make it look cooler, and it definitely has done it's job before. In certain contexts, slowprint actually adds a lot in terms of how the game feels and plays. Though, there's a huge issue that seems to have gone unnoticed, that it makes everything slow down.
Now, that might seem obvious at first; after all, it is called slowprint. The problem I'm talking about however is when an implementation of slowprint rolls slower than my reading speed. Then it just feels like a Mario auto-scrolling level that was nerfed way too much.
I understand that some people read at a slower rate than others, and some read quicker. That's fine, but I have yet to see a project with a "scroll speed" setting to account for us who
have had 300mg of caffeine listening to speedcore while running a 5k marathon at an average of 251 mph can read at a faster rate. Heck, this is a feature in the original Pokémon games, so it shocks me that nobody else has done this.
At this point, you might be asking: how could I implement a scroll speed option in my game? To answer that, let's take a look at a typical implementation of normal slowprint:
function slowprint(str) for every character C in str print C wait a little bit maybe print a new line if wanted
The key part of this block of code is the "little bit" part. How long should we wait in between characters?
If we want to make this a setting, we'd make it a variable, and set the variable according to how slow the user wants the text to roll. This is usually calculated by taking the reciprocal of the reading speed in characters per second. The average fluent English reader can read at 180 wpm = 15 CPS = 66ms in between characters. This conversion is imprecise because it assumes all 5-letter words, but even then, it's really slow. Furthermore, with fluency comes compression, and we can typically make out a word even if a few of its letters are missing:
Ths artcle ws wrttn on Rpl Tlk, whre evrythng is awsom
Because of this compression that we do, we can make our scroll speeds faster. 20-25 CPS is a really common scroll speed, likely because it's around the 0.05 second delay mark. Most games that I consider to have too slow of a scroll speed are usually around this area. Bumping the CPS counter up to 35 significantly improves the reading experience, so I'd say make that an option. Anywhere in between could have their uses as well.
So, why should you care about this? It seems like way too small of a detail to have to even worry about.
I don't blame you for thinking this at all, but to be 100% honest, scroll speed can make or break your game for people like me. More than once have I been disappointed by games that have wonderful gameplay, but feel slowed down by the slowness of the text.
Also, don't you dare think about slowprinting a paragraph of text. I want to see it all at once, so I can take it at my own pace.