This directory contains documentation for the QuakeShack engine codebase and features.
- Asset Layer - How content files, user files (saves, config, demos) and generated files (navigation meshes) are stored in the browser: Cache Storage, Web Locks, IndexedDB, cache names, what a version change deletes and the
localStoragemigration. - Server in a Web Worker - Running the server of a browser game in its own worker: the data and control channels, when a server frame runs, the realm of the worker and what does not work yet.
- Browser Verification Technique - How to drive a live headless-browser smoke test of the client (no chromium-cli/playwright dependency) for verifying UI/frontend changes.
- BSPX Support - Details on supported BSPX extensions and lumps for advanced mapping features.
- Client Entities - Client-only entities (gibs, bubbles, debris): handlers, spawning, physics, sequences, PVS culling and save games, and how that compares to WinQuake.
- Client Server Architecture - Overview of the client-side architecture.
- Color Shifts - Screen tints for damage, pickups, powerups and liquids: a game-owned set of channels on the
color-shiftpost-process effect, the mixing formula and what the engine still tints for. - Console - Details regarding the console implementation.
- Dedicated Server - Information on running QuakeShack as a dedicated server in a Node.js environment.
- Events - Documentation on the engine's event bus system.
- Game Module Contract - What the engine calls on a game module, in which order, who writes which field, and how
tscchecks a game against the engine. - Menu System - Stack-based, widget-driven menu framework and the
ClientEngineAPI.MenuAPI for game code. - Post-Process Effects - Game-controlled screen-space effects (color grading, blur, color shifts): stacks, channels, pulses, stages and how to extend them.
- QSMAT (QuakeShack Material) Format - Details on the
.qsmat.jsonfile format used to define PBR materials for Quake BSP maps. - Shader Chunks -
#includefor GLSL: the chunk folder, once-per-stage expansion,#linebased error mapping, the list of chunks and how to add one. - Traceline API - Contract and semantics of the gameplay-facing trace query used by server and client game logic.
- Volumetric Fog - Guide on creating atmospheric fog volumes in maps.
- Workers - The
PlatformWorkerabstraction for Node.js and the browser: key files, registering a new worker and how the bundles are built. - WebRTC Implementation - Details the WebRTC implementation for peer-to-peer networking in the QuakeShack engine.