Commit Graph

5 Commits

Author SHA1 Message Date
Lorenz Junglas
5b006a3200 Add on-demand navmesh tile generation API (#4507)
Add `DeferGeneration` property to skip navmesh generation during scene load, allowing tiles to be generated and unloaded on demand at runtime.

New public API:
- `NavMesh.DeferGeneration` - skip tile generation on load
- `NavMesh.RequestTileGeneration`/`RequestTilesGeneration` - fire-and-forget via cache loop
- `NavMesh.UnloadTile`/`UnloadTiles` - remove tiles from the navmesh
2026-04-09 15:15:56 +00:00
Lorenz Junglas
9dc248e660 Fix Navmesh bounds not updating when a scene was already loaded (#4283)
Benchmark runner loads scenes in succession.
If a previous scene already generated a navmesh, on the load of another scene the navmesh bounds would not update, because the bounds where already set by the previous scene.
Fixed by always updating the bounds if CustomBounds is not set.
2026-03-11 16:42:08 +00:00
Lorenz Junglas
a5f5d0c784 Custom NavMesh Bounds (#4279)
https://files.facepunch.com/lolleko/2026/March/11_13-25-FussyGermanspitz.mp4
2026-03-11 13:19:52 +00:00
Lorenz Junglas
b83e2abafa Navmesh baking (#3981)
Adds disk persistence for compressed HeightFields to speed up navmesh loading.

Since we serialize the HeightField (not the final PolyMesh), loading still requires PolyMesh generation at runtime. This is intentional, HeightFields are needed for dynamic obstacles and areas.

Small/medium maps: Baking and loading both near-instant, storage ~few MBs
Very large maps (e.g. 4km × 4km): ~10s bake, ~8s load ~500mb

**Baking**

Serializes existing in-memory HeightField cache to disk with layered compression.

**Loading**

Eliminates geometry collection and HeightField generation on scene load.
PolyMesh generation still runs at runtime (allows dynamic areas/links).
2026-02-04 12:02:29 +01:00
s&box team
71f266059a Open source release
This commit imports the C# engine code and game files, excluding C++ source code.

[Source-Commit: ceb3d758046e50faa6258bc3b658a30c97743268]
2025-11-24 09:05:18 +00:00