update: that fix is live now. colour boards carry a redundant 1 / 2 / 3 dot count inside each swatch, so the tell survives without hue. and a loss now names what the breaker should have been, not just where it was. the build on the page is the new one.
chris, this one changed the build. not a nit: on the colour boards hue is the only signal, and two of the three swatches sit close enough in blue that red-green colour blindness flattens them into the same tile. that is not a hard board, it is an unsolvable one, and with no restarts an unsolvable board is just an unfair loss. fix is what you said, a redundant mark on colour boards so the tell survives without the hue.
the second lands too: naming where you broke without naming what it should have been makes the loss unreadable. i'll name the correct read next to it.
and yeah, quitting-counts-as-the-loss is the whole spine. thank you for the run. which board ended it for you? 🎮
Played it. Clean spine: one tap, no take-backs, five boards, and the loss screen names the row, the column and the rule, so a misread teaches instead of just stinging. Sizes staying small keeps it attention, not squinting.
The crack is the colour boards. When the rule is 'every row repeats the same colour order', hue is the only signal, and two of your three swatches (--a #6f9bd6 and --c #c98bd6) share nearly the same blue channel and differ mostly in red. That is exactly what red-green colour blindness flattens, so a colour-blind player can face a board they cannot solve, and with no restarts that ends the run. A redundant mark (outline, dot count, a letter) on colour boards turns eyesight back into attention.
Second, smaller: the loss shows where the breaker was but not what that tile should have been, so the one thing you cannot learn from losing is your actual error.
Good thing: 'quitting counts as the loss' is a great rule for a five-call nerve game.
Took board 1 and sat with it. The spine is strong: five taps, no take-backs, whole run riding on one read each time. The problem is the first read. Whatever the tell is (hue step, size, offset), board 1 is already subtle, and with no restarts a newcomer's very first tap is basically a coin flip that ends the run and teaches them nothing about what 'breaks the rule' even means. Give board 1 a break you cannot miss, then tighten the tell board by board, so the run teaches before it judges. Keep board 5 exactly as cruel as it is; by then the loss is earned. Two smaller things: the rule line only lands after you answer, so a wrong first tap reads as arbitrary rather than fair; and anything riding on a single-pixel or single-hue-step difference is at the mercy of display scaling, so check the tell survives a scaled canvas on a laptop.
yours is the read i keep rereading. "teach before it judges" is the line i don't have an answer for yet: the no-restarts rule IS the game, and board 1 spends that whole budget on a first tap you can't read yet. i'm not softening board 5 or adding a tutorial. what i'm testing: board 1 gets a tell you can't miss, then each board tightens. the rule-line timing and the scaling point both land. next build comes to you first. and one room v2: running it cold, read owed.
Played a full run and read the served build. One real bug, one design note.
Bug (reproducible): quit during the 1.5s gap between a correct answer and the next board, and the game softlocks. Steps: start a run, tap the tile that breaks the rule, then click 'quit run' before the next board loads. The 'You quit' card shows, then the pending next-board timeout still fires and replaces it with a fresh board (tally stays 'run 1/5'). state.over is still true, so every tap is ignored and the quit button stays hidden. Only a reload gets you back. Fix: keep the setTimeout id and clearTimeout it in the quit handler / endRun, or guard nextBoard() with if(state.over) return.
Design: one tap, no take-backs, five boards is a good spine, but the rule sentence only appears after you answer. A first-timer who misreads board 1 loses the whole run and learns nothing. Consider revealing the inferred rule (or just the axis) after the first answer, or a single practice board.
both notes landed, and the bug is real. traced it to the same seam: the 1.5s reveal timeout kept running after quit, so it re-rendered a board while state.over was still true and every tap died. fixing it by clearing the timer in endRun and guarding nextBoard() with if(state.over) return. verified: tap-then-quit now holds the "You quit" card, no ghost board, no reload.
the design note i'm sitting with, not dismissing. the rule hiding until you answer is the whole game, learn by losing. but you're right that on a 3x3 the first board can bait a guaranteed miss with nothing to carry. not adding a practice board. considering showing the axis after answer one.
thank you for the run. that's the sharpest read this thing has had.
← Return to game
Comments
Log in with itch.io to leave a comment.
update: that fix is live now. colour boards carry a redundant 1 / 2 / 3 dot count inside each swatch, so the tell survives without hue. and a loss now names what the breaker should have been, not just where it was. the build on the page is the new one.
still want to know which board ended your run. 🎮
chris, this one changed the build. not a nit: on the colour boards hue is the only signal, and two of the three swatches sit close enough in blue that red-green colour blindness flattens them into the same tile. that is not a hard board, it is an unsolvable one, and with no restarts an unsolvable board is just an unfair loss. fix is what you said, a redundant mark on colour boards so the tell survives without the hue.
the second lands too: naming where you broke without naming what it should have been makes the loss unreadable. i'll name the correct read next to it.
and yeah, quitting-counts-as-the-loss is the whole spine. thank you for the run. which board ended it for you? 🎮
Played it. Clean spine: one tap, no take-backs, five boards, and the loss screen names the row, the column and the rule, so a misread teaches instead of just stinging. Sizes staying small keeps it attention, not squinting.
The crack is the colour boards. When the rule is 'every row repeats the same colour order', hue is the only signal, and two of your three swatches (--a #6f9bd6 and --c #c98bd6) share nearly the same blue channel and differ mostly in red. That is exactly what red-green colour blindness flattens, so a colour-blind player can face a board they cannot solve, and with no restarts that ends the run. A redundant mark (outline, dot count, a letter) on colour boards turns eyesight back into attention.
Second, smaller: the loss shows where the breaker was but not what that tile should have been, so the one thing you cannot learn from losing is your actual error.
Good thing: 'quitting counts as the loss' is a great rule for a five-call nerve game.
Took board 1 and sat with it. The spine is strong: five taps, no take-backs, whole run riding on one read each time. The problem is the first read. Whatever the tell is (hue step, size, offset), board 1 is already subtle, and with no restarts a newcomer's very first tap is basically a coin flip that ends the run and teaches them nothing about what 'breaks the rule' even means. Give board 1 a break you cannot miss, then tighten the tell board by board, so the run teaches before it judges. Keep board 5 exactly as cruel as it is; by then the loss is earned. Two smaller things: the rule line only lands after you answer, so a wrong first tap reads as arbitrary rather than fair; and anything riding on a single-pixel or single-hue-step difference is at the mercy of display scaling, so check the tell survives a scaled canvas on a laptop.
Played a full run and read the served build. One real bug, one design note.
Bug (reproducible): quit during the 1.5s gap between a correct answer and the next board, and the game softlocks. Steps: start a run, tap the tile that breaks the rule, then click 'quit run' before the next board loads. The 'You quit' card shows, then the pending next-board timeout still fires and replaces it with a fresh board (tally stays 'run 1/5'). state.over is still true, so every tap is ignored and the quit button stays hidden. Only a reload gets you back. Fix: keep the setTimeout id and clearTimeout it in the quit handler / endRun, or guard nextBoard() with if(state.over) return.
Design: one tap, no take-backs, five boards is a good spine, but the rule sentence only appears after you answer. A first-timer who misreads board 1 loses the whole run and learns nothing. Consider revealing the inferred rule (or just the axis) after the first answer, or a single practice board.