BETA — this collection is still being built. Games appear, change and occasionally break.

games.stroetenga.nl

Games

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

Overdrive

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
MatchMania

Match-3, three ways

MatchMania

Swap two neighbours to line up three, and let the cascades multiply. Choose how you want it: Zen never ends and reshuffles a dead board, Classic climbs levels and a seventh gem arrives to make them stick, Timed gives you thirty seconds and sells you more for every match.

Art: Kenney.nl Puzzle Pack II, CC0

  • Board8 × 8
  • ModesZen, Classic, Timed
  • Gems6, then 7
  • RulesUnit tested
Bubble Trouble

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
Deflector

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
Near Miss

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
Redoubt

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
  • Rules145 tests
Tessera

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
Palisade

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
Burrow

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
Sunstrip

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
Scatter

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
Stow

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
Quarry

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
Strata

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
Retroburn

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
Talon

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
Eyrie

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
Divot

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
Spokes

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
Asteroids

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
Nonogram

Logic puzzle

Nonogram

Numbers down the side, numbers across the top, and one picture that satisfies both. Every puzzle is solvable by deduction alone — a generator that cannot prove it is never shipped.

  • Board10 × 10
  • Guessingnever required
  • Proofsolver checks every puzzle
  • Rules31 tests
FreeCell

Patience

FreeCell

Fifty-two cards, four free cells, nothing hidden. Every deal is seeded and every seed is checked winnable before it ships, so a lost game is always yours to have lost.

  • Dealsproved winnable
  • Searchbest-first
  • Cardsdrawn, not loaded
  • Rules81 tests
Serpent

Grid classic

Serpent

Eat, grow, and run out of room. The whole game is the tension between the space you have and the length you have earned.

  • Board20 × 15
  • Speeds uptowards a floor
  • Controlsswipe or arrows
  • Rules51 tests
Bulwark

Defend the line

Bulwark

Six cities, three batteries, and shells that take time to arrive. You are not aiming at what falls — you are aiming at where it will be.

  • Raidsevery shell stoppable
  • Aimingsolved, not searched
  • Cities6
  • Rules37 tests
Crossing

Road and river

Crossing

Five lanes of traffic one way, five lanes of river the other, and five bays to fill at the top. Every pattern is generated, then searched for a route and the route walked again to confirm it — if a crossing cannot be made without luck, the pattern does not ship.

No artwork — the field is drawn

  • Lanes5 road, 5 river
  • Bays5 to fill
  • Patternssearched, not trusted
  • Rules54 tests
Apex

Top-down circuit racer

Apex

Tiny cars, one screen, a closed circuit and four laps. The whole track is visible at once, so every mistake is one you can see coming — and no track ships that can be cut.

  • Circuits3, none cuttable
  • Laps4
  • Controlsthumb pad or arrows
  • Rules41 tests
Memory

Matching pairs

Memory

Turn two cards, keep them if they match. The board is dealt so that no run is decided before it starts, and the score rewards remembering rather than luck.

  • Board6 × 4
  • Scored onturns, not luck
  • Facesdrawn, not loaded
  • Rules37 tests
Hangman

Word guessing · 5 languages

Hangman

Guess the word a letter at a time, in Dutch, English, German, French or Spanish. Each language brings its own alphabet, so the accented letters are letters and not near-misses.

  • Languages5
  • Alphabetsown keys for ñ ä ö ü ß
  • Wordshand-picked
  • Rules69 tests
Quintet

Word deduction

Quintet

Five letters, six tries, five languages. Every guess tells you which letters are right and which are merely present — and the awkward half of that is what happens when a letter appears twice, which is why the rule is written out twice here, facing opposite ways.

No artwork — the board is drawn

  • Letters5
  • Tries6
  • Languages5, own keyboards
  • Rules57 tests
Jumble

Anagrams

Jumble

The letters are all there, in the wrong order. Tap them into place before the clock runs out, in any of five languages — and every word you get buys eight more seconds.

No artwork — the tiles are drawn

  • Words4 to 8 letters
  • Clock60s, +8 a word
  • Languages5
  • Rules67 tests
Rockfall

Dig and run

Rockfall

Dig through the earth for diamonds and reach the exit before the clock does. A boulder only kills you if it was already falling — one resting on your head is furniture — and nothing in the cave ever moves more than one cell in a tick, which took two separate fixes and has three tests holding it there.

No artwork — the cave is drawn

  • Cave16 × 16
  • Lives3
  • Cavesendless, deeper each time
  • Rules69 tests
Conduit

Pipe laying

Conduit

The ooze has already started. Lay pipe ahead of it, and every piece you put down is one you cannot take back once it is wet. The cross is two pipes sharing a square rather than a junction — it goes straight through, and it can be filled twice.

No artwork — the pipes are drawn

  • Board9 × 10
  • Pieces7, one of them a cross
  • Levelsendless, longer each time
  • Rules57 tests
Barkeep

Serve the bar

Barkeep

Four bars, and everyone on all four of them is walking towards you. Slide a drink down to push them back, then be standing there to catch the empty on its way home. Nothing asks where things are — it asks where they went, so a drink never passes through a customer however fast it is going.

No artwork — the bar is drawn

  • Bars4, one of you
  • Mugs4 to lose
  • Roundsendless, busier each time
  • Rules57 tests
Yahtzee

Dice and boxes

Yahtzee

Five dice, three rolls, thirteen boxes and no way to leave one empty. Three of a kind scores all five dice, a straight survives a repeated pip, and every one of the 252 possible hands is checked against a second scorer written the slow way.

