Spawning Tool update after a hiatus

Sorry things have gone silent on Spawning Tool recently. Various personal factors (some mentioned in my personal blog) took precedence over Spawning Tool, but I’m somewhat back now. Although most things tend to slow down around the holiday season, I’ll be trying to ramp up as I find more free time to be working on it. As such, I have a few different updates. Continue reading

Reviewing stats from Blizzcon yesterday

Unfortunately, I didn’t actually get to watch any of the WCS Grand Finals at Blizzcon yesterday. Thankfully, there are VODs (stream 1, stream 2) for me to leaf through, so I’m watching just enough of the games to evaluate my predictions. Let’s see how those turned out

SoulKey (Z) v. NaNiwa (P)

I predicted that SoulKey would play a lot of different strategies. He used a 9 Pool, Hatch first into Roach Hydra, a Pool double expand into defense, and then another 9 Pool. That’s quite varied.

Bomber (T) v. MMA (T) Continue reading

Stats for the BlizzCon round of 16 matchups

Over the past week and a half, I have been going through games from the BlizzCon round of 16 players and tweeting out interesting things that I have found by going through the Spawning Tool research page. I just posted a summary of that to TL. That’s reproduced below for your convenience.

BlizzCon is approaching, and there are some pretty amazing match-ups in the round of 16. In anticipation of that, I went through each player’s history in the match-up to see there were any interesting statistics that came out of it. Here’s what I came up with (methodology at the bottom):

SoulKey (Z) v. NaNiwa (P)

  • SoulKey does a little of everything in this matchup. Just check out the tags (ref)

Bomber (T) v. MMA (T)

  • Expect Banshees. They both open Banshees in ~45% of TvT games (ref 1)(ref 2)
  • MMA plays a very Marine-heavy bio in TvT. He made ~80% more Marines on his opponents and went bio in 10/13 games (ref)

HerO (P) v sOs (P)

  • They before in the WCS season 1 finals. They games were really cheesy (ref)
  • HerO likes early Stalkers in PvP, making ~50% more in the first 10 minutes than his opponent (ref)

Polt (T) v. aLive (T)

  • They played in season 1. aLive won 2-1 (ref)
  • By the unit counts, Polt’s TvT looks remarkably normal. One thing is that he doesn’t really play mech much (ref)
  • aLive doesn’t 1 rax expand much in TvT. He does, however, really like to open 1/1/1 into some nifty tech (ref)

Dear (P) v. TaeJa (T)

  • In TvP, TaeJa is 32-2 in games less 25 minutes and 2-5 in games longer than 25 minutes. I guess the strategy is to wear out his wrists (ref)
  • TaeJa also scans on average 2 more times per game (MULEs 2 less times) than other WCS TvZ players. I think this is attributed to his eagle eye in sniping Observers (ref 1)(ref 2)

Jaedong (Z) v. Mvp (T)

  • In ZvT, Jaedong is 11-4 in games less than 20 minutes and 4-17 in games longer than 20 minutes. I think there’s some bias in the quality of the opponents, but that’s still pretty striking (ref)
  • In comparison, Mvp is 8-5 in TvZ longer than 20 minutes, and 62% of his games went that long. (ref)

Maru (T) v. MC (P)

  • Maru could use anything. In 11 games, he went proxy 2 rax twice, 1/1/1 twice, 14 CC 3 times, and 1 rax expand in 4 games. This guy knows how to mix it up (ref)
  • MC has a strange win rate in TvP: he’s 5-0 in games less than 12 minutes, 1-3 in games 12-16 minutes, and 5-3 in games longer than 16 minutes. Looking at the games, he wins fast with cheese in a lot of games, loses mid-length games after failed cheese (usually Oracles), and then does okay in long games (ref)

INnoVation (T) v. duckdeok (P)

  • The only INnoVation TvP games I have are the season 1 finals against sOs. Here’s the link for fun (ref)
  • duckdeok plays REALLY short TvPs. None of 8 games went longer than 20 minutes (ref)

Methodology

I used Spawning Tool for all of these stats. For each, player, I pulled up all of their games in the relevant matchup and, if feasible, looked at the builds (and some replays in ambiguous cases) to determine what builds they used. If you’re interested, I recommend you also play around with the system to see if you can find anything interesting in the data as well.

The replays are largely from major tournament over the past 6 months or so. The data may skewed for 2 major reasons. First, WCS season 3 replays have not been released and are not in the data. Second, WCS season 1 replays are pre-Hellbat nerd. Of course, the usual disclaimer is that players do change styles.

These stats originally appeared on twitter @spawningtool.

And the pitch: the site is only as good as the data, so if you have replays, please upload them! Also, if you’re interested in labeling replays or have ideas for features, PM me or tweet at me. And to stay updated, follow me on twitter @spawningtool. I’ll try to put more stats out as we find out what the match ups for the later rounds are

Protoss versus Protoss Strategy Updated

I have to admit, I don’t really understand PvP. Nowadays, the community agrees that Protoss is the most build order-focused, so there must be some structure in there. Here’s my shot at updating this section with some trends in Protoss play, which will appear on the Protoss Strategy page.

