archive by month
Skip to content

pro artisanal cheese in ZvZ

How many people remember my catalog of cheese from last August? Of the “no current bots do this” cheeses that I listed then, only early proxy gates (by PurpleCheese) have appeared since. The field is still unplowed.

In other words, hardly anyone pays attention to my suggestions, so I can be the first to point out an idea and also, much later, the first to get around to implementing it in a bot. The best of all worlds!

To show how wide the unplowed field is, here’s a pro ZvZ game on the map Jade, played on 2 June in the Afreeca Clan League. Watch it before reading on, if you want to be surprised.

ggaemo (Z) versus Effort (Z) (with commentary in Korean)

game analysis

Effort at bottom left opened 12 pool. It is a popular build in human play because it is the most economic ZvZ opening that is mostly safe against faster pools, and the pool first (instead of hatchery first) gives it a lot of versatility: You can get fast gas or not, you can expand quickly or not, in any combination. It is not popular in bot ZvZ because it requires a lot of adaptation, and the versatility is hard to take advantage of.

ggaemo at bottom right opened with 12 hatchery, the slowest and riskiest ZvZ build that players dare. The 12 hatch is not safe against most faster pools, but pros still like it because it gives an edge over 12 pool, and 12 pool is popular. Also pros are good at defending, so unlike bots they have a chance to survive even if countered.

So the opening choices, which the players had to make before they scouted each other, favor ggaemo. But the starting positions gave Effort a countervailing advantage because of scouting patterns. Overlords prefer to scout over the opponent’s natural first, so ggaemo’s overlord went up. Effort’s first overlord went across and spotted the morphing hatchery without being seen itself, and overlords did not cross paths so Effort knew he had an information advantage.

I don’t know any bot that could exploit the information advantage, but pros have options. Effort sent 3 drones to the enemy bases, at first holding 2 out of sight range as if only scouting, but then showing 1 in the main and the 2 others at the morphing natural. When the natural finished, he made all 3 drones into offensive creep colonies.

ggaemo was able to save his natural, but the offensive sunken in the main prevented mining and, with support from zerglings, survived a last-ditch defensive pile-up to win.

When bots can do that, we’ll be getting somewhere.

Trackbacks

No Trackbacks

Comments

PurpleWaveJadien on :

Another challenge is that it takes a much larger investment, proportionate to a human, to implement a cheese. Adding a situational cheese that wins you 1/20 of your games does nothing to improve the remaining 19/20 (and probably makes your bot slower to iterate upon). Compare that to the Iron Bot approach of having essentially one game plan, well-executed, and forcing your opponent to deal with it: you get much more value out of your time investment.

Jay Scott on :

I agree with you about the time investment. That’s why I’ve been, little by little, implementing the component actions as primitives. Stealing gas is a primitive that you can write into an opening, or can have the strategy boss execute when it wants. In the upcoming version, pulling workers to go fight is a primitive in the same way. Later I’ll add behaviors to the pulled workers, so SCVs can repair and all types of workers can build proxy or forward buildings such as offensive sunkens or turrets along the tank line. Eventually I’ll write a building planner that can calculate how to fulfill a wide range of goals. Then it will be easier to place the forward buildings. My hope is that someday a strategy will become an abstract description that the rest of the program interprets, and putting together new strategies will be more tractable both for people and for machine learning algorithms.

krasi0 on :

Very good point. It's a non-trivial task to decide what tasks to focus one's limited time and stamina on when working on a bot. There is so much pending stuff and the TODO lists grow infinitely :D

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.