Quake, in your browser, looking the way it might if it were made today. Quaked is the original 1996 game running on Three.js with no install and no plugin. Pick Newer Game and the same levels, monsters and weapons come with real lighting and shadows, water you can see through, explosions, flames and shotgun pellets you can watch fly, and new art for the walls, the enemies and the guns. Pick New Game and it keeps the original look and rules, apart from the web port's controls and softer, quieter teleporters.
Quaked is developed by @codemeasandwich and is based on three-quake by @mrdoob. The project lives at codemeasandwich/Quaked.
Play the shareware demo · Mac application releases
Download the Mac ZIP and double-click it to extract Quaked.app. Double-click the app to play; optionally drag it into Applications. There is no installer and no Deno setup.
The launcher uses ~/quaked, a folder in the current user's home directory. Place your own Quake and expansion PAKs there in their game subfolders; change the location through Select Game Locations in the native menu or Options. The Mac application includes no shareware or purchased game data. LAN hosting and joining are available through LAN Multiplayer; each player supplies the same game files. Folder layouts, building, LAN play and verification status.
Play Quaked now in a recent browser with WebGL2 (a desktop is best; phones are covered below). It is developed in Chrome; Safari and Firefox have not been checked. From the main menu choose Single Player, then Newer Game. You start in a welcome hall; walk into the Easy, Normal or Hard corridor to choose the difficulty.
To run your own copy, serve this folder over HTTP and open it:
python3 tools/serve.py 8000 --game-root "$HOME/quaked"Then visit localhost:8000. It needs internet access, because Three.js is loaded from a CDN.
tools/serve.py is Python's own http.server plus byte ranges, which let the game check the packs of a Quake you own
without downloading them; python3 -m http.server 8000 also works, but then the console's games command can only
say such a pack is there, not that it is sound.
| New Game | Newer Game | |
|---|---|---|
| Look | The original Quake picture, untouched | Dynamic light, shadows, water, fire and explosions, new textures and skins |
| Rules | Original (the web port's controls and softer teleporters apply to both) | Original rules, with a few additions (a persistent body and dropped weapons when you die, a flashlight, shotgun damage that arrives with its pellets) |
| Levels | Load one at a time | Episode 1 levels join up: step through an archway and the next level is already there |
| Speed | Light | Heavier; the picture aims for 60 frames a second and lowers its resolution, down to half, when it cannot |
Newer Game's parts can be switched off one by one in Options > Newer Game features, and everything can be turned off from the console (r_hdr 0). If your browser cannot do the extra effects it falls back to the classic picture by itself.
| Key | Action |
|---|---|
| W A S D | Move (you always run) |
| Mouse | Look; left button fires |
| Space | Jump |
| 1 to 8 | Choose a weapon |
| F | Flashlight (Newer Game) |
| Esc | Menu, options and saved games |
| ` (backtick) | Console |
Every key can be changed under Options. A game controller is supported (buttons, pairing and what was tested), and so is touch:
On a touch device the game shows on-screen controls. Held sideways the stick is on the left and the buttons on the right; held upright they sit in a panel along the bottom, with the status bar above it.
- Stick (left): up and down aim, left and right turn.
touch_strafe 1makes left and right sidestep instead;touch_turnandtouch_aimset the turning speed. - GO (the big button in the bottom right corner): move forward. FIRE is straight above it, JUMP at 45 degrees up and to the left, and WEAPON to its left.
- WEAPON slows the game right down (
host_timescale, single player), blurs the picture and lists the weapons you hold; tap one to choose it, or tap outside the list to close it. - Dragging anywhere else on the screen looks around, and so does tilting the device. The pause button is at the top right.
- Newer Game starts with a wider view on a phone:
fov100 upright and 120 sideways (until you set your ownfov; New Game keeps 90).
Options has separate Sound Volume (effects, environmental sounds and menus) and Music Volume (classic tracks and ambient music) sliders. Both settings are saved. Console equivalents are volume and bgmvolume. Routing and verification.
The web distribution on GitHub Pages ships the original free shareware Episode 1 as its own data file beside the engine HTML. Its build input is pinned and checksum-verified. The native app reads your own files from ~/quaked and supports the original split pak0.pak/pak1.pak layout as well as the combined rerelease PAK. Game and expansion files remain outside the application and source tree. Only validated, supported installations can be selected; finding an add-on does not imply its engine features are supported. Distribution and data-location contract.
A short tour; each line links the document that says how it was made and checked.
- Light and shadow: torches, lamps and lava light the rooms, with sun shafts, bloom and a shoulder flashlight. Lighting, flashlight.
- Water you can see into: clear, tinted, muddy or toxic, with ripples (shots leave rings where they cross the surface), reflections and drops on the lens when you come out. Water.
- Fire: explosions, rocket smoke, torch flames, flying lava balls and the Death Knight's fan and shotgun pellets with muzzle smoke and underwater bubbles. Every laser shot (the Enforcers' and the laser traps') is the supplied stasis bolt.
- New art: wall textures with relief (how it works, with a picture), custom enemy skins (grunts, ogres and knights each with a face of their own), 3D weapons and shells, a layered status-bar face and real displacement on the demon plaques.
- The guns' marks: the lightning gun's beam, and the burn it and the shotguns leave on the walls, white-hot, cooling to a black groove.
- Joined-up levels: seamless travel and live teleporter windows, including the last level's window that follows Shub-Niggurath's spiked ball.
- A Bestiary that fills in as you meet each creature, 47 of them.
- Death has a cost and a path back: your weapons scatter where you fell and you respawn with an axe.
- Sound: quiet ambient music and separate music and sound volume.
Everything, in more detail: technical notes (feature by feature, with the console variables) and the documentation index (every document, by topic).
Quaked is a working, playable project under active development, and has had little testing beyond its author's. Each feature's document records what was checked, including where no browser check was made, and its known limits. Several visual features are marked there as awaiting the owner's visual acceptance, the full game data is only partly tried (see Game data) and the Expansion/Dawn gameplay is unverified. Saved games and settings are kept in your browser. Pellets in flight when you save are lost.
Source lives in src/ (a JavaScript port of the Quake engine and its QuakeC virtual machine, with the Three.js renderer), tests in tests/, build and asset tools in tools/, and Newer Game's art and data in newer/. The docs are written so that a future contributor can continue the work: each says what a change is for, what it touches and what was checked. python3 tests/docs_index_test.py checks the links in this README, the index and the technical notes; python3 tools/build_docs_index.py rebuilds the index after you add a document. GitHub Actions builds the shareware web page and its data files from Dev and deploys only that generated site after its required checks pass.
Code: GPL v2. Quake is a trademark of id Software; the shareware data included is theirs.
Original three-quake development post. This is upstream background; the project repository is codemeasandwich/Quaked.
-
Quaked by @codemeasandwich
-
Original game by id Software (source)
-
Three.js port (three-quake) by @mrdoob with @claude
-
Ambient music by Iron Cthulhu Apocalypse: Hallucinations (Lovecraftian Dark Ambient Hour) (asset credits).
-
Weapon models by 小林 団那紀 (the archives retain the original author metadata, 旦那気 大安 / dannaki_tayan).
-
Shotgun-shell asset: only the shell from Weapon Pack is used. Source and supplied license.