SHEET 18 · Games
Porkchop: Fists of Fury
Zero dependencies, no build step — a beat-em-up roguelike metroidvania in 32k lines of Canvas 2D, written as nineteen modules against one contract, all 586 cross-module imports linked first try

32k LOC19 modules586 imports linked35 relics40 terminals0 dependencies2026liveGames
About
He won the war in space, then found out who wrote it. Porkchop punches down nine strata of THE HAMSTACK — a datacenter under Bacon Bay — and learns that the Wolfpack armada was inference and the Warzone Simulator was his training environment. Three genres share one body: a beat-em-up with jab chains, launchers, juggles, grabs, and a parry with a riposte; a roguelike of seeded floors, 35 relics, a shop, and a meta layer bought with weights stripped off your own corpse; and a metroidvania whose seven abilities open a map that persists between runs. Everything is drawn from primitives and synthesised in WebAudio — no images, no fonts, no audio files, no bundler — and the whole game also ships as one 1.3 MB HTML file that runs off a USB stick.
Key features
- 01Beat-em-up core: cancelable jab chains, a launcher into air combos, ground bounces, grabs, throws, and a parry (SNOUT CATCH) that answers every telegraph
- 02FISTS OF FURY — a Fury-meter spend that teleports between everything still standing and clears the screen
- 03Nine strata arranged fresh from a seed, with 35 relics, nine weapons, elite rooms, and a shop run by the SNACKTRON 3000
- 04Death is diegetic: you restore from backup, the tape library keeps every attempt, and weights stripped off your corpse buy seven permanent meta upgrades
- 05Seven metroidvania abilities — IRON SNOUT, PIG POUND, GREASE BOOTS, TROTTER GLIDE, BACON BEAM, COLD BOOT, HOGZOOKA — gating a map that persists between runs
- 06Destructible everything: racks come apart into tumbling drives, drywall goes through, floor panels collapse, coolant pipes burst and freeze, PSUs detonate in chains
- 07Fourteen enemy types and seven bosses, from THE BIG BAD BOUNCER to WOLFMOTHER.exe in Cold Aisle Zero
- 08Forty readable terminals carrying the actual story — incident reports, the wolves' union grievances, a changelog of your own nerfs — and four endings, the last gated on having read them
- 09Every sprite drawn from primitives and every sound effect and all seven music decks synthesised live in WebAudio: no images, no fonts, no audio files
- 10Vanilla ES modules with zero dependencies and no build step — open the file and play
- 11Fifteen authors wrote one module each in parallel against docs/CONTRACT.md, unable to see each other's code; all 586 cross-module imports resolved on the first link check
- 12Single-file build (tools/bundle.mjs): each module becomes its own IIFE feeding a registry, so scopes stay separate and import cycles resolve through call-time wrappers
- 13Verified by measurement, not by eye: jump arc 3.1 tiles, 17 px tap vs 50 px hold, run 165 px/s, dash 430 px/s over 98 px, 60 fps with 93 entities and 900 particles
- 14?seed=N reproduces a run exactly; tools/play.mjs drives scripted scenarios through real key events and reports every error as one JSON line
- 15Keyboard, gamepad, and touch — on a phone the left half is a floating stick and the right half is buttons, so you steer and punch at once
Gallery







Nearby
SHEET 17 · Games

Porkchop in Space
Zero art assets — every pig, wolf, and nebula generated at boot; a three.js rail shooter with a 13-card draft, a three-phase boss, and seeded runs you can hand to someone else
2026live11.6k loc46 modules
SHEET 15 · Games

ClickStorm
Zero runtime dependencies — six game modes, procedural audio, bloom post-processing, and click heatmaps in vanilla TypeScript + Canvas
2024live
SHEET 16 · Games
no plate captured · live build
Porkchop Warzone Protocol v3
Zero external assets — browser FPS with procedural music (harmonic chord progressions), custom GLSL shaders, ~32K lines of TypeScript
2024live