

[ 系统概述 ]
在海量实体并发场景下,传统的启发式搜索 (A*) 或 NavMesh 结构常引发 CPU 瓶颈与垃圾回收 (GC) 延迟。ChronoPath 是一款确定性图路由引擎。基于 C++17 内核构建,系统将路由计算卸载至非托管内存空间,从而绕过 Unity 主线程与托管堆。
[ 性能基准 ]
(测试环境:AMD Ryzen 5 7500F;拓扑规模:28,249 节点,66,722 边)
- 距离评估: 中位数 1.67 μs / 次查询。
- 路径提取: 中位数 3.09 μs / 次查询。
- 动态同步: 全局图重构中位数约 862 ms。支持后台计算与前台原子指针状态替换。
- 系统吞吐量: 多线程执行下中位数为 4,770,000 QPS。
- 内存执行: 在标准查询与检索周期内,产生 0-Byte GC 分配。
- 压力测试 (10,000 实体): 在动态 U 型陷阱拓扑中,多线程 0-GC A* 基准耗时 8,238 ms;ChronoPath 执行耗时 132 ms。
[ 核心机制 ]
- 架构解耦: 将距离代价评估与物理内存操作隔离,保持对确定性帧同步模拟的兼容。
- 异步状态替换: 拓扑修改 (如边权更新) 触发后台索引重构。激活状态通过单次原子指令进行替换,不中断前台查询执行。
- 并发执行: 底层 Native 状态支持并发读取。兼容标准 C# Parallel.For 循环与异步 Task 调度。
- 输入规范化: 自动标准化数值输入。无效浮点数 (NaN) 或极端越界值被转换为物理断路,维持数学稳定性。
[ 5步傻瓜式快速入门 ]
- 第 1 步 (初始化): 游戏启动时调用一次 new ChronoPathAPI(...),将地图数据喂给引擎。
- 第 2 步 (转换 ID): 查路线前,使用 GetInternalId() 将你游戏里的自定义对象 ID 转换为引擎的内部 ID。
- 第 3 步 (查路线): 创建一个超大的定长数组(如 new uint[32768])并重复利用,传给 RetrievePath()。循环读取路线时,务必使用 Math.Min(实际长度, 数组长度) 进行截断,安全提取路线防崩溃。
- 第 4 步 (改路况): 如果某条路被堵死,调用 UpdateEdgeWeight() 封路,然后把 RebuildAll() 扔进后台 Task.Run 中执行,地图会自动更新且不卡顿画面。
- 第 5 步 (安全清理): 关闭游戏前,死等后台任务完成 (.Wait()),然后务必调用 Dispose() 清理底层内存防泄漏。
[ ⚠️ 购买前必读 ]
- 目标平台: 本发行版仅提供适用于 Windows 64-bit (x86_64) Editor & Standalone 的预编译库 (DLL)。
- 硬件约束: 目标 CPU 必须支持 AVX2 指令集。
- 注意: 本包不包含跨平台 (Android/iOS/macOS/Linux) 二进制文件。
- Unity Job System 限制: 受限于托管数组互操作性约束,引擎 API 不支持在 Unity Burst/Job System 内执行。
[ 联系与机遇 ]
如需跨平台编译支持、源码授权、企业级集成,或有意提供工作机会 (Offer),请联系:
isacbieber51@gmail.com
