RETRO-64
A platform-game engine in pure JavaScript, chasing the feel of the Commodore 64 classics
The idea
Some of the best platform games ever made ran on a 1MHz machine with 64KB of RAM. Bruce Lee. Impossible Mission. The Great Giana Sisters. Jet Set Willy. They didn't feel great by accident — their movement was tuned number by number, frame by frame, and those numbers are why people still remember exactly how it felt to commit to a jump in Jet Set Willy forty years on.
Retro-64 is an engine for recreating those games in the browser: pure vanilla JavaScript, no frameworks, no build step, no dependencies. Every part of it — the 50Hz fixed-step physics, the tile collision, the one-button joystick model, the 16-colour palette — is written from scratch and distributable as a folder of plain ES modules.
And we're building it in the open. Every milestone gets written up as we go, decisions and dead ends included, so the project doubles as a course in how platform-game engines actually work.
The milestone 2 game: four flick-screen rooms, seven trinkets, ladders, conveyor belts, a crumbling bridge and guardians on patrol. An actual, winnable C64-style platformer.
The physics workbench: one test room, opposite physics schools, and live sliders over every number — including the inertia switch. Feel the design space before you code in it.
The running story of how the engine is being built — what we decided, why, what the numbers mean, and what bit us. Written to pass the experience on, not just to show off.
The quick-start: a complete platformer in 40 lines of vanilla JS, the module map, tile flags, and the full physics-profile reference.
The games we're chasing
Each target game earns its place by demanding something the others don't:
Demands: momentum physics, variable-height jumps, smooth horizontal scrolling, destructible blocks. The C64's answer to Mario — acceleration, sliding, and jumps you shape by how long you hold the button.
Demands: flick-screen rooms, fixed jump arcs with zero air control, hazards on strict patrol loops, crumbling and conveyor tiles. Every jump is a commitment — that's the entire game.
Demands: the somersault, lift platforms, searchable furniture, patrolling robots with line-of-sight rules — and the most famous speech sample on the machine. "Another visitor. Stay a while. Stay forever!"
Demands: climbing ladders and vines, room-to-room progression, collectable-gated doors, and two pursuing enemies with distinct behaviours. Melee combat, eventually.
Where it's up to
Milestone 2 — the world system — is live, and the engine now makes actual games. On top of milestone 1's fixed-timestep core and data-driven physics, we've added flick-screen room transitions, patrolling guardians, collectables, and the special tiles the C64 canon demands: conveyors, crumbling floors and ladders. Inertia is now a first-class switch in the physics profile — on for Giana momentum, off for pure 8-bit instant movement. The Manor proves it all: a four-room, seven-trinket game defined entirely as data.
Next up: sound — a SID-flavoured WebAudio synth — plus real sprite art and the Impossible Mission somersault.