userMaverickcancel
branchrust_reboot/main/ai_recast_integrationcancel

88 Commits over 457 Days - 0.01cph!

31 Days Ago
Fix compile errors
31 Days Ago
Merge from main
35 Days Ago
- properly embed navmesh saving and loading in SaveRestore flow - use proper override save/load path if set - use debugEx to not extract stackTrace when logging - respect nav_disable convar - fix empty tiles being null after loading from save, no tile should ever be null even if empty, this causes issue when queuing for rebuild at runtime - consolidate redundant code paths into navmesh init, and add tile - skip saving if navmesh was never built
35 Days Ago
Potential fix for ais getting stuck when the last point of their path lies on a boundary edge, and the last edge is perpendicular to it
36 Days Ago
Fix error when build happens before navmesh is initialized
36 Days Ago
Have DecayEntities affect navmesh at runtime when spawned and destroyed by default (remaining todo exclude IOEntity, AnimatedBuildingBlock, BaseTrap, etc)
36 Days Ago
Follow Daniel's advice of merging two redundant code paths into one
37 Days Ago
Preserve meshCache old behaviour by adding submesh tris to another field
37 Days Ago
Cancel running tile building operations if the tile is re-queued
37 Days Ago
Fix potential issue where request to rebuild tiles are ignored if the tile is currently being rebuilt, as it'll then be desynced with the geometry, add more profile markers
38 Days Ago
Try a holistic approach to detect entities that can trigger a navmesh rebuild, remove component on foundation and barricade, fix navmesh not being rebuild sometimes after entity gets destroyed (collider still detected in same frame, or client collider picked up in editor), increase navmesh definition in and around player constructions
38 Days Ago
Fix meshes not being properly collected, log time when building navmesh synchronously, fix not accounting for biome specific ores when adding nav blocker
38 Days Ago
Remove logs
38 Days Ago
Move everything to ai namespace, delete unused classes, move navmesh params to own file, add more safety checks in native code when creating empty navmesh, also save/load pending build operations, ignore trees, add navblocker to ores
38 Days Ago
Changing number of threads via convar will properly end the active threads and create new ones, remove unused fields, re-hook loading from save if it exists
41 Days Ago
Do not allow queueing again tiles that are actively being rebuilt, removes the need for locks on the hashset. Maybe we need to remove from the queue the tile, and add it to the end of the queue if someone asks to rebuild it again.
41 Days Ago
Replace concurrent queue and semaphore with blocking collection for job requests, and ConcurrentQueue with ConcurrentBag for job results (order does not matter)
41 Days Ago
Fix tile never being removed from dict if using sync mode
41 Days Ago
Reserve some background threads for the navmesh
43 Days Ago
- Get rid of recast demo space partition structure, after profiling deeper turns out it's slower in our use-case - Allow tile gen to be fully synchronous with no time slicing for easier profiling - Fix part of the world not generating - Re-add support for different resolution in monuments - Try out various methods of culling tris / mesh decimation, no perf improvement
45 Days Ago
Time slice tile rebuilding that happens on main thread
45 Days Ago
Fix loading code not assigning navmesh wrapper to the ptr after creating it, fix null tiles not being handled properly
47 Days Ago
Move saving/loading code to c#, fix potential issue when some tiles are null
48 Days Ago
Fix tile being added on background thread instead of main thread after refactor, fix tile being added twice
49 Days Ago
Test splitting tile building in steps instead of building at once from native code, to potentially be able to spread a single tile over multiple frames in case of runtime rebuilds, or cache intermediate building steps
50 Days Ago
Increase voxel resolution in navmesh tiles overlapping monuments, instead of having a different navmesh for scientists
50 Days Ago
First pass on dynamic nav obstacles
50 Days Ago
Prepare migration of entities currently having a navObstacleComponent
50 Days Ago
Use unitask for async operations
2 Months Ago
Tune generation param so that hires navmesh tiles have the same size as lowres ones, for easier stitching
2 Months Ago
- Speed up geometry collection (lots of culling was actually losing perf when done at scale and relying on recast chunkyMesh) - Fix terrain gen being very low res and not respecting alpha (go back to using existing baked terrain code we were using before)
2 Months Ago
- Speed up tile rebuild - Fix tile rebuild giving very different results from initial build
2 Months Ago
- Fix detail mesh being built but not assigned - Add option to specify whether or not we want to build the detail mesh - Remove sample detail mesh height param from SamplePosition (recast will always use the detail mesh if it exists anyway when sampling)
2 Months Ago
- Fix chunk bounds being incorrect - Add option to debug sample the detail mesh height (it seems to not be working)
2 Months Ago
- Multithread in C++ instead of C# as it's simpler to avoid allocs - Make navmesh build not generate any garbage - Add option to sample detail navmesh height - Tick navmesh from ServerMgr instead of letting unity decide
2 Months Ago
Replace parallel for with normal for loops as it doesn't seem possible to completely get rid of their allocation (tried caching actions, extracting state, reimplementing with tasks, unitask, threadpool... those allocate less but still do)
2 Months Ago
Remove alloc in ExtractMesh
2 Months Ago
Fix IsNavmeshBuilt returning true while navmesh is still async building
2 Months Ago
Do not reset "stopAtDestination" when end of path reached, that defeats the purpose, as we want to keep moving even after reaching the end
2 Months Ago
- Rewrite path following logic to not rely on unity's navmesh agent - Add convar to toggle between using unity navmesh, and recast navmesh to calculate paths (only wolf, tiger, croc for now)
2 Months Ago
Add method to calculate remaining path length
2 Months Ago
- Move recast code to the rust native project - Rust native local DLL build to test
2 Months Ago
Remove non threadsafe timeWarning from multithreaded part
2 Months Ago
- Import UniTask - Run navmesh generation on a background thread - Handle AiManager.nav_wait and AI.move the same way as the current DynamicNavmesh
2 Months Ago
Merge from main
2 Months Ago
- Fix rcExpandTileBounds not matching c++ code exactly, causing tile seams to be discontinuous - Fix query extents being doubled when sampling - Expose min region size to c# - Start making editor tool to find and replace all navmesh obstacle components
2 Months Ago
Implement pathfinding iteration limit, so that paths to unreachable polys waste less budget
2 Months Ago
- Fix chunks not being correctly processed - Add budget queue when rebuilding tiles at runtime - Add command to test rebuild of tiles
2 Months Ago
- Fix bools not being passed from c# to c++ correctly - Add [Out] and [In] annotations where relevant - Expose maxNodes to c#
2 Months Ago
Add info to partial paths