Field notes · 6 September 2026 · 21 entries
Browser games with an actual idea behind them, and the source in the open. Every link opened, every licence read off the repo — including the ones that turned out to be messier than the pitch.
The badge is the licence Green is a real open-source licence, read off the repo. Amber means source-available but restricted, or no licence file at all. Red means closed.
The grey line is the weight What the thing actually is — 2D canvas, WebGL, WASM, kilobytes. Judge the compute cost from that rather than from an adjective.
Amber prose is a caveat Something standing between you and playing it: data you must supply, a build that has been left behind, a licence you can't build on.
Programming isn't a layer under the game. It is the controller. Three different answers to the same question, and the best argument on this page that a browser is a game platform other platforms can't copy.
Every level ships unbeatable. Beside it sits the JavaScript that generated it, most of it locked, a few functions left editable. You escape by rewriting the level's own source and re-running it. The difficulty curve is the size of the hole they leave you.
You write the elevator scheduler. Levels are throughput and wait-time targets, so a naive first-come-first-served controller clears the early floors and then falls apart. It is a scheduling-algorithms course wearing a game's clothes, and it never says so.
Apache-2.0+ Commons Clause
In-tab JS runtime · light to start, heavy once your scripts are
A cyberpunk incremental where the grind is automated by JavaScript you write against an in-game network API. Progress gates on your code getting better rather than on a timer, so the difficulty curve is your own competence.
Your scripts run in the tab against simulated RAM. A sloppy loop will heat your laptop as reliably as a bad idea in production.
No score, no fail state. The rules are legible enough that watching them run is the whole activity — the genre the browser has always been best at and gets the least credit for.
Falling-sand cellular automata with roughly a dozen elements — sand, water, plant, fungus, fire, acid, cloner, wind. The whole design is that each element's rule fits in a sentence and every interesting behaviour is emergent. The wind is a real fluid simulation layered over the grid.
The same author's sand engine pointed at a sealed aquarium. You stock it and then you are locked out — the food chain either balances or collapses, and the only input left is patience. A closed system is a stronger idea than a sandbox because it can genuinely go wrong.
The original SimCity engine, released as Micropolis, rewritten in JavaScript. Worth reading rather than only playing: the whole city simulation is a handful of tile-grid passes, which is a useful corrective if you assume simulation depth requires simulation complexity.
Dual-licensed — GPL-3.0 plus the Micropolis Public Name License governing the trademark. Fine to play and study; read the terms before shipping a fork.
The closest matches to the racer in your screenshot. One of these opens and plays right now; the other two each come with a condition attached, and it is worth knowing which is which before you click.
A WipEout and F-Zero tribute that was one of the first genuinely fast 3D games on the open web, and still the best-looking MIT-licensed racer whose source you can read. Opened it while writing this: the menu comes up in a couple of seconds and lets you set quality and platform before it loads a track — a small, smart piece of design that most web 3D still skips.
Development is on indefinite hiatus. Nothing is broken; it just isn't moving. Treat it as a finished artefact to study, not an active project to join.
No licence file
C → WASM + WebGL · the 1995 PSX game at modern frame rates
A near-complete reimplementation of the PSX original in portable C, compiled to WASM. Technically the most impressive thing in this list, and the author's write-up on doing it is better reading than most engine books.
Two real conditions. The repo carries no assets: you must supply the original PSX NTSC game data plus some PC menu models. And the author states there is no licence, that the code may derive from the 2022 leak, and that you may not use it in any commercial release — hosting it anywhere showing advertising counts. Study it; don't build a product on it.
Closed source
Three.js · light for what it renders
Endless procedural road, no objective, no score, barely a menu — you are driving within seconds of the page loading. Tonally the nearest thing on the open web to the demo you were looking at, and the strongest argument here that removing goals can make a driving game more compelling rather than less.
Free and ad-free, but not open source — included because it answers the brief, not because you can read it. Everything else in this section you can.
Games that trade graphics for depth entirely, which is why they cost almost nothing to run and can hold you for a hundred hours anyway.
Factorio's logistics without the combat, the pollution or the biters — you cut, rotate, stack and paint shapes to spec on an infinite plane. Stripping the survival layer out turns out to leave the good part intact, which is a genuinely instructive result.
The original repo is no longer actively maintained; the studio moved to shapez 2, a paid Steam title. The browser build stays free and playable, and a Community Edition carries on the open work.
Primordial ooze to interstellar empire, and the resets are the point: each run you pick a different species and the tech tree genuinely reshapes around the choice. Far deeper than its plain-HTML presentation suggests, and one of the few incrementals where the mid-game is the best part.
The genre's reference text on escalation: every time the numbers stop meaning anything, it introduces a layer that makes them mean something again. Free on the web with no purchase required. Study it for pacing — few games are this deliberate about when to invalidate their own progress.
Source is published, but I found no licence declared on the repository. Read it; don't assume you may reuse it.
No systems, no progression, no metagame. A single mechanic that was worth finding, and then nothing else piled on top of it.
Forty-six distinct logic puzzles — Loopy, Slant, Bridges, Tracks, Undead — each with a generator that produces instances solvable by pure deduction at a chosen difficulty, never by guessing. That generator is the real achievement, and the reason this outlived every puzzle app it competed with. Each plays at /puzzles/js/<name>.html.
github.com/ghewgill/puzzles (mirror)
Tetris, except the well is a hexagon you rotate rather than a rectangle you drop into. One geometric substitution, and every intuition you had transfers almost correctly — which is exactly what makes it hard. The cleanest example here of a good idea being a small one.
Slay the Spire's deckbuilding roguelike loop rebuilt for the browser, with a clean separation between game state and rendering. If you want to see how a card game's rules engine should be structured before writing your own, this is a better teacher than most tutorials.
The web's structural advantage: a URL is the entire install. All three run public servers, and all three let you host your own.
A 2D battle royale in the surviv.io lineage, rebuilt by volunteers after the original shut down. The most useful reference here if you are writing netcode: a live, readable, self-hostable authoritative server handling real concurrent players.
Co-operative Hanabi, where you see everyone's cards except your own and communication is restricted to formal hints. One inverted rule about who knows what generates a genuinely deep convention meta — the community has written strategy documents longer than most rulebooks. Dozens of variants stack on top.
Proof that a free, ad-free, fully open-source service can beat the commercial incumbent on quality. Relevant to you specifically: real-time board sync, clock handling, reconnection and matchmaking are all solved in the open here — the exact problem set a browser chess project runs into.
js13kGames has run every year since 2012: a complete browser game in 13 KB zipped, no external libraries, no CDN assets. Low compute isn't a claim here, it is enforced by the rules — and the constraint reliably produces better ideas than a bigger budget would.
A playable Quake-like first-person shooter — levels, enemies, weapons, sound — inside 13 kilobytes. The most convincing demonstration on the web that asset size and game quality are unrelated variables.
Its author's own description is hard to improve on: roguelike Broforce in 13kb. Procedurally generated destructible levels, which is exactly the trick — generated content is nearly free in bytes and expensive in nothing but cleverness.
Line Rider's descendant: draw the terrain, ride it, solve physics puzzles with the shapes you drew. A physics solver plus a curve editor is a tiny amount of code for an unbounded amount of play.
The most recent completed edition. Top of the list: CLAWSTRIKE, Cat Survivors, Witchcat, Triska the Ninja Cat, Catculus, Non-Mewtonian Cat. A large share of every year's field enters the explicit Open Source challenge, so the back catalogue runs to hundreds of readable, complete, tiny games — the densest vein of good ideas per kilobyte anywhere on this page.
Patterns that recur across the entries above, framed for someone building a browser game rather than shopping for one.
js13k's 13 KB isn't austerity, it is a forcing function — it rules out asset-driven design on day one and leaves only mechanical ideas standing. Q1K3 is a first-person shooter because the constraint made "generate everything" the only viable plan.
Untrusted, Bitburner and Elevator Saga all reach for the one thing a browser has that a console doesn't: the player is already sitting in front of a programmable environment. Nothing else on this list is as hard to port elsewhere.
Sandspiel gets endless emergent behaviour from about a dozen elements whose rules each fit in a sentence. Players build a mental model of simple rules and then play with the model. They can't do that with an accurate one.
shapez.io is Factorio minus combat and survival. Slow Roads is a driving game minus goals. Hextris is Tetris with a hexagon substituted in. Every one of these is subtraction, and every one found the good part faster than an addition would have.
HexGL asks for a quality setting before it loads a track, so a weak GPU never hits a stutter it can't explain. Slow Roads has effectively no menu at all. On the web your competition is the back button, and both of those are answers to it.
Four entries here look open and aren't quite: Untrusted is non-commercial, Bitburner carries a Commons Clause, Antimatter Dimensions declares nothing, and the wipEout rewrite has no licence at all and asks you to supply data from a leak. Good to learn from, wrong to build on.