15 Aug 2026

The day touch stopped working

The report was three words: touch doesn't work. Not one button — nothing. On the phone only; fine on the desktop.

Four things looked guilty and weren't. A tap-versus-drag guard. A screen-scaling change. A crash in an animation. A stray finger left registered by iOS. Each one was a real bug, each one got fixed, and none of them was the bug.

The answer arrived from the phone itself: sixty frames a second, steady, touches landing exactly where they should. The app was fine. It was throwing the taps away on purpose.

The ground was eating them. In this engine, every visual element grabs input unless told not to — and the grass, the sand, the road and the sea are all visual elements. Anything you tapped that wasn't a building was swallowed before it reached the game. Dragging only worked if you happened to start on a building, which is precisely what the earlier report had said, in different words.

One line per layer: scenery never eats a touch.

What we changed after

The lesson wasn't "make fewer mistakes". It's that a broken machine and broken code looked identical for hours. The test harness now says could not run when the Mac can't render, instead of reporting twenty failures that aren't real — and the build gate can no longer pass by accident, which is how a bad build got out in the first place.

← All posts