archive by month
Skip to content

paper on dropship paths

I looked through the CoG 2020 accepted papers and noted a couple that relate to Starcraft. One is Combining Influence Maps with Heuristic Search for Executing Sneak-Attacks in RTS Games by Lucas Critch and David Churchill.

This looks like a student Lucas Critch with advisor Dave Churchill. Including the advisor’s name on a student’s paper as second author is an academic convention, and does not give away how much work the advisor may have contributed to it; it may be a substantial effort not much less than the student’s, but it is often “OK, that’s good enough, you can add my name.” The advisor is generally better known than the student, which may draw attention to the paper and its first author. Alternatively, the advisor’s name may overshadow the student who is soon forgotten. I’m not sure which effect is bigger.

As usual, the title is bigger than the content. The paper is actually about how to route a dropship across the map so that the enemy is less likely to catch it along the way, so that the drop is not intercepted and comes as a surprise. It proposes to use the A* algorithm to find the dropship path, and assigns a higher cost to tiles which the enemy is thought to be more likely to see or shoot at; A* will find the lowest-cost path, trading off distance versus risk of being caught.

The paper proposes three influence maps to add up to figure the costs: An enemy vision map based on known or remembered enemy units and their vision range, to avoid being seen; an enemy damage map based on units that can shoot at the dropship, to avoid being shot down (if you are going to be seen, at least be seen by something that can’t kill you); and a weaker map of shortest paths between various bases, which the enemy is likely to be moving along. This figure from the paper shows a sample path:

influence fields and path

The path looks fairly reasonable, except that the dropship should follow more diagonals and not exact horizontals and verticals. The paper says nothing about replanning the path when new information is discovered. Trying the system out in real games is future work, not yet done. Theoretically, the shorter safe paths might lead to faster drops which do more damage.

This is early stage work and not impressive so far. But I think it is a good reminder for bot authors: Most bots do not worry much about what the enemy sees, and pay attention mostly to what the enemy does. Finding good transport paths in real time is an important basic skill that bots will eventually have to master. The reaver-dropping protoss bots especially may want to think about that; aiming for the enemy army and aiming for the enemy base and workers call for different approaches.

Although a more important basic skill, that many bots also lack, is recognizing the danger and reacting properly when they do spot a transport moving across the map. Most bots are incurious and it never occurs to them that perhaps a drop is incoming, and perhaps defenders should be moved into position to intercept.

Trackbacks

No Trackbacks

Comments

Dan on :

Nice find, and nice to have these techniques documented. I wish the paper came with source code, as I think a number of C++ authors would like to adapt and reuse it. I do recommend anyone interested to contact the authors. At a minimum I'm guessing it's based on or uses Dave's StarDraft https://github.com/davechurchill/stardraft

Here is PurpleWave's parameterizable pathfinder, which can be configured to factor in enemy vision and attack range as costs. It powers all of PW's non-direct movement: kiting, scouting, shuttle/reaver usage, and just moving around map obstacles. It's designed to be used for drop harassment, though presently isn't.

It's proven very useful but isn't a panacaea. The cost functions are hard to tune. And it's easy to construct a cost function which violates A* heuristic admissibility. The paths are fairly unstable with respect to changing game conditions; enemies don't just stand in place while you path around them. Because I pathfind at 32px resolution, the kiting paths aren't as efficient at opening gaps as Locutus/Iron/Bereaver/Skynet which use continuous angle math. One of the most common ways for PW to lose these days especially in PvP is due to stilted retreats due to imperfect retreat angles combined with the aforementioned instability.

I believe these issues can all be tuned away but that's a far cry from actually doing it. But the parameterizable pathfinder is a powerful tool and a lot of what bots do to *avoid* implementing one are low-ceiling workarounds.

Pathfind parameterizer: https://github.com/dgant/PurpleWave/blob/master/src/Information/Geography/Pathfinding/PathfindProfile.scala

Pathfinding:
https://github.com/dgant/PurpleWave/blob/master/src/Information/Geography/Pathfinding/TilePathfinder.scala

Jay Scott on :

I’m thinking that hierarchical path planning may be the way. You want to plan a path first at a high level, based on the terrain and on weak information about the enemy. Then you try to execute the path with something more reactive, maybe with potential fields. When you can foresee that a reaction will take you too far from the original plan, kick it back up to the high level planner for another look.

Though simply redoing your path when new info comes in is not very different.

Bruce on :

This is generally how Stardust handles army movement, with a mix of high-level pathing information (from precomputed navigation grids) and local information around each unit (proximity to other nearby units, distance to cluster center) being the inputs to the flocking algorithm.

I've also added a generic pathfinder, but am only using it for some very specific things right now (like scout movement). I need to make some performance improvements before using it more, or at least properly handle the case where the path to the goal is blocked so it doesn't visit almost every tile on the map.

Jay Scott on :

I should add: Pro players often avoid flight path questions altogether by *escorting the transport* to a point over a wall from the target.

Bring transport along with the army to a place that’s close by air to an enemy base. Then you can choose: Pick up and safely drop a short distance away, or if you notice the enemy is prepared for that, then forget your transports because their units are out of position for a straight ground attack.

Add Comment

E-Mail addresses will not be displayed and will only be used for E-Mail notifications.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA

Form options

Submitted comments will be subject to moderation before being displayed.