My motivation for doing this was that people have always claimed that ZvZ is just build order rock-paper-scissors. But how true is that claim? And even if it is mostly true there are still games when players win despite a build order disadvantage; examining such games should be quite educational.
There are also lots of other questions to be answered. How frequently do various builds get used? How do these choices vary across 2/3/4 player maps? How do certain build order fare against each other? Do certain players favor certain builds? And so on.
Anyways, on to the results!
People say ZvZ is 9p>12h>12p>9p
12h v 12p: 28-17
12p v 9p: 13-11
9p v 12h: 20-7
but it seems closer to 9p>>>12h>>12p>9p. It would be nice to have a larger sample size for 12p v 9p.
What about builds other than those three?
Build frequencies:
12h - 134
12p - 127
9p - 81
overgas - 58
overpool - 11
10h - 3
9h - 1
4p - 1
Overgas stands out as something we're not considering. OK, so how does it fit into the picture? My understanding was that it hard counters 9pool but is way behind vs later pool builds
overgas vs...
12h: 2-4
12p: 8-11
9p: 6-5
overpool: 2-1
4p: 0-1
but it seems that overgas doesn't really have such a simple characterization.
And the others?
Build matchup records:
10h
12h: 0-1
12p: 1-0
9p: 1-0
9h
12h: 0-1
overpool
12h: 1-1
12p: 2-0
9p: 2-0
overgas: 1-2
4p
overgas: 1-0
Super small sample size!
Here is the big picture
12h: 68-66
12p: 59-68
9p: 44-37
overgas: 27-31
other: 10-6
I have some other things but I am too lazy to talk about it so here are those things
+ Show Spoiler [other things] +
+ Show Spoiler [Map number frequencies] +
2 - 70
3 - 42
4 - 96
+ Show Spoiler [Build frequencies by map number] +
2
12h - 43
12p - 39
9p - 23
other - 4
overgas - 31
3
12h - 28
12p - 28
9p - 19
other - 5
overgas - 4
4
12h - 63
12p - 60
9p - 39
other - 7
overgas - 23
+ Show Spoiler [Build records by map number] +
2
12h: 22-21
12p: 22-17
9p: 11-12
other: 2-2
overgas: 13-18
3
12h: 13-15
12p: 11-17
9p: 12-7
other: 4-1
overgas: 2-2
4
12h: 33-30
12p: 26-34
9p: 21-18
other: 4-3
overgas: 12-11
+ Show Spoiler [Build matchup records by map number] +
2
12h
12p: 8-5
9p: 2-6
overgas: 2-0
12p
12h: 5-8
9p: 7-1
overgas: 6-4
9p
12h: 6-2
12p: 1-7
overgas: 3-2
other
overgas: 2-2
overgas
12h: 0-2
12p: 4-6
9p: 2-3
other: 2-2
3
12h
12p: 5-2
9p: 2-6
other: 0-1
12p
12h: 2-5
9p: 2-4
other: 0-2
overgas: 2-1
9p
12h: 6-2
12p: 4-2
overgas: 0-1
other
12h: 1-0
12p: 2-0
overgas
12p: 1-2
9p: 1-0
4
12h
12p: 15-10
9p: 3-8
other: 3-0
overgas: 2-2
12p
12h: 10-15
9p: 4-6
other: 0-1
overgas: 3-3
9p
12h: 8-3
12p: 6-4
other: 0-3
overgas: 2-3
other
12h: 0-3
12p: 1-0
9p: 3-0
overgas
12h: 2-2
12p: 3-3
9p: 3-2
+ Show Spoiler [Build matchup records by player] +
action
12h
12h: 0-1
12p: 2-0
9p: 0-2
12p
12p: 1-2
9p
12h: 0-2
12p: 0-1
9p: 3-0
other
9p: 1-0
overgas
12p: 0-1
overgas: 2-0
alone
12h
12p: 0-1
9p
12p: 1-1
other
overgas: 0-1
overgas
12p: 1-0
9p: 0-1
other: 0-1
byul
12p
9p: 0-1
overgas
9p: 1-0
other: 1-0
calm
12h
12h: 2-1
12p: 2-1
9p: 0-1
other: 1-0
overgas: 0-1
12p
12h: 4-1
12p: 2-1
9p: 0-1
overgas: 1-0
9p
12p: 0-3
9p: 0-2
overgas: 0-1
overgas
12p: 0-1
9p: 0-1
chavi
12h
12p: 1-0
crazy-hydra
12h
12h: 2-1
12p: 2-0
12p
12h: 1-3
12p: 2-0
9p: 1-0
other: 0-1
overgas: 0-1
9p
12h: 1-0
9p: 1-0
overgas: 0-1
overgas
12p: 1-1
dream.t)check
12p
overgas: 0-1
overgas
12h: 0-1
overgas: 0-1
effort
12h
12p: 1-0
12p
12h: 0-1
12p: 1-0
9p
12h: 1-0
9p: 0-1
other
other: 0-1
overgas
12p: 1-0
ggaemo
12h
12h: 1-0
12p: 0-3
9p: 0-1
12p
12p: 0-1
9p: 1-1
9p
12h: 0-1
overgas: 0-1
other
overgas: 1-0
overgas
12p: 0-1
overgas: 0-2
great
12h
12h: 1-0
9p: 1-0
12p
12p: 0-1
9p: 0-1
9p
12h: 0-1
12p: 0-1
9p: 0-1
overgas
12p: 0-2
overgas: 1-1
hero
12h
12p: 1-0
12p
12p: 0-2
9p: 0-1
overgas: 0-1
overgas
overgas: 0-1
hero[join]
12h
12p: 2-1
12p
9p: 1-0
other
12p: 1-0
hoejja
12h
12h: 1-1
12p: 1-2
9p: 0-1
other: 1-0
overgas: 1-0
12p
12h: 1-0
12p: 1-0
9p: 1-0
9p
12h: 1-0
other
other: 1-0
overgas
9p: 1-0
hope
12p
overgas: 0-1
hydra
12h
12h: 2-1
12p: 0-2
12p
12h: 2-0
12p: 4-2
9p: 1-0
overgas: 3-0
9p
12h: 2-0
12p: 1-1
other: 0-1
overgas: 0-1
overgas
12p: 1-1
9p: 0-1
overgas: 1-0
hyuk
12h
12h: 0-1
12p: 1-1
9p: 1-0
12p
12h: 1-1
12p: 1-2
9p: 1-0
other: 0-1
overgas: 1-0
overgas
9p: 1-0
hyun
12h
12h: 2-1
12p: 3-0
9p: 0-2
12p
12h: 0-1
overgas: 1-1
other
12h: 0-1
overgas
12p: 0-1
overgas: 0-1
hyvaa
12h
12h: 0-1
12p: 1-0
9p: 0-1
overgas: 1-0
12p
12h: 0-1
12p: 0-1
overgas: 0-2
9p
12h: 2-1
12p: 1-0
overgas: 0-1
overgas
other: 0-1
jaedong
12h
12h: 2-2
12p: 1-0
9p: 2-3
12p
12h: 0-4
12p: 2-0
9p: 1-0
overgas: 1-0
9p
12h: 1-1
12p: 1-2
9p: 2-0
other
12p: 1-0
overgas
12p: 1-0
overgas: 0-1
juni
12h
12h: 0-3
9p: 0-1
12p
12h: 0-3
9p
overgas: 1-0
overgas
9p: 1-0
killer
12h
12h: 1-1
12p: 3-1
9p: 2-1
12p
12h: 4-3
9p: 0-1
9p
12p: 1-1
9p: 1-1
other
9p: 1-0
overgas
12h: 2-0
12p: 1-1
9p: 1-0
overgas: 1-0
modesty
12h
12h: 1-3
12p: 1-1
12p
12h: 1-1
12p: 0-1
other: 0-1
overgas: 2-0
9p
12h: 1-0
12p: 0-1
9p: 1-0
other
12p: 1-0
orion
12p
12h: 0-1
9p: 0-1
peace
12h
12p: 1-1
other: 0-1
12p
9p: 1-0
overgas: 1-0
9p
12h: 1-0
overgas: 0-1
perfective
12h
12h: 0-1
12p: 1-0
9p: 0-1
12p
overgas: 0-1
9p
12h: 1-0
overgas
9p: 1-1
roro
12h
12h: 2-2
12p: 0-1
overgas: 1-0
12p
12p: 0-1
9p: 0-1
9p
12h: 1-1
12p: 1-1
9p: 0-1
overgas: 1-0
overgas
12h: 0-1
12p: 0-1
overgas: 0-1
s2
12h
12h: 1-1
12p: 1-0
12p
9p: 1-0
9p
other: 0-1
overgas: 1-0
overgas
12h: 0-2
12p: 1-0
other: 1-0
overgas: 2-0
sacsri
12h
12h: 0-1
saint
12h
12h: 0-1
12p
12p: 0-1
9p
9p: 0-1
sascri
12h
9p: 0-1
shine
12h
9p: 0-1
12p
12h: 0-1
12p: 1-1
9p: 1-0
9p
overgas: 1-0
other
12h: 0-1
9p: 1-0
soo
12h
12p: 1-1
12p
12h: 0-1
9p: 0-1
9p
12h: 1-0
9p: 0-1
other
12h: 1-0
overgas: 1-0
overgas
overgas: 1-0
soulkey
12h
12h: 4-1
12p: 2-0
12p
12h: 1-1
9p: 2-1
overgas: 1-0
9p
12p: 1-1
other
12h: 0-1
overgas
12p: 1-0
where
12h
12h: 1-0
9p: 0-1
other: 1-0
9p
12h: 1-0
woon
12h
12h: 0-1
overgas: 0-1
9p
12h: 1-0
wow
overgas
12p: 0-1
zerg[kal]
12h
9p: 0-1
overgas: 1-0
12p
12h: 0-1
12p: 0-1
other
overgas: 0-1
zero
12h
12h: 3-1
12p: 0-1
9p: 1-2
12p
12h: 2-4
12p: 3-1
9p: 1-1
9p
12h: 5-0
12p: 4-0
other: 0-1
overgas: 1-0
overgas
9p: 0-1
overgas: 1-1
If you want to search for specific games, here is the place to do it.
The format is
number of player map|winning player|losing player|winning build|losing build
+ Show Spoiler [data] +
4|action|soo|9p|9p
4|hoejja|shine|12h|overpool
2|shine|action|12p|12p
4|hoejja|roro|12p|9p
2|crazy-hydra|hydra|12p|12h
4|action|effort|9p|9p
4|hero[join]|crazy-hydra|10h|12p
3|hoejja|effort|overpool|overpool
3|hoejja|hydra|overgas|9p
4|action|effort|12h|12p
3|killer|hoejja|12p|12h
4|effort|hyvaa|12p|12p
3|soo|peace|overpool|12h
4|effort|action|9p|12h
3|zero|killer|12p|9p
4|jaedong|soulkey|9p|12p
4|crazy-hydra|hyvaa|9p|12h
3|zero|hydra|12p|12p
2|shine|great|12p|9p
3|hydra|shine|9p|12h
4|calm|killer|12h|12p
3|jaedong|modesty|overpool|12p
3|hydra|orion|9p|12p
4|hyvaa|roro|12h|overgas
4|soulkey|roro|9p|12p
2|great|modesty|12h|12h
3|alone|great|9p|12p
4|effort|jaedong|12h|12p
3|modesty|hyuk|overpool|12p
2|soulkey|calm|12p|9p
3|zero|hyvaa|12h|9p
3|hyuk|action|12p|overgas
3|jaedong|modesty|12p|9p
4|action|roro|9p|9p
4|crazy-hydra|calm|12h|12h
3|hydra|soulkey|12h|12h
2|chavi|juni|12h|12p
4|killer|hydra|12p|12h
4|zero|hoejja|12h|12h
4|jaedong|roro|12h|9p
2|hoejja|hydra|12h|12h
4|soulkey|killer|12p|12h
3|modesty|great|9p|9p
2|calm|zero|12h|12p
4|killer|ggaemo|12p|12h
3|hydra|ggaemo|12p|overgas
4|crazy-hydra|killer|9p|9p
4|soulkey|roro|12h|12h
3|effort|hyvaa|overgas|12p
2|hydra|modesty|12p|12h
2|soo|killer|9p|12h
3|hydra|modesty|12p|12p
2|modesty|hydra|12p|overgas
3|killer|modesty|12h|12h
4|modesty|jaedong|9p|12h
2|hoejja|s2|12h|overgas
4|killer|soo|9p|12p
4|hydra|modesty|12h|12h
4|where|hyun|9p|12h
4|killer|zero|overpool|9p
3|hyvaa|byul|9p|12p
4|modesty|hyuk|12h|12p
4|hyvaa|jaedong|12h|12p
4|killer|calm|9p|9p
3|perfective|where|9p|12h
4|modesty|hyvaa|12h|12h
4|hyuk|jaedong|12h|12p
2|hydra|shine|12p|12p
3|soulkey|crazy-hydra|12h|12p
4|perfective|soulkey|12h|12p
2|zero|action|9p|12h
3|crazy-hydra|zero|12p|12p
3|jaedong|modesty|12h|12p
2|hyuk|hyvaa|overgas|9p
4|hoejja|hyvaa|12h|12p
2|calm|action|12p|12p
2|soulkey|juni|12h|12h
2|modesty|crazy-hydra|12p|overgas
3|hoejja|calm|9p|12h
4|where|hyun|12h|9h
2|hyuk|hoejja|12p|12h
2|byul|peace|overgas|9p
2|woon|sascri|9p|12h
2|calm|hero[join]|12p|12h
4|killer|juni|12h|12p
2|hyun|orion|12h|12p
3|zero|perfective|9p|12h
4|hyuk|hero|12p|12p
2|where|woon|12h|12h
2|action|dream.t)check|overgas|overgas
3|hyun|crazy-hydra|12h|12h
3|jaedong|calm|9p|9p
2|hydra|hyvaa|overgas|12p
4|soo|killer|12h|12p
2|s2|alone|overgas|overpool
3|hoejja|roro|12p|12p
4|shine|s2|overpool|9p
2|juni|hydra|9p|overgas
2|ggaemo|hyvaa|overpool|overgas
4|modesty|peace|12p|12h
2|s2|hyun|overgas|overgas
3|zero|juni|12h|12h
2|soulkey|hope|overgas|12p
4|jaedong|zerg[kal]|12p|12p
2|crazy-hydra|calm|12p|9p
2|killer|action|12h|9p
4|ggaemo|jaedong|12p|9p
2|hydra|hyun|12p|overgas
4|action|great|12p|12p
2|roro|dream.t)check|12h|overgas
4|hero[join]|zerg[kal]|12h|12p
2|hydra|ggaemo|overgas|overgas
2|calm|great|12p|overgas
4|hero[join]|jaedong|12h|12p
3|killer|shine|12h|12p
4|soulkey|hyun|12h|12p
2|peace|hoejja|9p|12h
2|hydra|alone|12p|12h
2|zero|jaedong|9p|12h
4|zero|jaedong|12h|12h
4|jaedong|zero|9p|12h
4|zero|jaedong|9p|12h
2|crazy-hydra|hyun|overgas|12p
4|zero|calm|9p|12p
4|zero|calm|12p|12p
2|calm|zero|12h|12h
4|zero|calm|12p|12h
2|zero|ggaemo|9p|12p
2|alone|hero|overgas|12p
4|killer|calm|overgas|12h
3|action|zero|12h|12p
2|peace|wow|12p|overgas
2|soo|alone|4p|overgas
4|s2|killer|12h|12h
4|calm|zero|12p|12h
2|hydra|killer|12p|overgas
2|byul|zerg[kal]|overgas|overpool
2|zero|alone|9p|overgas
4|soulkey|jaedong|12p|9p
4|killer|woon|overgas|12h
4|calm|hyuk|12h|12h
2|hyuk|calm|12p|9p
4|hoejja|ggaemo|12p|12h
2|peace|crazy-hydra|12h|12p
4|soulkey|saint|12h|12h
2|zero|hero|12p|12p
2|soo|zero|overgas|overgas
2|peace|hydra|12p|9p
4|hyvaa|zerg[kal]|9p|12h
4|killer|crazy-hydra|overgas|9p
4|zerg[kal]|s2|12h|overgas
3|crazy-hydra|hydra|12p|12p
4|zero|hero|9p|12p
2|great|hero|overgas|overgas
2|hyvaa|juni|9p|12h
4|killer|roro|overgas|overgas
2|hero[join]|alone|12p|9p
4|calm|hyuk|12p|12p
2|jaedong|saint|9p|9p
4|killer|dream.t)check|overgas|12p
2|crazy-hydra|calm|12h|12p
2|ggaemo|juni|12h|12h
2|shine|zero|9p|overgas
4|soulkey|roro|12p|overgas
4|s2|perfective|9p|overgas
4|hydra|saint|12p|12p
4|great|jaedong|12h|9p
4|roro|calm|9p|overgas
4|zero|hyun|9p|12h
4|calm|soulkey|12h|10h
4|calm|roro|12p|12h
2|hyuk|great|12h|9p
4|hydra|ggaemo|12p|12p
4|s2|crazy-hydra|overgas|12p
2|s2|action|12p|9p
4|jaedong|s2|12h|12h
2|roro|perfective|12h|12h
3|roro|action|12h|12h
2|crazy-hydra|hyun|12h|12h
4|hyun|zero|12h|12p
4|s2|jaedong|overgas|overgas
4|jaedong|hyuk|12p|12p
4|zero|great|overgas|overgas
2|crazy-hydra|juni|12h|12p
3|killer|ggaemo|12h|9p
4|hyun|calm|12p|overgas
4|roro|zero|9p|12p
3|hero|killer|12h|12p
4|killer|soo|12p|12h
4|s2|zero|12h|12p
4|jaedong|perfective|overgas|12p
4|jaedong|action|12h|9p
3|roro|ggaemo|9p|12h
2|hyun|soo|12h|12p
3|zero|ggaemo|12p|12h
4|jaedong|great|12p|overgas
2|soulkey|jaedong|12h|12h
3|zero|killer|9p|12p
2|killer|crazy-hydra|12h|12p
4|juni|ggaemo|overgas|9p
3|hyun|sacsri|12h|12h
4|perfective|calm|overgas|9p
3|hydra|zero|9p|12h
4|hydra|soulkey|12p|9p
2|jaedong|roro|12h|12h
4|action|ggaemo|overgas|overgas
4|calm|hyuk|12p|12h
4|action|hydra|10h|9p
+ Show Spoiler [some notes about the data] +
- The data consists of progames between (inclusive) this game (4/8/2012) and this game (2/22/2011)
- I threw out this game (Killer got DQ'd)
- For obvious reasons, I only used games from TLPD that had VODs
- For simplicity's sake, I grouped the builds by the timing of the first building each player built. The downside of this is that there are no distinctions in the data between things like normal 12pool vs "map dependant" 12pool, 9pool speed vs 9pool lair, 12hatch vs 12hatch into 3hatch ling allin, etc.
- There are actually two exceptions to that last rule - I marked Hyun as 12pooling in this game even though I think he actually 11pooled, and I marked Peace as 9pooling in this game even though his first building was actually an extractor.
- Apologies for neglecting to include VOD URLs in the data - you can still find VODs with a small amount of detective work, but that could have been avoided had I been less dumb :< If I had the opportunity to do this again I would definitely do things differently!
So yeah, I hope this was interesting and useful