Commit Graph
19 Commits
Author SHA1 Message Date
popertots e61a27fdb0 cargo 2026-03-20 17:29:47 +00:00
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