Protoss versus Protoss

PvP is volatile. It’s the only matchup where 1 base play is standard. Because of that, build orders and scouting are very important to ensure that you counter builds and attack effectively. Continue reading

Hierarchical tags for Spawning Tool

I just deployed one of the most exciting Spawning Pool updates ever. Well, most exciting to me, that is: hierarchical tags. Previously, to tag something on Spawning Tool, there were a few heuristics applied to the replays on upload, but the rest were manual tagging of categories and tags. Now, there is structure behind the tags so that a whole tree of tags can be applied when you apply only a single one. This is probably best explained by example.

The primary use case for this feature is build orders. Let’s say you open “15 Hatch, 17 Pool”. That itself is a tag. This build, however, is also a “Hatch First” build as well as a “Fast Expand” build. Previously, you would need to enter all 3 of these tags to get the replay to appear under all 3 types, and if you uploaded another “15 Hatch, 17 Pool”, you would have to do the work all again. Now, the backend knows the structure that “15 Hatch, 17 Pool” is a type of “Hatch First” build, so it will implicitly label the build for browsing. Check out http://spawningtool.com/replays/?tag=309 to see it in action. Continue reading

Follow me on twitter, @spawningtool

Quick update on Spawning Tool progress.

Sorry that actual development of the site has been slow recently. There are various factors, but the most important one is that I have been having a lot of forearm soreness recently, so I’m trying to let my hands rest. I readjusted my desk both at work and at home, and I’m stretching regularly over the course of the day. I think it’s working, and I plan to get back into serious development next week.

To stay active, though, I have made a big push recently towards marketing and content. I posted an official TeamLiquid thread for Spawning Tool. It’s decayed a bit, and I’m not really sure what the proper etiquette is for appropriate bumping, but I guess I’ll learn soon.

I’m also tweeting from @spawningtool. Again, I don’t really use my personal twitter account, so I’m not really sure what the proper etiquette is here, but I’ll try to avoid major gaffes. My plan is to regularly tweet interesting stats derived from replay data as a proof of concept for the site. Follow me on twitter if you’re interested in that. Continue reading

Build orders from KT Flash’s stream

If you missed all of the buzz, Flash streamed himself laddering for almost 3 hours earlier today. You can find the recording on twitch, but if you’re just interested in his build orders, I have them here. Let me know if you see any mistakes; I probably missed things (like I think I missed him get combat shields most of the time), so let me know what i need to fill in

Game 1 – TvP on Frost LE http://www.twitch.tv/ktrolsterflash/b/453050408?t=5m10s

Bio

  • 10 Supply Depot
  • 14 Command Center (at natural)
  • 14 Barracks
  • 16 Barracks
  • 17 Scout
  • 18 Marine (basicall constantly)
  • 19 Bunker (at natural choke)
  • 19 Orbital Command x2
  • 21 Refinery
  • 22 Refinery
  • 26 Supply Depot
  • 28 Tech Lab on Barracks
  • 30 Supply Depot
  • 32 Stimpack
  • 5:50 34 Engineering Bay (gets upgrades at some point)
  • 37 Reaper? (I think he needs a better scout)
  • 6:30 +1 weapons
  • 42 Reactor on Barracks
  • 6:45 Missile Turret at natural
  • 44 6:55 Factory (Reactor when done)
  • 47 7:15 3rd Refinery
  • 7:45 54 Command Center (in base)
  • 7:55 Starport
  • (Still Marines)
  • 65 8:40 Barracks x3
  • 8:55 swap Starport onto Reactor, Medivac x2, Refinery
  • 9:10 +1 armor
  • 9:30 pushing out with only Marines
  • 9:45 starts producing Marauders
  • 10:15 3rd base taken
  • 11:00 Engineering Bay, Armory
  • 11:20 takes gases at 3rd base
  • 12:00 Vikings start coming out (he saw Colossi with earlier push)
  • 12:30 Starport, +1 air weapons

Wins in about 16:00 Continue reading

Protoss versus Zerg Strategy updated

Wow, PvZ feels like it has changed a lot over the past few months. Primarily, Naniwa’s 1 Gate Expand has changed how we think about the matchup, but the HotS meta-game has also settled since I first wrote up this guide. Here’s the new version you will see on the Protoss Strategy page. As usual, let me know if you see any mistakes or have any questions or feedback.

Protoss versus Zerg

Of the 3 matchups, PvZ is the most dynamic. Whereas PvP is build order chaos and PvT generally plays out similarly, PvZ has safe economic openings into a variety of styles. You should watch this Apollo video for a solid way to play PvZ. Continue reading

Spawning Tool: big features, backend changes, product decisions

The past few days have been very productive for me on Spawning Tool on several fronts. Not only did I work through several features, I made some important backend changes. Consequently, I have also thought on future development, product, and business concerns that I think might be of interest to the community.

