• v0.6.0 f38ea6bab3

    v0.6.0 Stable

    Ghost released this 2026-08-25 15:42:55 +00:00 | 33 commits to main since this release

    Lighting

    • Replaced the old floor-only raycast light probe sampling with a proper volumetric probe grid (spherical harmonics L1 + RGBE8), so dynamic objects get ambient lighting sampled from probes placed throughout 3D space instead of just below their feet. Follow-up fixes: sun contribution to probes was wrong and is now corrected, and probes are no longer wastefully placed in exterior leaves where they'd sample nothing useful.
    • NODRAW faces now block sunlight during the bake, matching how they already blocked other light.
    • Fixed a seam-darkening artifact where adjacent lightmap texels sampled slightly different occlusion results at shared edges.
    • Radiosity bake now traverses the BVH near-to-far instead of an unordered scan, letting bounce/direct passes early-out on the first hit — faster bakes. Also fixed GPU baker SSBO lifetime bugs and expanded the RAD tool's CLI options.
    • Rigid-body movers no longer force a full radiosity recalculation just because they moved.

    Skyboxes

    • Added a cylindrical skybox mode (single wraparound texture with vertical offset/scale/repeat controls) alongside the existing cube and gradient modes.

    Water and swimming

    • Rewrote swimming physics, fixing several buoyancy and movement bugs
    • Added a scripting API so actors can query whether they're submerged, whether they're near a water exit, and get a direction toward climbable shoreline — for AI that swims.
    • Water brushes no longer get drawn into the render-to-texture reflection/refraction pass.
    • Nav-mesh path costing now accounts for ledges and water instead of treating them as free traversal.

    Doors and triggers

    • Doors can have open/close sound effects with per-door volume, selectable from a sound browser in the map editor.
    • Triggers gained a "fire once" option instead of always firing on every entry.
    • Player collider can now be resized at runtime for things like crouching.

    slopmap

    • NODRAW faces are tinted in the preview so they're visually distinguishable while editing.
    • Added "select touching faces with matching material," extending a selection across contiguous geometry sharing a material.
    • The punch tool now tries to preserve the cube shape of the result when the input was an axis-aligned box.
    • Texture panel got "fit" and "fit aspect" buttons to auto-scale a texture to a face.
    • Fixed a bug where duplicating a non-box brush skipped face-ID rewriting, causing the copy to collide with the original in the lightmap/UV atlas.

    Engine internals

    • Added a structured logging system with a --verbose flag, replacing scattered ad-hoc prints across the engine and all slop* tools.
    • BSP build now tracks split-plane relevance per contributing brush instead of unioning all their bounding boxes together, avoiding wasted splits across dead space between unrelated rooms.
    • Removed the legacy FAC file format and the slopfac tool, superseded by the BSP-based pipeline.
    • Added shared-library build support.

    Build and CI

    • Fixed Windows and macOS compilation issues.
    • Added test-compile CI workflows for Linux, Windows, and macOS.

    Docs

    • New lighting model doc explaining the probe system.
    • Expanded scripting API reference; updated Blender, data API, nvim, and vscode integration docs.
    Downloads