Castle Quake 2

Quake 2 levels and gameplay, rendered and played with Castle Game Engine. Ships with the Quake 2 shareware demo; loads a full baseq2 install.

The browser version runs via WebAssembly and WebGL 2. Click the viewport to lock mouse look.

Castle Quake 2 at the start of demo1 with lightmaps, view weapon and the Quake 2 status bar
An enforcer lit by the map's lightmaps Railgun trail and an enforcer in demo1

Controls

WASD to move, mouse to look, Left Click or Ctrl to fire, Space to jump, C to crouch, E to use doors and buttons, 1–9, 0 or the mouse wheel to switch weapons (Blaster … BFG10K), F1 for noclip, F12 for a screenshot, ~ for the console, Esc for the menu.

How Quake 2 maps onto Castle Game Engine

Quake 2 systemCastle Game Engine implementation
BSP world (IBSP v38)Faces batched per WAL texture into TIndexedTriangleSetNode shapes in a TCastleScene with precise collisions.
RGB lightmapsPacked into an atlas and applied with TMultiTextureNode (MODULATE2X); models are tinted with the light sampled from the BSP below them.
Skyboxenv/*.tga faces in a TCastleBackground.
MD2 modelsUnwelded meshes with interpolated frame animation and PCX skins.
Doors, plats, buttons, trainsBrush models in TCastleTransforms driven by Quake 2 target / trigger chains.
WeaponsAll 10 weapons plus hand grenades, chaingun spin-up; hitscan via WorldRayCast, projectiles, splash damage, railgun trails as TBillboardNode particles.
AudioPAK WAVs through TCastleSoundSource for 3D positional sound.
HUDOriginal pics/*.pcx numbers and icons drawn with TDrawableImage.

Game data