Changes between Version 1 and Version 10 of Ticket #1942


Ignore:
Timestamp:
Apr 21, 2016, 5:40:40 PM (8 years ago)
Author:
fsincos
Comment:

The above patches mainly deal with very crowded situations. It's entirely possible (and likely) that they will degrade performance in harmless situations slightly (not that it matters much, but I had to put that out there). I will attach pruned output from perf for a short "huge combat demo" game. Some explanations for what I did:

Clip: We can remove vertices in obstructions, but it's only done for edgeSquares since I'm lazy. The start (ID 0) and goal (ID 1) vertices are intentionally left out for obvious reasons. The first check just makes sure our "starting inside obstructions" hackery doesn't collapse upon itself. Maybe that could be removed.

partialsort: It's somewhat strange to do a full sort based on a rough heuristic (Euclidic distance to bottom-left corner) so we now do a partial sort instead. The patch is not really fleshed out / tuned at the moment.

These patches are merely intended as a stopgap measure until the rewrite (as a JPS, JPS-B or even JPS+ algorithm).

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1942

    • Property Keywords pathfinding review added
    • Property Component Core engineUI & Simulation
  • Ticket #1942 – Description

    v1 v10  
    11The short pathfinder is currently very inefficient, in situations where many units are moving close together (combat) it lags badly. The current design is not scalable. Performance will be the main criteria here, but also the behavior must be sensible in the context of 0 A.D. It must integrate nicely with the new long pathfinder (#1756). In particular we want to avoid pathing mismatches between pathfinders like we have currently (see #881).
    2 
    32For possible direction, see this forum post: http://www.wildfiregames.com/forum/index.php?showtopic=13042&st=40#entry216735
    4 
    53[More info to come]