The data does not lie

Three screenshots from the admin console, and what they cost me to look at.

Kludoku has been on CrazyGames for a few weeks now. Before that, almost everyone who played arrived at kludoku.com on purpose — they had read something, or followed a link, or come back for the daily. A portal is not like that. A portal player is one click from ten thousand other games, and they gave you a page they did not choose.

I built a panel to find out what happens to them. Here is what it says.

Where the fingers go

The first thing I put in was an interaction heatmap: every touch, bucketed to a grid over the screen, log scale, no identities, aggregate only. It draws two pictures — one for phones, one for desktops — and they are not the same picture at all.

Mobile interaction heatmap: a single large hot area in the lower right of the screen
Phones. One enormous hot spot, low and to the right. That is not the board — the board is the cool blue area up top.
Desktop interaction heatmap: heat spread across the middle of the screen in vertical streaks
Desktops. Warm across the middle, in vertical streaks, with no single dominant target.

On a desktop the testimony column sits beside the board and the whole cast is visible at once. You read, you look, you place. The heat spreads because the attention spreads.

On a phone there is no room for that, so the testimonies live below the board in a scrolling list — and that list is between one and a half and five screens tall depending on the handset and the difficulty. The cast has no other home. If you want to check what the Butler said while you are thinking about the Chef, you scroll, and scroll, and lose your place.

The blob is that scrolling. It is not people playing. It is people hunting.

Where the cases stop

The second panel is a funnel, and it comes from the games themselves rather than from telemetry, which matters: telemetry needs consent, and a game inside a portal iframe never shows a consent banner. Every number below therefore includes portal players. The old ones did not.

The admin console funnel: cases started, won, finish rate and where players stopped, broken down by difficulty and by where they were playing
908 cases. The red column is the one that hurts.

Read the two beginner rows against each other. Same difficulty, same generator, same puzzles.

Thirty-eight percent of portal players who open a beginner case put down no suspect at all, and the ones who leave are gone inside a minute and a half. That is not a difficulty problem. Nobody bounces off a puzzle in 77 seconds because it is too hard; 77 seconds is barely enough to read the board. That is a first-thirty-seconds problem: the game does not make it obvious enough, fast enough, what you are supposed to touch.

Across every difficulty, half the people who quit are gone in 43 seconds, and a quarter in 7.

The column I did not expect

There is another number in that table and I have been staring at it since it appeared: all placed, no accusation. Fifteen on beginner-CrazyGames. Thirteen on medium-CrazyGames.

Those are people who solved the board — every suspect placed, the whole deduction done — and then stopped. They did the hard part and never pressed the button that ends the case.

I have had this reported to me from the other direction too. Somebody on Reddit put it plainly: the accusation panel comes up when the puzzle is already solved, it covers the board, and it adds friction right at the moment you have earned the payoff. My answer at the time was that the panel is a mechanic — in higher difficulties you also have to name the accomplice, the motive, sometimes the stolen thing — and that is true. But the table says that on the way in, some people never find the panel at all, and the thread says that on the way out, the people who do find it resent it.

Both of those can be true. They usually are.

What finishing is worth

The last block is the one that decides what to do about all this.

A finished case is worth four times as much as an abandoned one, measured in whether the person is still there afterwards. Not "engagement", not a proxy — whether they started another case. Everything above is therefore the same problem wearing different clothes: the value is entirely in getting somebody to the end of one case, and the two places we lose them are the first minute and the last button.

What I am changing

The accusation panel now carries the fact it covers. It used to ask "who did it?" while sitting on top of the board that answers the question, so people closed it, looked, and reopened it. It now says, in plain words, which suspect you put in the room with the victim, and rings that face. It reads your board, never the solution — on a wrong board it names whoever you actually put there, which is the honest thing for it to say.

A refused board also tells you which placements are wrong now, in red, for four seconds. That used to be a setting only the most assisted players had. Everyone else got "something doesn't add up" and a board that looked exactly as it had a second earlier, which is the least useful sentence I have ever shipped.

The scrolling is next, and it is a bigger job: a strip of faces under the toolbar on phones, so the cast is always on screen and tapping one takes you to what they said.

What these numbers are not

Two honest caveats, because a devlog that only reports the flattering uncertainty is an advert.

The fine-grained timings — the gaps between moves, the exact step people stopped on — come from a move trace that is very new. Only 28 of the 908 cases carry one. Those rows are a hint, not a measurement, and I have left them on screen with their sample size attached rather than quietly rounding them into a story.

And the heatmap records taps, not intent. It cannot tell a swipe from a considered touch. I read that blob as frustrated scrolling because the list is up to five screens tall and the cast has nowhere else to live — but that is an inference from the layout, corroborated by the picture, not proved by it. The honest next step is to measure the scrolling directly, which nothing currently does.

The data does not lie. It also does not explain itself. It just keeps pointing at the same minute and the same button until you do something about them.

Published · More from the devlog

Play free — no download