Back to Devlog
    v0.9.6
    UIFebruary 23, 2026Release notes

    A HUD That Fits in Nine Anchor Zones

    A 2400-line HUD rewrite around a 1800-line stylesheet, ten weapon slots down the left edge, and roughly 150 console.log calls deleted.

    The Washiki Theme

    text
    WashikiTheme.css    1800+ lines, CSS custom properties,
                        glassmorphism, corner brackets, neon glows,
                        a --ui-scale multiplier
    Fonts               Orbitron (display), Rajdhani (body)

    MatchHUD.ts was replaced by FPSHud.ts — about 2400 lines — as a singleton with 9 anchor areas.

    Widgets

    FPSValueBar for health and armor. FPSAmmoCounter filling gold from WEAPON_MAX_AMMO, with infinite ammo rendered as ∞. FPSFragCounter. FPSTimer using font-variant-numeric: tabular-nums so the digits stop jittering. FPSWeaponRack — a left vertical rack showing all 10 weapon slots, active weapon in cyan. FPSSpeedometer. An SVG FPSCrosshair.

    Overlays: scoreboard held on TAB, chat on T, directional damage indicators, kill feed, pickup toast (white-space: nowrap, no emoji) and a death screen that says YOU DIED.

    Dialogs: a pause menu where ESC releases pointer lock, the game keeps rendering behind it, and no actual pause occurs.

    The Cleanup Is Part of The Release

    text
    ~200 lines of dead code removed
    ~150 console.log calls stripped from 17 named modules
    plus a 60-line collision diagnostic block

    Nine perf items too: a Map for O(1) PK3 lookup, Blob URL revocation, resolveMaterialProps() cached by texture name, four concurrent asset loads, Promise.allSettled parallel probes, pooled TraceState, buildClipBrushIndex(), material-level RenderVars dedup, and material.freeze() after BSP load.

    Known Issues: none stated.