archive by month
Skip to content

react to the future

Humans don’t react to what they see in front of them—not as such. It would be too slow. Humans react to what they expect based on what they see.

Watch a bot chase the enemy scout. The chasing units line up behind the fleeing scout. If there’s more than 1 chaser, then the others are likely wasting their time. Bots react to what they see, and it’s slow.

Watch a progamer chase the scout. The pro maneuvers back and forth, trying to cut off the scout’s line of escape and limit its choices. The pro is not reacting to the scout’s current position, but to its possible future paths.

No pro sees a moving dropship without taking into account “Where is it going?” No pro storms hydralisks without considering “Which way could they run?” And so on. The pro is constantly assessing the opponent’s intentions and reacting to the future, not to the immediate situation.

I keep harping on search as The Cure For All Ills, and search does bring the future into view. But here the underlying issue is goal inference, or recognizing the opponent’s intentions. I expect that little packages of heuristic rules could recognize intentions in a lot of interesting cases without needing search, so that bots could also react to the future that they expect. I also expect that the heuristics would have to be robust or adaptive, though, so that the bot can’t be tricked too easily. Or this: Deep learning should be great at figuring out how to recognize the opponent’s goals, though it will need training data brought in supertankers.

I gave examples of micro intentions (which way can the scout run?) and tactical intentions (where is the dropship going?), but the same works for strategic intentions: Do I expect harassment or mass attack? Do I need air defense, drop defense, detection? What weaknesses does the enemy plan leave open for me to exploit? Reading the enemy’s goals helps at all levels of abstraction.

Trackbacks

No Trackbacks

Comments

Igor Dimitrijevic on :

The never-ending chases is one of the first issues I wanted to avoid with Stone, so I implemented a few simple techniques to improve its micro when chasing -- the very same techniques children unconsciously use on the playground.
I think very few people noticed, but this helped making Stone so strong in the early game.

Some exemples from SSCAIT2015: https://www.youtube.com/watch?v=tlOt0u90rWY
(You need to point to the precise times, which may require enlarging the window).
- At 48:45, we see one SCV chasing one drone. If you notice, it does not follow the targeted drone. Instead of that, it follows a path that intersects the drone's path.
- At 49:37, we clearly see how this technique help smoothing the path of the SCV, that finally catches the drone.
- At 50:03, there are two dancing SCVs helping another SCV attacked by a zergling. They start chasing the zergling using the technique.

The technique involves very simple geometry with vectors.
Another technique I used to improve Iron's micro is trying to stay closer to the center of the areas than the targeted unit.
The implementation is straightforward with the BWEM library which gives for each tile its distance to the nearest edge.

Iron's units use the very sames techniques so you may observe them as well!
I'll add some graphics to Iron on the SSCAIT site, to illustrate the techniques involved.

Back to your article, reading you, it is clear that reaction in Stone and Iron is still very basic. Only the micro level is concerned...

Jay Scott on :

Wow, cool info about Stone. You're right that at least I didn't notice. Those are simple and smart ideas that I bet a lot of bots would benefit from.

Jay Scott on :

Now that I think about it, that stay-toward-the-center heuristic seems to have several advantages. 1. It helps you take shorter paths. 2. If you have a group of units, it helps keep them together and encourage the enemy to scatter. 3. It helps you avoid getting trapped on the edge. Many bots make micro errors allowing their units to get trapped on the edge and killed; I especially notice errors with vultures or dragoons versus zealots.

Igor Dimitrijevic on :

You point 3 is actually used by Stone and Iron's units, but this attraction is very weak so Iron's vulture still die a lot vs. dragoons! Point 3 is used when chasing too, aiming at trapping enemies on the edge like you said. Of course sometimes the enemy unit can flee by a choque point...

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.