No artwork — everything is drawn

  • Dice5, three rolls
  • Boxes13
  • Handsall 252 checked
  • Rules176 tests
Codebreak

Deduction

Codebreak

Four pegs from six colours. Black for the right colour in the right place, white for the right colour in the wrong one — and counting the whites is the whole difficulty, because the answer can only supply what it has. All 1,679,616 pairs of codes are checked.

No artwork — everything is drawn

  • Pegs4 from 6
  • Tries10
  • Pairsall 1,679,616 checked
  • Rules100 tests
Cushion

Pool

Cushion

Eight-ball pool on a table that knows the difference between a cushion and a pocket. Momentum and energy are conserved to fourteen decimal places, and no ball ever passes through another however hard you hit it.

No artwork — everything is drawn

  • Table6 pockets
  • Physicsconserved to 1e-14
  • Tunnellingsubstepped away
  • Rules114 tests
Flickon

Flick football

Flickon

Flick your counter into the ball and put it past the keeper. One impulse, then friction and the rebounds decide — and the same flick gives bit-identical results at 30, 60, 120 and 240 frames a second.

No artwork — everything is drawn

  • Shots4 a round, 5 rounds
  • Physicsframe-rate exact
  • Restguaranteed
  • Rules180 tests
Flutter

One-button flyer

Flutter

One button, one bird, and a gap that never quite lines up. Every course is built so the next gap is inside the bird's reach — picking them at random makes nearly one pipe in two unflyable, which is a death the player never earned.

No artwork — everything is drawn

  • Button1
  • Coursesprovably flyable
  • Unconstrained44.7% impossible
  • Rules113 tests
Stackup

Stacking

Stackup

A block swings past; drop it. Whatever hangs over the edge is sliced off and the next one only gets what is left. Fifty perfect drops preserve the width exactly — not nearly, exactly — which is the bug that makes these games quietly shrink.

No artwork — everything is drawn

  • Blocksas many as you can
  • Perfect dropslose nothing
  • Edgesstored, not centres
  • Rules116 tests
Merge

Sliding merge

Merge

Slide the board, matching numbers join, a new tile arrives. A row of 4 4 8 becomes 8 8, never 16, and the pair nearest the way you slid is the one that merges. All 625 possible rows are checked against a second implementation.

No artwork — everything is drawn

  • Board4 × 4
  • Target2048
  • Rowsall 625 checked
  • Rules110 tests
Carom

Cue sports

Carom

Billiards with no pockets at all. Three balls, one cue, and a point only for striking both of the others in a single shot.

  • statusin progress
Snooker

Cue sports

Snooker

Fifteen reds and six colours, in the order the game insists on. A long table, a thin pot, and a penalty for every ball you were not aiming at.

  • statusin progress
Swish

Flick basketball

Swish

Sixty seconds, six marks, and a hoop that only starts moving once you have proved the still ones. Draw back, let go, and gravity has the rest — the same flick gives the same shot at thirty frames a second and at two hundred and forty, because the arc is worked out rather than added up. A shot released before the buzzer still counts.

No artwork — everything is drawn

  • Marks6, two on a rail
  • Clock60 seconds
  • Physicsframe-rate exact
  • Rules139 tests
Chute

Drop-merge puzzle

Chute

Pick a column and let the block go. Equal blocks that end up touching join into one worth double, and that one can join something too — so a single drop can pay several times over. The next block is always on show, which is the whole point: you are choosing a column for two.

  • Well5 × 8
  • PreviewOne block ahead
  • EndsOn a full column
  • RulesUnit tested
Sjoelbak

Dutch shuffleboard

Sjoelbak

Thirty discs, three rounds, four gates. Drag a disc across for a lane, pull back and let go; one disc in every compartment scores twenty. Three thousand slides were fired at the rails to prove a disc always stops and never leaves the board.

No artwork — the board is drawn

  • Discs30, three rounds
  • Gates6.5 cm, like the real board
  • Escapes0 in 3,000 slides
  • Rules144 tests
Rope Jump

Timing

Rope Jump

One rope, then faster, then two - and then two close together. Tap to jump as the rope comes round; a hop that peaks right over it is PERFECT and counts twice. When the pair swings in, tap twice to jump high and clear both. Every change is called a beat before it lands.

No artwork — the figure is drawn

  • Ropesone, two, then a close pair
  • Top speed1.75 turns/s
  • Perfect run144 jumps
  • Rules157 tests
Sjoelen 3D

Dutch shuffleboard, from behind

Sjoelen 3D

The same board, seen from where you stand. Pull back and the discs slide away from you up the plank, through the gates into the compartments.

No artwork — the board is drawn in perspective

  • Viewfrom where you stand
  • Discs30, three rounds
  • Projection42 tests, exact inverse
  • Rulesshared with Sjoelbak
Trampoline

Timing

Trampoline

Bounce higher and higher. Hold to press the mat down, let go at the bottom for the big push, and never lean on the way up. Swipe in the air for saltos and twists, tap for the splits, and land them before the mat does. A ten-bounce routine, sixty seconds where every bounce counts, or free play to train.

No artwork — the figure and the mat are drawn

  • Bouncesten, the highest counts
  • Trickssaltos, twists, the splits
  • Modesroutine, 60 seconds, free play
  • Rules136 tests

One engine, 48 games

engine.js is the same file in all 48 — 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. 3,659 assertions across 50 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.