How we rebuilt Gorillas for the browser
What it takes to bring a 1991 DOS classic to the modern web: a canvas engine with no dependencies, oscillator audio, one page in six languages, and multiplayer that needs no server.
A remake can go two ways: a museum piece that reproduces the original pixel for pixel, or a rebuild that keeps what made the game work and lets the rest go. We chose the second. Here is what that meant in practice.
Canvas, not sprites
The original drew everything as blocks of colour. We kept the palette — a neon skyline at night — but drew it with Canvas 2D instead of character cells. The city is generated fresh each round from a seed, the gorillas are drawn and animated procedurally, and the banana follows the same kind of ballistic arc the original computed, only now at sixty frames a second with a trail and a full explosion.
No dependencies at runtime
The whole engine is plain JavaScript. There is no game framework, no physics library, no audio library. The bang of the explosion is not a sound file: it is a handful of oscillators shaping what the original played through the PC speaker, an homage you can hear in the intro melody too.
One page, six languages
The game is a single page, but a search engine should see a real page per language, not one page translated in the browser. So the build writes six URLs — one per language — with the texts already in the HTML, each with its own title and its own hreflang links to the other five. Adding a language is one translation file and one line.
Multiplayer without a lobby
The most interesting constraint was playing against another person without asking them to sign up. The city and the wind come from a seed; the tree of craters follows from the shots. That means a whole match can travel as a short code. Send it, and your opponent lands in your exact city, on your exact round, with your score.
What we kept
The feel. Angle and power as two dials on the same throw. A wind that punishes lazy shots. Buildings you can tunnel through and use as cover. The quiet satisfaction of dropping a banana into a shaft you made three turns earlier. Everything else was ours to change; that part was not.