Companion to Source Available Arcade · 6 September 2026

Mechanic First

More of what you liked about the js13k entries: games where the idea is the whole product. Sorted by where the constraint comes from, because that turns out to be what produces them.

The useful discovery

js13k doesn't just publish overall winners — it publishes a separate ranking for Innovation, voted by the entrants themselves. That is a far better filter for "genuinely unique mechanic" than the overall top-13, whose write-ups mostly praise pixel art and sound design. Three years of that ranking make up the first section below.

Worth saying plainly once: these are judged scores, not measurements. A peer vote for Innovation says a room of game developers found something surprising, which is useful and is not the same as fact. Where this page does rank things itself — the PuzzleScript section — it ranks from the rulesets, which are readable, rather than from vibes.

js13k, ranked by Innovation

The top five in the Innovation criterion for each of the last three completed competitions, with the score each received. Every game plays in a browser, every one is 13 KB or smaller, and every entry page carries a link to its source.

2025 · 197 entries

  1. Wash the catHomer Dilpleu · 4.03
  2. I got up on the wrong footxem · 3.94
  3. Black Cat Detective AgencySarah Hubschman · 3.90
  4. Kuro Neko MarketFederico Tibaldo · 3.85
  5. Triska the Ninja CatJohn Edvard · 3.84

2024 · 187 entries

  1. Bubble BurstJohn Edvard · 4.47
  2. Coup AhooAntti Haavikko · 4.04
  3. PicoBuddyBenjamin Boyd Austin · 4.03
  4. Do Not Make 13Pim Schreurs · 4.00
  5. 13th FloorRob Louie · 3.87

2023 · 13th edition

  1. Runekeeperscore not published
  2. K1n3kt Archeryscore not published
  3. Merlin vs Alfonsoscore not published
  4. Mongol Marchscore not published
  5. Young Magi, Awakenscore not published

PuzzleScript, where the rules are the game

Stephen "increpare" Lavelle's engine. You write a handful of rewrite rules over a tile grid — [ > Player | Crate ] -> [ > Player | > Crate ] is Sokoban, entire — and that is the game. The source travels in the URL: any game's rules open in the editor in a few dozen readable lines. Nothing else on either of these pages puts a novel mechanic this close to the surface.

