A sanity effect that warps how the text looks, not what it says (SugarCube). Where do you stop?

Hi again. I introduced myself here a few weeks back and said I’d eventually bring an actual problem to this category instead of just reading over everyone’s shoulder. So here’s one that’s eaten far more of my time than I’d like to admit, while I’ve been finishing Maximilien, a psychological horror novel I’m building in Twine/SugarCube.

The idea is easy to say and a nightmare to tune. As the narrator loses his grip, I want you to feel his perception coming apart on the page. The obvious way is to rewrite: swap in altered passages, feed the reader different, “unreliable” text. I went the other way, partly on instinct and partly out of stubbornness. In Maximilien the prose underneath never changes. What changes is the way it’s displayed. A sanity variable drives distortion at the CSS layer, applied when the text renders: letters start to drift and tremble, spacing rots, a glyph corrupts for a second and then behaves again. So the words you’re reading are always the real words. The unreliability is in your eyes, not in the text lying to you.

That one choice, distorting how it’s shown instead of changing what it says, cost me more than the rest of the system put together, in two ways I keep chewing on.

The first is the obvious one: legibility. The whole effect dies the second it crosses from “something’s wrong here” into “I physically cannot read this sentence.” I gave the player a slider for the intensity, which helps, but getting the default curve right, so the decay is felt before anyone consciously notices it, took me weeks and I’m honestly still not sure I’ve landed it.

The second one I didn’t see coming, and it went in my favour. Because I never touch the content, only the rendering, the true text stays clean in the DOM. A screen reader just reads the real prose, no matter how corrupted the surface looks to a sighted player. So I basically stumbled into an accessibility win by being lazy about the writing layer.

Two things I’d love to hear about, then. Has anyone here done a deteriorating narrator, or unreliable perception, or plain “sanity,” at the level of how the text is shown (typography, CSS, glitch) rather than by branching into different prose? What held up, what fell apart? And more broadly, where do you put the line between text that unsettles and text that just stops being readable? Is handing the reader an intensity control the honest answer, or am I quietly admitting I couldn’t tune it myself?

I’ll be around in here today, so throw implementation questions at me if it’s any use. Mostly I just want to argue about this with people who’ve actually tried it.

Yohan

I’ve done a very little bit in some of my previous games. There’s some non-animated text warping in Dr Morben’s Asylum, and there’s an animated line in Garden of Earthly Regrets, which appears after you’ve looped through it a few times. I also did a full-screen blur effect in The Green, when you are getting very sick, but it only displays briefly on passage transition.

In all these cases I’ve been very aware of the danger of making things inaccessible by making them unreadable. There’s many more potential players with dyslexia or moderately impaired vision, than people using screen readers, so you have to consider if you are going to make the game unplayable for them too.

I’ve given up on two different printed books because they took the text distortion too far (House of Leaves and Blue Lacuna), I can imagine doing the same on screen.

So I like the idea, but I would definitely not take it too far!

1 Like

This is great, and a little humbling. I didn’t realise you’d already walked this road. What your three examples share is that none of them trap the reader inside the effect: the warping in Dr Morben’s is static so the eye can settle, the blur in The Green only flashes on transition, and the animated line in Garden of Earthly Regrets is gated behind looping. That restraint is the whole lesson.

And you’ve caught me fairly on accessibility. My clean-DOM point only helps screen reader users, the smaller group. A dyslexic or low-vision reader is looking straight at the warped text, and there my tidy little “win” does nothing. So you’ve reframed the slider for me. I’d actually already put one in the settings, letting the player dial the effects up or down, but I’d been treating it as an aesthetic toggle. It’s really the accessibility control. The honest cost is that dialing it down softens the exact dread the system exists to create, so the default has to earn its impact without ever becoming the reason someone stops reading. Low-and-opt-in, not heavy-and-dig-for-relief.

House of Leaves is the ghost over all of this for me. I love it and I understand the people who throw it across the room. Blue Lacuna I don’t know as well, so it’s going on the list, precisely because you bounced off it.

I’ve done this exact thing across a couple of games, most of which I’ve taken down by this point for various unrelated reasons. An example that’s still playable is Protocol, which uses animated “glitched” text that sometimes displays a secondary message beneath the original.

I had a hard time balancing when to use the text effects and when to simply let the narration convey what’s happening and oftentimes, I found the altered text to be tacky and flashy and not really worth all the coding it took when words would suffice. Readability genuinely suffers, especially if you lean into it more, and alterations to the text tend to draw the eye away from the rest of the prose, especially if you’re combining the two on the same page. My advice is:

  1. Subtlety is often preferable from a readability standpoint, and can be more eerie and unsettling than something that jumps out at you.
  2. Use in moderation. Not every page needs it, and if it’s something that’s painful to look at or something that draws the eye all the time, people will get tired of it.
  3. Use in isolation. Particularly if your effects are big or flashy or eye-catching, it’s often more effective than trying to combine with regular text.

Good luck with your project!

4 Likes

Protocol’s going on my list for tonight, the secondary message under the glitched text especially. That’s a lovely trick, because it makes the distortion carry information instead of just being noise.

Your tacky-and-flashy warning aims straight at the weakest part of my setup, so I’ll take it. Your examples with Hituro were all isolated moments. Mine isn’t. In Maximilien the distortion rides the main reading text and climbs with the sanity variable, so I’m doing the exact thing your third point warns against: running the effect on the same prose people are trying to read, continuously. That’s either the most interesting choice in the project or the one that quietly sinks it, and some days I can’t tell which.

The “words would suffice” line is the one I keep circling. The rule I’ve landed on is that if the narration already says he’s slipping, the visual layer shouldn’t repeat it. It should let me not say it. When they both fire at once, you’re right, it’s just loud.

Thanks, this is the useful kind of comment.