There are two very different ways a game can be difficult, and players can usually tell within a few attempts which one they're dealing with, even if they couldn't name the difference outright. One kind of difficulty comes from the game being unpredictable or unfair — hitboxes that don't match what's on screen, obstacles that appear with no warning, randomness that occasionally makes a level flatly impossible. The other kind comes from the game asking something real of the player: precise timing, sustained attention, the discipline to correct a small mistake before it becomes a fatal one. Only the second kind tends to keep people coming back.
It's worth separating two things that get lumped together under "difficulty": how fast a game demands you react, and how precisely it demands you think. A game can be difficult purely through speed — reflex-testing, twitchy, rewarding quick hands over careful judgment. A different kind of game can be just as difficult while moving at a measured pace, if the margin for error in each individual decision is narrow enough that concentration, not speed, becomes the limiting factor.
A tap-to-fly game built around rotating obstacles leans naturally toward the second kind, if it's tuned well. The world doesn't have to move especially fast for the game to be hard — what matters is how much room there is to be wrong. If an opening is generous enough that almost any timing gets you through it, the obstacle isn't really testing anything. If it's narrow enough that you have to read the exact moment an opening rotates into a passable position and commit to a precise vertical placement before it rotates away again, the difficulty comes from attention rather than speed, and that tends to feel earned rather than cheap when a mistake happens.
The other half of designing difficulty well is deciding what happens after a small error, not just before one. A design built entirely around avoiding mistakes treats every imperfect input as equally bad, which tends to produce a brittle, frustrating feel. A design built around recovering from mistakes treats a slightly mistimed tap as something that can still be corrected — a beat later, with the right follow-up input — before it becomes unrecoverable. That single design choice changes what a difficult moment feels like from the inside: not "I did something wrong and now I lose," but "I did something wrong, and now I have to fix it quickly."
This is a subtle distinction, but it's the difference between a game whose difficulty feels like a puzzle you're solving in real time and one whose difficulty feels like arbitrary punishment. The former asks for concentration and rewards it. The latter just asks for luck.
Many casual games ramp difficulty upward as a run continues, on the theory that a longer run should feel harder to sustain. There's a real argument for a different approach: keeping the underlying challenge roughly constant throughout, so that a long, high-scoring run is a genuine demonstration of sustained concentration rather than a race against an artificially escalating clock. Under a constant-difficulty design, the question a high score answers isn't "how long could you survive an accelerating game," it's "how long could you stay precisely focused" — which is a more honest measure of the exact skill the game is actually built to test, and arguably a fairer one to reward.