Skip to content

Feature status ​

This page describes current capability boundaries. Exact commands, defaults, and APIs remain in source and the focused guides.

Core and content ​

AreaCurrent supportImportant boundary
BSPQ3 IBSP v46 and Warsow/qfusion FBSP v1, all four face types, lightmaps, lightgrid, PVSEntity presence does not imply gameplay behavior
PK3Manifest discovery, runtime index, archive overrides, browser/headless lookupExternal data is not committed
Q3 shadersStages, blending, alpha/depth/cull flags, tcMod, environment tcGen, wave color/alpha, animation, autospritesNot full renderer parity; most non-sprite vertex deforms are skipped
Text mapsParser, brush/patch handling, raw MapRenderer, custom entity registryMapLoader does not load local .map files
Map editorSHAGGED: four-view brush editor, MakeBSP/MakeLight compile, playtest, scripting API and MCP serverAxis-aligned brushes and patches; no NetRadiant import
Models/texturesBabylon loader integration, PK3 assets, compressed-texture toolingAvailability depends on shipped media and target decoder support

Rendering ​

The active BSP path supports baked lightmaps, optional deluxe/PBR material branches, skyboxes, fog volumes, post-processing, area lights, god rays, SSR, render variables, and debug views.

Quality and compatibility vary by map and device. Renderer switches that change material construction may require a map reload. See Render variables and Shader system.

Gameplay ​

The FPS module includes Quake/Warsow-style movement, weapons, pickups, HUD state, gametypes, death/respawn presentation, demos, spectator paths, and bot integrations.

Movement and combat are designed around an authoritative server with shared deterministic rules. Features should be verified in the relevant client and server path rather than inferred from a Babylon visual object.

Networking ​

Implemented systems include:

  • authoritative server ticks and user commands;
  • client prediction and reconciliation;
  • snapshot encoding, buffering, and remote interpolation;
  • clock synchronization and network diagnostics;
  • server-side lag compensation for hit registration, within a fixed rewind budget;
  • a lobby with accounts, rooms, match tickets and stored results;
  • dedicated server, headless client, fuzz, and demo tools.

Rates and defaults are configuration, not permanent product claims. Inspect the server configuration and current Networking guide.

Cameras and input ​

Built-in controllers:

  • FPS;
  • freefly;
  • isometric;
  • sidescroll;
  • follow;
  • spectator, which the FPS spectator command drives rather than camera mode.

The console syntax camera mode <controller> selects these built-ins. CameraSystem separately supports perspective, orthographic, and fake-orthographic projection modes through code.

Input is action-based. The FPS module registers the active default action map, including movement, weapons, UI, and console.

Tooling ​

ToolPurpose
cli:gameEngine commands and indexed BSP inspection under NullEngine
cli:bspDirect filesystem BSP analysis
net:server / net:clientDedicated-server protocol smoke tests
test:simulation / test:physicsDeterministic movement/collision checks
server:tick / server:fuzzServer regression and fuzz runs
demo:record / demo:verifyDemo capture and deterministic reconciliation
lobby:server / bot:serverLobby with accounts and rooms; the bot fleet it asks for players
docs:api / docs:buildTypeDoc and manual builds

Platform status ​

TargetStatus
WebPrimary Vite build
Headless NodeActive CLI/server/test tooling
AndroidCapacitor project exists under its own identity, and the splash screen is dismissed by the app; the startup path still needs a device to confirm
ElectronShell exists; packaging config loads and names the selected game
iOSNo committed native project

See Deployment for the verified workflow and known blockers.

Known limits ​

  • the SHAGGED editor builds axis-aligned brushes and patches only, and cannot import arbitrary NetRadiant maps;
  • incomplete Q3 shader parity;
  • raw text maps are not a playable FPS load path;
  • platform wrappers do not have equal release readiness;
  • external media licensing and redistribution remain the game developer’s responsibility.

Released under the MIT License.