We make a chess variant where every piece is a knight. Two kings, and the rest of the army replaced by knights. One rule carries the whole game and it is short enough to fit in a text message: a knight’s check cannot be blocked.
In ordinary chess, a bishop checking from across the board can be interposed. You find a square on the line and put something on it. A knight does not travel along a line. It arrives. There is no square between the knight and the king, so there is nothing to interpose on, and a board full of knights turns that from a footnote into the thing you lose to.
Our page for the game said that sentence politely, next to a photograph of a board, above a list of rules. The Play Store description was worse: one sentence, 57 characters. The install log has eight days for that listing, 20 to 27 October, and a zero on every one of them.
The sentence is not wrong. It is just that reading it costs nothing and teaches nothing. You learn that rule the first time a knight takes your king while you are still hunting for a square to block on. So the page should not be telling anybody. The page should be handing them the position.
Three positions I drew by hand, three rejections
What the page needed was a mate in one, delivered by a knight, where the reason it works is the un-blockable check. I set a board up the way a person does: black king shoved into a corner, its own knights crowding the squares around it, white knights ringing the escapes. It looked like a puzzle.
Because the page was going to be public, and because chess players are the one audience that checks, I wrote the checker before the puzzle. It ports the move rules out of the game’s own engine and then refuses anything that is not quiet to begin with (nobody already in check), does not have exactly one mating move, or has that mate delivered by something other than a knight. Then I fed it the boards I had drawn.
| What I composed | What the checker said |
|---|---|
| Black king a8, its own knights b8, c8, b6; White knights c6, b5, d7 | No mate at all. 23 legal White moves, 2 of them checks |
| Black king a8 boxed in by c7, d8, b8; White knights c6, b5, e6 | No mate at all. 25 legal moves, 2 checks |
| Black king h8 with g8, f8, h5; White knights f7, g5, e6 | Black was already in check. White’s best “mate” was capturing the king. Not a puzzle — an illegal position |
Three for three. The interesting part is that the three failures are not the same failure: eyeballing a board catches none of them.
The third one is the one worth sitting with. It looked right to me. Had it shipped, a visitor who knows the rules would have found the board broken before they found the game interesting, and a page selling a chess variant can survive a boring position but not an impossible one.
What the engine found in sixty thousand tries
So I stopped composing and let it deal. The generator is 192 lines next to the page it feeds. It takes the move rules from the shipped game’s engine and deals random boards: kings not adjacent, two to four black knights, two or three white. What it keeps has to survive every condition: quiet to start, exactly one mate, mate given by a knight, at least three black knights still on the board so the un-blockable check is the visible reason, and at least ten legal black replies so the position looks alive before White touches it.
Sixty thousand positions, 26 seconds, 14 survivors. About one in four thousand. The one now on the page has Black’s king on a6 with four of its own knights around it; White plays Nc7 and that is the game. Black had 19 legal replies a move earlier and not one of them is an answer, because every answer would have to be a block.
The page also has to respond when you tap the wrong knight first, which is what everybody does. Those verdicts are generated too, all 24 of White’s legal moves: one mate, four checks that are not mate, nine captures, ten quiet moves, each with Black’s best reply. Typing them by hand would have been the same mistake in smaller print. The near miss is the proof: d5 to c7 reaches the same square as the mate and fails, because the d5 knight was the one covering b6, and once it leaves, the king simply walks out. That single wrong move teaches the variant better than the rules list ever did.
The part that transfers
If a product’s whole idea is a rule, the page’s job is to get somebody to play the rule, not to read it. Our rules list still exists; it is folded into a <details> under the board, where the people who want it can find it and nobody else has to walk past it.
And the demo should come out of the shipped code. The page cannot now disagree with the game, because every verdict on it was produced by the game’s own engine. A hand-made board, like a screenshot, is true on the day you make it. This one breaks loudly at build time or not at all.
The useful piece was never the search — that part is 40 dull lines. It was the list of conditions, and it paid for itself the moment it rejected a board I was sure about. If you are building the one artifact your pitch depends on, write the thing that can reject it first.
What we don’t know
Whether any of this sells a copy. Zero installs across the eight logged days is the honest baseline, and the playable version of the page went up today, so there is nothing to compare yet. No A/B test, no traffic worth the name. If installs stay at zero, the page was not the binding constraint, and that will get written here too.
Whether a mate in one is the right difficulty is also open. It could be trivial for a club player and opaque for somebody who needs to be told how a knight moves. “Three black knights” and “ten legal replies” are our proxies for the reason is visible on the board, not a measured result.
And it fixes first contact on our own site only. Most installs arrive through store listings, and those still open with the old draw.
The position is live on the Oops All Knights page: tap a knight, it dots its legal jumps, and one of the 24 moves ends it. The game itself is playable in a browser or on iPhone and iPad. If you find the mate on the first try, you already had the rule.
