Releases: ikpil/DotRecast
Releases · ikpil/DotRecast
2026.1.3
What's Changed
- [upstream] Fix crash on large-scale navmesh generation (assert trigge… (#119) @ikpil
- [upstream] When attempting to add a span that is invalid (zero or neg… (#118) @ikpil
- [upstream] Document span range values inclusivity/exclusivity (#117) @ikpil
- Pr/upgrade serilog (#116) @ikpil
Full Changelog: 2026.1.2...2026.1.3
2026.1.2
What's Changed
- Pr/sample geom provider (#115) @ikpil
- feat: add RcVec2i and RcVec3i structs with unit tests (#114) @ikpil
- refactor: replace Task.WaitAll with atomic counter for thread throttl… (#113) @ikpil
- Silk.NET 2.23.0 (#112) @ikpil
- refactor: remove ref parameters from OverlapQuantBounds (#111) @ikpil
- refactor: use 'in' modifier for struct parameters to avoid unnecessar… (#109) @ikpil
Full Changelog: 2026.1.1...2026.1.2
2026.1.1
What's Changed
[2026.1.1] - 2026-01-03
Added
Fixed
Changed
- Support .NET 10 (@ikpil)
- Refactor: RcRecast.GetCon to use
inparameter modifier (@ikpil) - Refactor: RcMatrix4x4f to use 'in' modifier and enforce CS9191 (@ikpil)
- Refactor: Moved RcCollectionExtensions to the Extensions namespace to resolve naming conflicts (@ikpil)
- Refactor: Added Rc and Dt prefixes to classes to maintain consistency and prevent naming conflicts (@ikpil)
- Upgrade Microsoft.NET.Test.Sdk to 18.0.1 (@ikpil)
- Upgrade NUnit to 4.4.0 (@ikpil)
- Upgrade NUnit3TestAdapter to 6.0.1 (@ikpil)
- Upgrade NUnit.Analyzers to 4.11.2 (@ikpil)
- Upgrade BenchmarkDotNet to 0.15.8 (@ikpil)
- Upgrade Serilog.Settings.Configuration to 10.0.0 (@ikpil)
- Upgrade Serilog.Sinks.Console to 6.1.1 (@ikpil)
- Upgrade Newtonsoft.Json to 13.0.4 (@ikpil)
- Upgrade actions/checkout@v6 (@ikpil)
Removed
- Removed m_tileCount (@ikpil)
Special Thanks
Full Changelog: 2025.2.1...2026.1.1
2025.2.1
[2025.2.1] - 2025-06-01
Added
- Nothing
Fixed
- Nothing
Changed
- Refactor FindFollowPath to use Span for better performance and safety (#100) @ikpil
- Refactor QueryPolygonsInTile to use Span for memory reuse (#99) @ikpil
- Replaced List with Span to reduce heap memory usage (#98) @ikpil
- Pr/remove list in raycast hit (#97) @ikpil
- revmoe RcArrayBenchmarkTests (#96) @ikpil
- changed PriorityQueueBenchmarks (#95) @ikpil
- change to ToVec3 for .NET Standard 2.1 Numerics compatibility (#94) @ikpil
- optimize DtConvexConvexIntersections.Intersect (#93) @ikpil
- Pr/optimize circle constraint (#92) @ikpil
- refactor(imgui): determined whether the mouse is on the UI through WantCaptureMouse property (#88) @sssooonnnggg
- feat(debug-draw): add an option to render meshes in a left-handed coordinate system (#86) @sssooonnnggg
- Nothing
Removed
- Nothing
Special Thanks
Full Changelog: 2024.4.1...2025.2.1
2024.4.1
[2024.4.1] - 2024-11-19
Added
Fixed
- Fix raycast shortcuts (@Sarofc) #72
- Fix dynamic mesh bounds calculation (@ppiastucki) #77
- issuer : @OhJeongrok
- Fix Support non-tiled dynamic nav meshes (@ppiastucki)
Changed
- Changed data structure of 'neis' from List to byte[] for optimized memory usage and improved access speed in
DtLayerMonotoneRegion - Changed new RcVec3f[3] to stackalloc RcVec3f[3] in DtNavMesh.GetPolyHeight() to reduce heap allocation
- Changed memory handling to use stackalloc in DtNavMeshQuery.GetPolyWallSegments for reducing SOH
- Changed DtNavMeshQuery.GetPolyWallSegments() to use Span for enhanced performance, memory efficiency.
- Changed bmin/bmax from int[] to RcVec3i for improved memory efficiency
Removed
- Nothing
Special Thanks
Full Changelog: 2024.3.1...2024.4.1
2024.3.1
[2024.3.1] - 2024-07-09
Added
- Nothing
Fixed
- Fixed bug where the dynamic voxel save file browser doesn't appear in
Recast.Demo
Changed
- Changed to reuse samples and edges list in
BuildPolyDetail() - Changed
heights,areas,cons, andregsarrays to byte arrays for uniformity and efficiency inDtTileCacheLayer - Changed
reg,areaarrays to byte arrays for uniformity and efficiency inDtTileCacheContour - Changed
RcChunkyTriMeshto separate the function and variable. - Changed to consolidate vector-related functions into one place.
- Changed stack handling from List to a fixed-size array with manual index management for optimization in
RcLayers.BuildHeightfieldLayers() - Changed to use Span and stackalloc for improved performance and memory management in
RcLayers.BuildHeightfieldLayers() - Changed vertCount and triCount to byte in
DtPolyDetail - Changed
new float[]tostackalloc float[]inDtConvexConvexIntersections.Intersect() - Changed agents management from list to dictionary in
DtCrowd - Changed to efficiently stack nearby DtCrowdAgents in
DtCrowd.GetNeighbours() - Changed to limit neighbor search to a maximum count and use array for memory efficiency in
DtCrowd.AddNeighbour()
Removed
- Removed RcMeshDetails.VdistSq2(float[], float[])
- Removed RcVecUtils.Dot()
- Removed RcVecUtils.Scale()
- Removed RcVecUtils.Subtract(RcVec3f i, float[] verts, int j)
- Removed RcVecUtils.Subtract(float[] verts, int i, int j)
- Removed RcVecUtils.Min(), RcVecUtils.Max()
- Removed RcVecUtils.Create(float[] values)
- Removed RcVecUtils.Dot2D(this RcVec3f this, Span v, int vi)
Special Thanks
Full Changelog: 2024.2.3...2024.3.1
2024.2.3
[2024.2.3] - 2024-06-03
Added
- Added
DtCollectPolysQueryandFindCollectPolyTest
Fixed
- Nothing
Changed
- Changed
IDtPolyQueryinterface to makeProcess()more versatile - Changed
PolyQueryInvokertoDtActionPolyQuery - Changed
DtTileCacheBuilderto a static class - Changed
DtTileCacheLayerHeaderReaderto a static class - Changed
Dictionary<int, List<DtMeshTile>>toDtMeshTile[]to optimize memory usage - Changed
MAX_STEER_POINTSfrom class constant to local. - Changed
List<DtStraightPath>toSpan<DtStraightPath>for enhanced memory efficiency - Changed
DtWriterto a static class and renamed it toRcIO - Changed class
Trajectoryto interfaceITrajectory
Removed
- Nothing
Special Thanks
PR
- Changed
List<DtStraightPath>toSpan<DtStraightPath>for enhanced… (#70) @ikpil - Changed
Dictionary<int, List<DtMeshTile>>toDtMeshTile[]to opti… (#69) @ikpil - Changed
IDtPolyQueryinterface to makeProcess()more versatile (#68) @ikpil
Full Changelog: 2024.2.2...2024.2.3
2024.2.2
[2024.2.2] - 2024-05-18
Added
- Added RcSpans UnitTest
Changed
- Changed class name of static functions to RcRecast and DtDetour
- Changed DtLink class member variable type from int to byte
- Changed initialization in DtNavMesh constructor to Init() function.
Special Thanks
PR
Full Changelog: 2024.2.1...2024.2.2
2024.2.1
[2024.2.1] - 2024-05-04
Added
- Added RcCircularBuffer @ikpil
- Added struct DtCrowdScopedTimer to avoid allocations in scoped timer calls. @wrenge
- Added struct RcScopedTimer to avoid allocations in RcContext scoped timer @ikpil
- Added RcSpans @ikpil
Fixed
Changed
- Changed DtPathCorridor.Init(int maxPath) function to allow setting the maximum path @ikpil
- Changed from List to RcCyclicBuffer in DtCrowdTelemetry execution timing sampling @wrenge
- RcCyclicBuffer optimizations @wrenge
Removed
Special Thanks
PR
- Optimization: reduce number of allocations on hot path in RcRasterizations.DividePoly (#62) @awgil
- SIMD for CyclicBuffer aggregation (#58) @wrenge
- CyclicBuffer optimizations (#55) @wrenge
- Avoid allocation in ScopedTimer call (#54) @wrenge
- Pr/fix telemetry memcpy (#53) @ikpil
Full Changelog: 2024.1.3...2024.2.1
2024.1.3
[2024.1.3] - 2024-02-13
Added
- Added DtNodeQueue UnitTest @ikpil
- Added RcSortedQueue UnitTest @ikpil
- Added IComparable interface to RcAtomicLong @ikpil
- Added Menu bar in Demo @ikpil
Changed
- Update Microsoft.NET.Test.Sdk 17.8.0 to 17.9.0
- Enhanced ToString method of DtNode to provide more detailed information.
- Reuse DtNode in DtNodePool
Special Thanks
Full Changelog: 2024.1.2...2024.1.3