Skip to content

Latest commit

 

History

History
25 lines (22 loc) · 2.93 KB

README.md

File metadata and controls

25 lines (22 loc) · 2.93 KB

QuakeShack Engine Documentation

This directory contains documentation for the QuakeShack engine codebase and features.

Table of Contents

  • 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 localStorage migration.
  • 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-shift post-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 tsc checks a game against the engine.
  • Menu System - Stack-based, widget-driven menu framework and the ClientEngineAPI.Menu API 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.json file format used to define PBR materials for Quake BSP maps.
  • Shader Chunks - #include for GLSL: the chunk folder, once-per-stage expansion, #line based 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 PlatformWorker abstraction 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.