games.stroetenga.nl

Games

Twenty games that run straight in the browser — no install, no account, no plugins — and all twenty share the same small engine.

Endless runner

Overdrive

Hold to fly, not jump. Coin trails, zappers that telegraph before they bite, and missiles that warn you from the edge of the screen before they commit. Sheep run alongside you — harmless until you land on one and ride it.

Art: assignment pack · Zoe Ruijten · Kenney.nl · GameArt2D

  • Themes3
  • Characters3
  • ControlsOne button
  • Source1,800 lines

Endless match-3

MatchMania

Swap two neighbours to line up three. Cascades multiply, the board refills forever, and when no legal move is left anywhere it says so and deals the same gems out again — the way Bejeweled did, rather than ending the run.

Art: Kenney.nl Puzzle Pack II, CC0

  • Board8 × 8
  • Gems6 shapes
  • EndsNever
  • RulesUnit tested

Bubble shooter

Bubble Trouble

Aim, fire, land three of a colour to pop them — and anything left hanging with nothing above it falls, which is where the points really are. A new row arrives every six shots. Let the stack reach the line and the run ends.

Art: Kenney.nl Puzzle Pack II, CC0, recoloured

  • Gridstaggered hex
  • Colours6 + symbols
  • Rows13
  • RulesUnit tested

Breakout

Deflector

Bounce the ball, clear the bricks, do not let it past you. Where you hit the paddle decides where the ball goes — it is an aiming device, not a wall. Eight hand-drawn level shapes, and lettered capsules that fall out of broken bricks the way Popcorn did it — including the one that takes your power-ups away.

Art: Kenney.nl Puzzle Pack II, CC0

  • Levels8 drawn
  • Capsules6
  • Collisionswept
  • Rules46 tests

Pass the phone · 2–6 players

Near Miss

Drop a ball, drag to aim, hand the phone on. Balls never stop and never bounce — off one edge and back in the far side, still on the same line. The round ends the instant two of them touch, and whoever's ball did it loses. Fill the field with all twenty-four and nobody does.

No artwork — every pixel is drawn in canvas

  • Players2–6
  • Fieldwraps both ways
  • Contactsolved, not polled
  • Rules34 tests

Hold the line

Redoubt

Five rows of eleven, one cannon, four shields, and only one shot allowed in the air at a time. The swarm gets faster the more of it you kill — not because anything sets a speed, but because it steps one alien per tick, so fifty-five of them take fifty-five ticks to move and the last one takes one.

No artwork or audio files — sprites and sound both synthesised at boot

  • Swarm11 × 5
  • Shieldseaten both ways
  • Speed-upemergent
  • Rules136 tests

Block-fitting puzzle

Tessera

Three pieces at a time, dropped anywhere they fit on an 8×8 board. Complete a row or a column and it clears — both at once, which is the one rule everybody implements wrong. No rotation, no gravity: the only decision is where.

Art: Kenney.nl Puzzle Pack II, CC0

  • Board8 × 8
  • Pieces31 shapes
  • Clearsrows + columns
  • Rules49 tests

Tower defence

Palisade

Three towers, three levels each, twenty lives. Creeps walk a fixed road at a genuinely constant speed — which sounds obvious and is the thing most tower defences get wrong. Spreading your towers instead of bunching them is worth five times everything else put together.

No artwork — the map is drawn

  • Towers3 × 3 levels
  • Roadarc-length
  • Placementworth 5×
  • Rules71 tests

Sixty seconds

Burrow

Tap the moles, leave the bombs alone. It is a scheduler with a coat of paint: no hole ever pops twice running, none is ever starved, and no mole is ever shown for less time than a person can react to. The difficulty is how many are up at once.

No artwork — every pixel is drawn

  • Holes3 × 3
  • Run60 seconds
  • Difficultyby density
  • Rules43 tests

Arcade racer

Sunstrip

Flat out down a coast road, with checkpoints that hand back time. There is no 3D anywhere in it: the road is a stack of horizontal slices and a single divide, curves are an offset accumulated twice, and hills hide what is behind them because of one comparison.

No artwork — the road is drawn

  • 3Done divide
  • Curvesdouble integral
  • Top speed302 km/h
  • Rules47 tests

Maze chase

Scatter

Eat every dot while four things hunt you. They all run the same two lines of code — take the exit that gets closest to your target, never turn round — and behave like four different animals, because each answers “which tile am I aiming at?” differently.

No artwork — every pixel is drawn

  • Pursuers4 personalities
  • Shared codeone function
  • Mazeproved winnable
  • Rules68 tests

Push puzzle

Stow

Push the crates onto the marks. You can never pull, so undo is a main button. The test suite solves every level with a search — proving it is winnable and computing its par — so an unsolvable level cannot be shipped. One already tried.

