czumiu

JARL

The version I shipped in 2024, running right here. Drag the pieces around; the corner button fills your screen.

JARL is a sliding block puzzle with a level editor. The puzzle part is deliberately tiny. There are four kinds of piece, and a level is solved when every target has been dragged into a matching hole. That is the whole game, and I keep it that small on purpose. The work I care about is the editor you build levels in and the way the pieces feel in your hand.

The idea underneath it is that the shape is a string. Every piece is a short line of text in a little shape language I wrote. Each character is one edge of the outline, and the path closes itself into a shape. The letters draw arcs, so the string jarl comes out as a full circle, and the game takes its name from the language. That string is the piece’s whole identity. Two pieces are the same shape only when their strings are identical, and a hole accepts a target only when they match exactly. Scaling a piece means rewriting its string. Nothing is a picture: every outline, every fill, and every physics hitbox is generated from the same few characters, so what you see and what you collide with can never drift apart.

You play it with real physics. Gravity is off and the pieces stay upright, so they slide flat across the board. You grab one and it follows the cursor with weight, then settles onto the grid when you let go. I wanted a logic puzzle you play with your hands, loose and heavy on the surface while the board underneath stays exact. The pieces are rounded and they breathe, relaxing a little rounder when they rest and pulling square when you hover them. The same rounded shape is the background of every button, so the whole interface is made of the same material as the game.

The game never checks whether a level can be solved. Continuous physics defeats the kind of solver that would prove it, so I never tried to build one, and the editor never forces holes and targets to pair up or stops you from saving a mess. The author owns solvability. The way you earn the right to publish a level is to solve it yourself, once.

It is built entirely in code and made for fingers first, and I test it with a small tool I wrote that drives the running game from the outside, so a script can play it and check what happened. It started as a game I shipped years ago, and I have been rebuilding it ever since, one small numbered version at a time.

A newer build in motion.

← Back