Let’s start with the backend changes. First, Graylin updated sc2reader to 0.6.0, which brought 2 important changes for Spawning Tool: support for patch 2.0.10 replays and support for GameHeart replays. See my last post for what GameHeart parsing entailed. Importantly, this brought in ASUS ROG Summer 2013 replays and corrected data from various other replays. Second, I migrated from a mysql to a postgres database tonight. This change won’t impact end-users much (other than some load times), but it makes me feel better about the data integrity.

Next up are the new features. First, you can now view counts on the abilities casted in a game so you can see that Protoss players typically use Psionic Storm about 2.67 times a game, whereas they can expect 1.72 EMPs and 1.37 Snipes against them. The data is pretty rough when summarized from so many replays like this, but hopefully more specific queries will yield more interesting results.

You can also specify times to capture particular counts, so you can see that on average, 12.32 SCVs are built in the first 5 minutes of a game. You can now also filter replays by the date played so you can be sure to only consider the latest and greatest replays from your favorite players.

So all of these changes have me looking forward at the direction of Spawning Tool. Over the past few months, I have been talking a lot with ChanmanV, who has provided product direction for Spawning Tool. The current feature set represents what we consider a Minimum Viable Product (MVP) for showing what basic statistics we can pull out of replays. It’s been a strange road, but Spawning Tool today is far more developed than I imagined when I first sat down pulling an all-nighter to just build something. I originally envisioned it as a proof of concept and technical achievement for the community to get excited about. Today, it’s a product when potential value, and I need to re-evaluate it in that context.

The primary change is that the Spawning Tool site is no longer open source. It was originally open source because it was supposed to be a demonstration for the community, and I hoped to pick up collaborators along the way. Well, I didn’t find many collaborators (though I’m still open to it; email me if you’re interested!), and between forums, code contributions, and the still open source spawningtool parser, I hope I’m doing enough. There are lots of great reasons to open source things, but today, the site doesn’t quite fit.

The other aspect is that I need to start looking forward towards a business plan. Before I scare you off, know this: I intend for Spawning Tool to always be free for public, individual use. The big picture goal of the site is to make quantitative thinking pervasive in the StarCraft community, and I don’t want to change that. I thankfully have a day job that I really like, and this is something that I’m doing for fun and for the community on the side. Given that, there are server and development costs to cover. That’s currently trivial (~$30/month), but those will increase with scale. I’m thinking on a lot of different ideas, so let me know if you have any thoughts on it. Hopefully we can get bigger, commercial entities interested and have them throw us some change, but nothing is locked down.

As usual, leave a comment or email me (kevin@kevinleung.com) if you have any thoughts. And if you’re here for my StarCraft strategy content, I’m working on updating my Protoss strategy guide right now. I had forgotten how much cheese you get from Zerg in real laddering, like this 8 Pool. I’ll try cater the content to this type of play.

Spawning Tool updates: units killed, split win rates

3 big updates for Spawning Tool this week.

First, you can see units killed and units lost in the research tab. For example, you might be curious to know how many Marines a certain player killed during Dreamhack Valencia or how badly their workers are harassed on average. These stats, of course, are very dependent on how long a game goes and what units composition are, but they’re in there and maybe fun to consider.

Second, I split out the win rates data onto its own page from research, so for any of your favorite filters, you can see how the games go. The most obvious use is to see how a player does in different matchups. It may be unsurprising how good JvZ is (the other numbers may be a bit off because of GameHeart replays; more on that next paragraph), but you might be surprised to see that TLO wins 80% of his games from 21 to 25 minutes long, but only wins 16.7% (1-5) of games longer than that. How strange.

Third, GameHeart support is coming soon. GameHeart games are unusual for a few reasons. First, the players and teams aren’t reflective of the actual matchup because the actual players are only picked in the in-game lobby, so the observers are mixed into the data and races may not be accurate. Second, all events are mistimed because the actual game doesn’t start until the in-game lobby is set. Finally, because the teams are misaligned, the winner may not be marked correctly.

So the fix is coming soon, which I can explain the process of. I mentioned before that Spawning Tool is actually built on top of an open source replay parser. Well, Spawning Tool is actually built on top of sc2reader, an amazing open source library that literally turns 1s and 0s into comprehensible data structures. Since many people may be interested in having GameHeart replays normalized to work like standard replays, this functionality should be added to sc2reader (not spawningtool) since it will have better reach that way. sc2reader was cleverly built to allow for plugins for specific functionality. Since sc2reader is an open source project, I wrote up a plugin to normalize GameHeart replays and submitted it to the maintainers of sc2reader to be incorporated into the primary project. If they like it, they can accept the request, and it will be available for everyone (including me) to use. Anyways, get excited about that because there are a lot of Spawning Tool replays that aren’t quite working correctly.

And on that note, if you’re interested in working with StarCraft data (whether replays, profiles, or anything else), I recommend you check out the new API and Data Analysis Forum that Blizzard made. As you might have guessed, the StarCraft developer community has some amazing people at the forefront, and I think it’s a supportive and generous group of people. If you’re interested in contributing or have an idea, chime in there or check out and contact someone else with a project in this thread. No matter where you’re coming from, we could always use a helping hand.