popertots
|
15c0d1c7a2
|
external config
|
2026-03-18 23:19:58 +00:00 |
|
popertots
|
c902cff908
|
feat: async pathfinding with provisional paths and bit-grid snapshots
- Add StandableBitGrid: O(1) bit-packed snapshot (~6KB per 50k tiles vs HashMap overhead)
- Implement two-tier pathfinding: sync for short paths (<64 tiles), provisional+async for long paths
- calculate_provisional_path: capped A* returning path to best heuristic node
- calculate_async_path: A* using bit-grid (Send+Sync, no thread_local)
- prepare_paths system: dispatches provisional paths immediately, spawns async for full paths
- poll_async_paths + splice_completed_async_paths: seamless path transition when async completes
- Entities start walking immediately on provisional path while full path computes in background
Architecture:
FixedUpdate: prepare_paths → update_wandering_targets → movement
PostUpdate: poll_async_paths → splice_completed_async_paths
Priority: DF-like pathing (immediate movement) > performance > memory
|
2026-03-18 16:35:39 +00:00 |
|
popertots
|
81b70a661c
|
Implement tiered pathfinding with thread-local scratchpads
- TIER0 (<10 tiles): Vec-based linear search, zero hash overhead
- TIER1 (10-30 tiles): FxHashMap scratchpad with memory reuse
- TIER2 (30-100 tiles): AHashMap scratchpad for better collision resistance
- TIER3 (>100 tiles): Chunk waypoint decomposition
- Added benchmarking infrastructure with F8 report trigger
- Added async infrastructure: PendingPath, CompletedPaths resources
- Lowered MAX_NODES to 5000 to prevent runaway searches
Benchmarks show P50 improved 13%, max improved 53%
|
2026-03-18 14:37:15 +00:00 |
|
popertots
|
49972b9b64
|
better config for benchmarks
|
2026-03-18 11:21:40 +00:00 |
|
popertots
|
aeef78eca2
|
Fix tiled patching
|
2026-03-18 09:22:47 +00:00 |
|
popertots
|
4ef68c4e04
|
migratetion to 0.18.0
|
2026-02-16 00:02:00 +00:00 |
|
popertots
|
feed403495
|
Update bevy version, implement bevy_rand
|
2025-09-07 20:05:00 +01:00 |
|
popertots
|
7e52d6e1bd
|
fix zoom, rework chunkmap events
|
2025-05-29 16:22:02 +01:00 |
|
popertots
|
e8d3f1bafb
|
prep bench
|
2025-05-27 23:28:25 +01:00 |
|
popertots
|
950f02c2e1
|
rework pathfinding, game entity fog rendering, and tilemap usage
|
2025-05-27 23:10:54 +01:00 |
|
popertots
|
e2ccd0cead
|
Log (wip), parallelisation
|
2025-05-11 22:58:25 +01:00 |
|
popertots
|
e3ea662668
|
fake fog, better parallelisation
|
2025-05-07 20:13:29 +01:00 |
|
popertots
|
b7261ae847
|
bevy 0.16 migration
|
2025-05-02 19:27:23 +01:00 |
|
popertots
|
9f264f230e
|
revert to non-benchmark
|
2025-05-02 18:20:32 +01:00 |
|
StephenAdamson
|
4089851734
|
benchmark
|
2025-02-06 21:32:30 +00:00 |
|
StephenAdamson
|
7b8142afd2
|
0.15.1, fps
|
2025-01-16 21:35:04 +00:00 |
|
StephenAdamson
|
bf3ddd0e74
|
attempt noise gen
|
2024-12-14 00:03:52 +00:00 |
|
StephenAdamson
|
7bab01ee74
|
Initial tile push with item cycle
|
2024-12-12 17:19:59 +00:00 |
|