That map floating in space — a fan homage to The Longest Yard.
No install, no login. Jump straight into an endless free-for-all in your browser.
Desktop & mobile — you start as a spectator, then hit JOIN when ready.
/play).A deathmatch that never stops rounding. Drop in and out anytime. When humans are few, bots fill the arena.
The whole map floats in the void. Falling off — or getting knocked off — is all part of the skill.
Create a passkey from the menu to lock your name and track lifetime + weekly stats. Anonymous play is fine too.
| Move | WASD · SPACE jump (tap it on every landing to bunny hop — keep your speed) |
|---|---|
| Aim / Fire | Aim with the mouse, left-click to fire. When the cursor is near an enemy, vertical aim is auto-corrected (crosshair red = locked, amber = auto-pitch tracking) |
| Weapons | 1–9 or wheel · Q last weapon |
| Other | TAB scoreboard · M mute · ESC menu (while spectating) |
On touch devices the game runs in auto-mode: you steer, it shoots. The nearest enemy your weapon can reach (and see) is aimed and fired at automatically, and an empty weapon switches itself to the next loaded one.
| Move | Hold the bottom half of the screen in portrait, or the left half in landscape — a floating stick appears where your thumb lands |
|---|---|
| Jump | Tap the stick zone for one hop · in landscape, hold the JUMP button to auto-jump on every landing (bunny hop) |
| Fire | Automatic — the red crosshair pins the current target. Holding a finger elsewhere force-fires, if you insist |
| Weapons / Menu | Auto-switches when dry · tap the weapon bar to override · ☰ MENU top-right · pinch to zoom while spectating |
Every player spawns as one of six characters (decided by their name), and bots behave the way they look — you can read their next move from their silhouette.
| Character | Silhouette | As a bot |
|---|---|---|
| TROOPER | Bulky armor + dome helm + backpack | By-the-book soldier — grabs RL/SG, breaks off for health when hurt |
| RAIDER | Mohawk + goggles, lean build | Jumpy rusher — never stops hopping, closes with the shotgun |
| SAURIAN | Hunched lizard + tail | Cautious sniper — farms the railgun, holds the porch, keeps range |
| BONES | Skeleton, ember eyes | Berserker — never seeks health, fights point-blank to the death |
| CYBORG | Boxy war-bot + antenna | Methodical — no hopping, machinegun stream, stacks armor first |
| IMP | Horns + barbed tail | Goodie goblin — bolts for Mega/Quad the moment they spawn |
Every weapon and character in this game is a single data-file module. There are no 3D models, no textures, no sound files — just a handful of numbers and primitive shapes — so adding a weapon means writing one file.
shared/weapons/<key>.jsCombat stats (server-authoritative) and visual specs (barrel, projectile, muzzle) live in one file. The server combat code is generic over type (melee / hitscan / proj), so a new weapon needs no new code.
// shared/weapons/rl.js
export default {
key: 'rl', name: 'Rocket Launcher', type: 'proj',
damage: 100, splash: 100, radius: 120, speed: 900, refire: 800, life: 15000,
ammo: { pickup: 10, box: 5 },
gun: { len: 24, r: 6.5, tip: 0xff8830 }, // the barrel you hold
proj: { r: 9, color: 0xff8830, emissive: 2.0 }, // the flying projectile
muzzle: { color: 0xff9540 }, // muzzle flash
};
Register it with one import in shared/weapons/index.js — list order is the weapon-bar slot order.
shared/archetype.js // append the key to ARCHS (name hash → identity, append-only)
client/src/chars/<key>.js // look: rig skeleton params + build(ctx) primitive assembly
server/src/personas/<key>.js // bot personality: pref weapons, health/armor thresholds, hop rate, aggression…
// server/src/personas/raider.js — a bot's whole personality is this declarative
export default {
key: 'raider', style: 'jumpy shotgun rusher',
prefWeapons: ['sg'], healthSeekHp: 35,
hop: 3, aggr: 1.15, idealScale: 0.7,
missionBias: { porch: 0.5, mega: 0.8, quad: 1.8 },
};
The shared skeleton (two-segment legs, free arm, torso/head) and animation set (run, jump, landing squash, pain flinch, punch) are provided by the engine, so a character file only defines its silhouette and personality. The source is currently closed — send ideas or data contributions to [email protected].
Quake III Arena in 1999 had no story. It had q3dm17 instead. I still remember the first time I dropped into that map — no floor, no sky, just a few platforms hanging over a starfield, and the realization that flying between them on jump pads was already a whole game. One railgun shot and you're falling into space; next round you're the one sitting on the porch.
The Longest Yard was the map that first taught me that level design is game design. No walls means nowhere to hide, and nowhere to hide means movement is everything. Two decades later I wondered whether that feeling could be rebuilt with nothing but a browser and web tech — this site is the answer. Not a single original file was opened; it's recreated from public screenshots and memory alone.
To the level designers at id Software, and to the friends who fell into space with me in those PC-room afternoons. — Woojin