Kritzl
A drawing game that argues with its own genre
A drawing-and-guessing game built around the things its genre gets wrong: guesses that have to be spelled perfectly, one difficulty for every word, and a reconnect that costs you the round.
01Guessing, which is the whole game
Demanding a perfect spelling makes the game feel broken; accepting anything close makes it trivial. The tolerance scales with word length through Levenshtein distance, treats "ü" as equivalent to "ue" and "u" and "ß" as "ss", and answers a near miss with a "close!" hint that does not leak the answer to everybody else. A room can switch strict spelling back on for people who want it.
Words carry a difficulty and the drawer picks: easy, medium or hard, scoring at one, one and a half or double. Guessers earn on a curve against the remaining time, with a bonus for being first and a streak bonus that caps out - so a fast room stays worth playing and a slow one does not become hopeless.
02Losing your connection without losing the round
A player who drops and returns mid-round comes back with their score and a canvas that matches everybody else’s, which means the drawing has to be replayable on the server rather than only streamed to whoever was present. The same machinery lets somebody join late and see what has already been drawn.
Three modes - classic, a forty-second blitz, and a hardcore mode with no hints and no word length at one and a half times the points. Plus the small things the genre forgets: skipping an impossible word in the first seconds before anyone has guessed, emoji reactions that fly across the drawing so spectators are not silent, keyboard shortcuts, custom word lists, votekick, and a reduced-motion setting that is respected.
03One dependency
The server has a single runtime dependency and there is no build step - no bundler, no framework, no transpiler. Sounds are synthesised in the browser and avatars are generated rather than loaded, so the whole game is served from itself.
That is a deliberate size, not a limitation to apologise for. A party game people open on a whim should start instantly and still work in five years without a dependency audit.
Questions about this project?
I am happy to walk through the architecture, the parts that did not work, or the code itself.