2026-07-13 · 5 MIN READ
I see no rain
Every line of logic was correct. Both feature flags were right. Three hundred checks passed. The player saw nothing at all.

There is a hidden combination lock on the title screen of my match-three game. Dial in seven raindrops and you unlock Rain Dance: ambient rain that drifts down over the menu forever after, a small reward for a player who went looking. I built it, the tests passed, I shipped it. Then I dialed the combination myself and watched absolutely nothing happen.
I want to be precise about what was broken, because the answer is not what a week of debugging instinct expects. The effect node checked the settings flag correctly. It checked the unlock flag correctly. The combination matcher fired. The unlock was granted and persisted to the save file. The particle system was configured properly and would have drawn beautiful rain. Every individual unit of logic in the path was right, and I could prove it, because three hundred-odd assertions across thirteen probe suites said so.
The bug was that the rain lived on the wrong screen. The effect node had been added to the gameplay scene, back when it was built. The combination lock lives on the main menu. So the code that grants the unlock and the node that renders it were never alive at the same time. Nothing threw. Nothing logged. The unlock was real, saved, and permanent — and the object that would have shown it to you did not exist on the screen you were looking at.
That is a composition bug, not a logic bug, and it is a genuinely different animal. My probes construct objects, call methods, and assert on return values. They are fast and headless and they never, ever build the scene graph the player actually looks at. Which means this entire category — the right component absent from the right screen — is not something my test suite got wrong. It is something my test suite is structurally incapable of getting right. Adding a fourteenth probe suite would not have found it. Adding a thousand would not have found it.
The fix was one line: attach the effect to the menu as well. Zero business logic changed. I also made the unlock reload the screen immediately, because the second bug hiding behind the first was that even once the node was there, you would not have seen the rain until you next launched the game — a reward with a delay long enough to read as no reward at all.
The uncomfortable conclusion is that headless tests, rendered golden images, and a human actually playing the thing are three different instruments, and none of them substitutes for another. I had been treating a green suite as evidence the feature worked. It was evidence that the parts worked. What proved the feature worked was me, dialing seven raindrops on a real device, and finally seeing weather.
- 01Jazzy Matchy 8s — play it in your browser
Seven raindrops on the title-screen dials. The rain shows up now.
/games/jazzy
- 02The combination lock on the title screen
What the hidden layer is, and why most players never find the door.
/blog/jazzy-secrets
- 03The hive reported false-done
The other flavour of the same disease: a green check that was never anchored to reality.
/blog/hive-false-done