SMERESKI
  1. PROJECTS
  2. SKILLS
  3. RESUME
  4. BLOG
  5. GAMES
  6. CONTACT

POST · 2026-07-13

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.

gamestestinggodotjazzy
Jazzy Matchy 8s Rain Dance celebration effect washing the screen in blue rain — the effect that was invisible for a week

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.

REFERENCES3 LINKS