Skip to content
codemeasandwichPublic
forked from mrdoob/three-quake
 
 

Latest commit

 

History

820 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Play Quaked — project banner

Quaked

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.

Downloads and local game files

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

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.

Which game do I pick?

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.

Controls

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:

Phones and tablets

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 1 makes left and right sidestep instead; touch_turn and touch_aim set 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: fov 100 upright and 120 sideways (until you set your own fov; 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.

Game data

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.

What Newer Game adds

A short tour; each line links the document that says how it was made and checked.

Everything, in more detail: technical notes (feature by feature, with the console variables) and the documentation index (every document, by topic).

Where it stands

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.

For developers

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.

License

Code: GPL v2. Quake is a trademark of id Software; the shareware data included is theirs.

Upstream background

Original three-quake development post. This is upstream background; the project repository is codemeasandwich/Quaked.

Credits

Releases

Packages

Contributors

Languages