No artwork — the warehouse is drawn

  • Levels8, all proved
  • Parcomputed, not typed
  • Solverships in the game
  • Rules56 tests

Minesweeping

Quarry

Minesweeping with one promise: you will never have to guess. Two boards in five laid at random need luck somewhere, so the generator plays every board through a logical solver and throws it away if the solver has to guess. The HUD tells you how many it discarded.

No artwork — the field is drawn

  • Boards3 sizes
  • Guessingproved impossible
  • Discardedshown live
  • Rules43 tests

Falling blocks

Strata

Stack them, clear rows, watch the floor come up. The part that matters is rotation against a wall: a short ordered list of nudges, tried in turn, is what lets a piece be screwed into a slot it could never simply drop into.

No artwork — every pixel is drawn

  • Pieces7, all kicked
  • Wall kicks56 cases tested
  • Bagno long droughts
  • Rules99 tests

Lunar lander

Retroburn

Land it under two metres a second, upright, on a pad. The physics carries the half-a-t-squared term, so what counts as a safe landing does not quietly change with your frame rate — free fall is exact from 15 Hz to 1000.

No artwork — the moon is drawn

  • Pads3, worth 1–5×
  • Physicsframe-rate exact
  • Fuela real decision
  • Rules100 tests

Vertical shooter

Talon

Fly, shoot, bank the bounties, buy a bigger gun, fly again. Every bullet pattern is fired nine hundred times in a test and asked the same question: was there anywhere the player could have gone? A pattern that covers every reachable square is not hard, it is broken.

No artwork — every pixel is drawn

  • Patterns6, all dodgeable
  • Hangar5 guns, 4 hulls
  • Fairnessproved per shot
  • Rules73 tests

Castle raid

Eyrie

Find the keys, free the prisoners, get out, and mind the guards — they see down corridors, not through walls. Every floor plan is proved finishable before it ships, which caught two of the three as impossible when they were first drawn.

No artwork — the castle is drawn

  • Plans3, all proved
  • Lockschained
  • Guardsline of sight
  • Rules40 tests

Putting

Divot

Six holes. Pull back from the ball and let go. Four thousand shots at full power were fired at the walls to prove the ball can never escape, and nine hundred more to prove it always comes to rest rather than creeping forever.

No artwork — the course is drawn

  • Holes6, all holeable
  • Escapes0 in 4,700 shots
  • Rollalways stops
  • Rules31 tests

BMX

Spokes

Pedal for speed and the ramps will throw you — if you are quick enough. Nothing says “this is a ramp”: the wheels leave the ground when the ground curves away faster than gravity can hold them, which is why the same lip launches you at speed and holds you at a crawl.

No artwork — the course is drawn

  • Launcha physical criterion
  • Air control6 crashes to 0
  • Rotationson the big ramps
  • Rules51 tests

Vector shooter

Asteroids

A field with no edges. Everything wraps, so a rock at one side is a few pixels from the other — and the ship keeps whatever speed you gave it, because pointing somewhere is not the same as going there. Shoot a rock and it does not die, it divides.

Art: Kenney.nl Space Shooter Redux (CC0) · the vector renderer needs no files at all

  • Fieldno edges
  • Rockssplit in two
  • Rendererssprite or vector
  • Rules54 tests

One engine, twenty games

engine.js is the same file in all twenty — not similar, byte-for-byte identical, which is checked with md5sum rather than claimed. It handles the fixed-timestep loop, the entity list, layered drawing and input, and it knows nothing about running, matching, shooting, bouncing, wrapping, marching, stacking, chasing, driving, putting, landing or pedalling — which is the only reason eighteen more games could pick it up.

Each puzzle game keeps its rules in a file that touches no pixels at all — board.js, hexgrid.js, bricks.js, torus.js, invaders.js, blocks.js, td.js, moles.js, road.js, maze.js, sokoban.js — so the awkward part of each is unit tested rather than eyeballed: are there any legal moves left, what does a ball moving faster than a brick is thick actually hit, how far apart are two balls on a field with no edges, how fast does a swarm move when nothing tells it a speed, do a row and a column clear together, does a creep cover the same ground on a short leg as a long one, and can this level be solved at all, can this board be cleared without guessing, can this piece turn against a wall, could the player have dodged that, and can the ball ever escape the course. 1,145 assertions across twenty suites. Most were wrong at first, and every one of those was caught here rather than by a player — including two castle floor plans that could not be finished, a Sokoban level with no solution, and a bullet pattern with no way out.

The student Nanonauts builds these grew out of are archived separately, at proto.stroetenga.nl/Nanonauts. That link is absolute on purpose: this page is served from two different sites, and a relative one only resolves on the one it was written for.