render | HDR pipeline, cascaded shadow maps in a sampler2DArray with texel snapping and PCSS contact hardening, MRT depth/normal/velocity prepass, GTAO, TAA with YCoCg variance clipping, tile-dilated motion blur, Karis bloom pyramid, GPU EV100 metering, procedural 33³ grade LUT, AgX composite |
materials | GPU texture forge: 19 procedural surfaces (concrete, brick, plaster, asphalt, sand, rusted/painted/brushed metal, wood, fabric, burlap, glass…), periodic noise so everything tiles seamlessly, Sobel height→normal, parallax occlusion mapping, triplanar projection, curvature-driven edge wear |
sky | Atmospheric scattering, time of day, PMREM environment generation, volumetric fog and light shafts |
world | ~120×120 m market street: modular building kit with real wall thickness, enterable interiors, several hundred instanced props |
physics | Written from scratch, no library. Binned-SAH BVH (29k tris → 14k nodes in 22 ms, 0.25 µs/raycast), swept-capsule character controller with a 5-plane crease stack, impulse rigid bodies with CCD, PBD ragdolls, multi-layer bullet penetration |
player | Movement state machine, slide/mantle/lean, camera feel |
weapons | Procedural weapon geometry, viewmodel rig, ADS, spring recoil, procedural reloads, ballistics with travel time and drop |
fx | GPU particles, decals, tracers, muzzle flash, explosions |
ai | Skinned soldiers, navmesh pathing, perception, cover behaviour, ragdoll death |
ui | DOM/CSS HUD: crosshair, hitmarkers, minimap, compass, killfeed |
audio | Web Audio synthesis — no sound files. Layered weapon fire, convolution reverb, HRTF spatialisation, occlu |