ChronoPath: Extreme Dynamic Pathfinding Engine


Deterministic C++ routing engine. 30k-node benchmark: 1.67μs distance evaluation, 1.41ms path retrieval. Features 4.77M QPS throughput, asynchronous hot updates, and strict 0-GC execution.


by IsacHe


Price History +

[ System Overview ]

Traditional heuristic searches (A*) or NavMesh structures frequently encounter CPU bottlenecks and Garbage Collection (GC) latency under massive entity concurrency. ChronoPath is a deterministic graph routing engine. Built on a C++17 core, it offloads routing computations to unmanaged native memory space, bypassing the Unity Main Thread and managed heap.


[ Performance Baselines ]

(Evaluated on a 28,249-node, 66,722-edge topology using an AMD Ryzen 5 7500F)

- Distance Evaluation: Median 1.67 μs / query.

- Path Retrieval (Node Sequence): Median 1.41 ms / query.

- Dynamic Synchronization: Global graph reconstruction median ~862 ms. Supports background computation with foreground atomic pointer state replacement.

- System Throughput: Median 4,770,000 QPS under multi-threaded execution.

- Memory Execution: 0-Byte GC allocation throughout standard query and retrieval cycles.

- Stress Test (10,000 Entities): In a dynamic U-shaped trap topology, a multi-threaded 0-GC A* baseline requires 8,238 ms; ChronoPath executes in 132 ms.


[ Core Mechanisms ]

- Decoupled Architecture: Isolates distance cost evaluation from physical memory operations, maintaining compatibility with deterministic lockstep simulations.

- Asynchronous State Replacement: Topology modifications (e.g., edge weight updates) trigger background index reconstruction. The active state is replaced via a single atomic instruction without stalling foreground query execution.

- Concurrent Execution: The underlying native state supports concurrent reads. Integrates with standard C# Parallel.For loops and async Task scheduling.

- Input Normalization: Automatically sanitizes numeric inputs. Invalid floats (NaN) or extreme outliers are converted into physical discontinuities, maintaining mathematical stability.


[ 5-Step Quick Start (Beginner's Guide) ]

- Step 1 (Initialize): Call new ChronoPathAPI(...) once at startup to feed your map data to the engine.

- Step 2 (Translate IDs): Before querying, use GetInternalId() to translate your custom Object IDs into the engine's Internal IDs.

- Step 3 (Query): Create a large reusable array (e.g., new uint[32768]), and pass it to RetrievePath(). Always use Math.Min(actualLen, array.Length) in your loop to safely read the steps and prevent out-of-bounds crashes.

- Step 4 (Update Roads): If a road gets blocked, call UpdateEdgeWeight(), then throw RebuildAll() into a background Task.Run so the map updates without freezing your game screen.

- Step 5 (Clean Up): When closing the game, wait for any background updates to finish (.Wait()), then strictly call Dispose() to clear the RAM and prevent memory leaks.


[ IMPORTANT - READ BEFORE BUYING ]

- Target Platform: This release provides pre-compiled libraries (DLL) for Windows 64-bit (x86_64) Editor & Standalone ONLY.

- Hardware Recommendation: Standard x86_64 CPU architecture. Processors with AVX2 instruction set support are recommended for peak SIMD performance, but are not strictly required.

- Unity Job System Restriction: Due to managed array interoperability constraints, the engine API does not support execution within the Unity Burst/Job System.

- Notice: Cross-platform binaries (Android/iOS/macOS/Linux) are NOT included in this package.


[ Contact & Opportunities ]

For cross-platform compilation support, source code licensing, enterprise-level integration, or career opportunities/job offers, please contact:

isacbieber51@gmail.com