I pulled the rulesets for all 114 games in the PuzzleScript gallery from their gists and read the RULES section of each. Below are the twelve whose rules buy the most play, ranked by how much they change about Sokoban per rule spent — rule count shown, and the rule that does the work quoted where it is short enough to read.

  1. Screenshot: Sokoban[Sokoban[Sokoban]] running in the PuzzleScript player
    Sokoban[Sokoban[Sokoban]]increpare · 3 rules
    [ > Player | stationary Crate | no obstacle ] [stationary player2] -> [ | Player | Crate ] [> player2]

    Not spatial recursion — nested move functions. Succeeding at a push on the first board is what supplies the input to the second board, and a push there supplies the third. You are not playing three Sokobans; you are playing one whose controller is another one. Three rules, and the second and third are the same rule shifted down a level.

  2. Screenshot: Collapsable Sokoban running in the PuzzleScript player
    Collapsable SokobanFranklin P. Dyer · 2 rules
    [Wall|...|Player] -> [> Wall|...|Player]

    Standard Sokoban, plus that. Every wall in line with you advances one square toward you, every turn. The room closes as you solve it, so position stops being free and every move spends space you cannot get back. The best ratio in the gallery: one added line, a completely different game.

  3. Screenshot: Modality running in the PuzzleScript player
    ModalitySean Barrett · 4 rules
    [ > Player Black | Crate Black ] -> [ > Player Black | > Crate Black ]
    [ > Player White | Black ] -> CANCEL

    You have a colour. You can push only crates of your own colour, and you cannot step onto the opposite colour at all. Two constraints written as two cancellations, and the board splits into a pair of interleaved mazes you have to solve alternately.

  4. Screenshot: Heroes of Sokoban running in the PuzzleScript player
    Heroes of SokobanJonah Ostroff · 22 rules
    [ > Fighter | Moveable ] -> [ > Fighter | > Moveable ]
    [ < Thief | Moveable ] -> [ < Thief | < Moveable ]
    [ > Wizard ] -> [ Wizard > Temp ]

    Three verbs on one grid, and you switch between them. The Fighter pushes, and shoves whole chains. The Thief pulls — moving away drags the block after her. The Wizard swaps places with whatever it faces. The most rules on this list and it earns them: the only entry whose difficulty comes from verbs interacting rather than from one twist, and the only one that spawned two sequels.

  5. Screenshot: Watch Your Step running in the PuzzleScript player
    Watch Your StepAaron Steed · 11 rules
    [ > Crate0 | Crate0 ] -> [ | Crate1 ]
    late [Floor4 no Object] -> [no Floor Crate0]

    Two ideas stacked, which makes it the densest thing here. Crates merge on collision the way 2048 tiles do — 0 into 0 makes 1, up to 4, and reaching a 4 wins. Meanwhile the floor ages under your feet, and floor that has aged four steps sprouts a fresh crate. The board you cross is the board that refills behind you.

  6. Screenshot: Love and Pieces running in the PuzzleScript player
    Love and Pieceslexaloffle · 2 rules
    late [ Player | GrayBlock ] -> [ Player | Player ]

    Anything grey you touch becomes you, and the win condition is that no grey is left. So the puzzle is spreading, every copy takes your input at once, and succeeding makes you progressively harder to steer. Written by Joseph White, who went on to build PICO-8.

  7. Screenshot: the art of cloning running in the PuzzleScript player
    the art of cloningRosden Shadow · 6 rules
    [ > Player | Crate ] -> [ player | > Crate ]

    Look closely at the right-hand side: the > in front of Player is gone. You push the crate and you stay exactly where you are. Sokoban's core assumption is that pushing costs you your position — delete it and every solution you know stops working.

  8. Screenshot: Some lines were meant to be crossed running in the PuzzleScript player
    LATE [player no start] -> [player tail]
    [> player|tail] -> cancel

    Your own trail hardens into wall behind you, and you win by clearing every path and returning to where you started. A Hamiltonian circuit expressed in two rules, with the elegant consequence that the puzzle tightens in exact proportion to how much of it you have solved.

  9. Screenshot: Stairways running in the PuzzleScript player
    StairwaysFranklin P. Dyer · 6 rules
    [> Player|Block No Stairs] -> [> Player|> Block No Stairs]
    [> Player|Block Stairs] -> [Player|> Block Stairs]

    The same push, conditioned on the tile it happens on: everywhere else you travel with the block, on stairs you stay behind. One rule written twice with a single term changed — the tidiest demonstration in the gallery of how PuzzleScript wants you to think.

  10. Screenshot: Ebony & Ivory running in the PuzzleScript player
    Ebony & IvoryGuilherme Töws · 9 rules
    [ > Black | White ] -> [ White | Black ]

    Pushing something into its opposite does not move it — the two trade places. Displacement stops being transport and becomes exchange, so the board's contents are conserved and you are only ever rearranging what is already there.

  11. Screenshot: MazezaM running in the PuzzleScript player
    MazezaMMalcolm Tyrrell · 8 rules
    Horizontal [ > Player | Crate | ... | No Object | WallLike ] -> [ > Player | > Crate | ... | | WallLike ]

    Moving sideways shoves an entire row along until it finds a gap. You are not pushing a block, you are operating a row — so a level reads less as a maze than as a bank of sliding registers you have to align.

  12. Screenshot: Lime Rick running in the PuzzleScript player
    Lime RickTommi Tuovinen · 11 rules
    UP [ UP PlayerHead3 | No Obstacle ] -> [ PlayerBodyV | PlayerHead4 ]

    A snake that climbs. Your body is a fixed stack of segments, and moving up spends one — so the creature's own length is the resource, and the level is a question about how much of yourself you can afford to leave behind on the way.

The degenerate case, outside the ranking. the undertaking by anna anthropy has the shortest ruleset in the gallery at one rule — [ Autoplayer ] -> [ Player Exit ], against a win condition of "all Player on Exit". The game wins itself. It is a conceptual piece rather than a mechanic, and it belongs here as the floor of the scale rather than the top of it.

Hardware as the constraint

Fantasy consoles invent a machine that never existed, then hold you to its spec. Same forcing function as 13 KB, applied to pixels and channels instead of bytes.

Byte limits past the point of reason

Where 13 KB starts to look generous. Neither of these is really a games competition, but both are where the tricks that make 13 KB games possible were worked out.

Jams that require the source

Not size limits but time limits, and crucially a rule that the code ships too — which is what makes them useful rather than merely fun to browse.

How to actually mine these

All five sections above are archives rather than lists, so the useful skill is knowing where the mechanic is written down.