Some say it’s vital to never miss an inject. Is that right?
JaKaTaK and GGTracker investigate.
Many in the community think that consistently keeping your Hatches injected with Larva is an important skill for any Zerg player to have. For example, here are some recent discussion threads on allthingszerg.
In TheStaircase training methodology, we set benchmarks for several aspects of performance, including spending, supply blocks, and larva injects. In order to set the appropriate benchmarks for TheStaircase, we studied 44,903 1v1 HotS Ladder games from the GGTracker system, across every league and region.
If the conventional wisdom is right, and consistent injects are an important skill, then we would expect to find that lower-league players would have trouble keeping their hatcheries consistently injected, and that higher-league Zergs would keep their hatcheries injected a notably higher percent of the time.
We were in for a surprise. And as a result, we ultimately decided not to use inject consistency as part of TheStaircase.
The Data
When you upload a replay to GGTracker, you can see an Inject Timing chart for each Zerg player:
<%= image_tag "inject0.png" %>
-
This particular chart comes from a match IdrA played on Whirlwind LE.
Each row is a Hatchery/Lair/Hive. Times when larva-inject is active are colored rectangles.
GGTracker also computes an Inject % score, in this case 62%. That means that in this game, hatches were actively processing injected larva 62% of the time.
100% would mean that hatches were processing inject larva literally all of the time. If you have one queen per hatch and never miss an inject, you will score 90%. That’s because it takes the Queen 44.44 seconds to generate enough energy to inject larva, but the larva are done injecting after 40 seconds. See the Technical Notes at the end of this article for more detail about how the Race Macro score is computed.
So, with a lowly 62%, are we saying IdrA did a bad job with his injects in this game? Not at all. We think IdrA did just fine.
To explain, let’s look at our 44,000 games. Do higher-league players inject more consistently than lower-league players?
+
This particular chart comes from a match IdrA played on Whirlwind LE.
Each row is a Hatchery/Lair/Hive. Times when larva-inject is active are colored rectangles.
GGTracker also computes an Inject % score, in this case 62%. That means that in this game, hatches were actively processing injected larva 62% of the time.
100% would mean that hatches were processing inject larva literally all of the time. If you have one queen per hatch and never miss an inject, you will score 90%. That’s because it takes the Queen 44.44 seconds to generate enough energy to inject larva, but the larva are done injecting after 40 seconds. See the Technical Notes at the end of this article for more detail about how the Race Macro score is computed.
So, with a lowly 62%, are we saying IdrA did a bad job with his injects in this game? Not at all. We think IdrA did just fine.
To explain, let’s look at our 44,000 games. Do higher-league players inject more consistently than lower-league players?
<%= image_tag "inject1.png" %>
In this chart, the X-axis is the game length in game minutes. The Y-Axis is the inject%. The lines show the average Inject % for games played by Zergs in a particular league for games of a particular length. So, for example, 12-minute games played by Master Zergs have an average inject score of 66.4%.
So yes, higher-league players have a higher Inject % than lower-league players. But not by much! Even where the difference is largest, at the 12 minute mark, Masters score an average 66.4% and Silver players an average 61.3%. That’s a difference of 5.1%, which is not much when you consider that the overall population of both Silver and Master games have a standard deviation of 11-13%. The standard deviation is twice as large as the difference between Silver and Masters.
That means[1] that about 30% of Masters Zerg games have an inject % that’s worse than the average Silver inject %. They did worse than the average Silver game, yet somehow they are in Masters with sub-Silver injects.
If consistent injects mattered a lot, then we’d see a much larger difference[2] in inject % between the various leagues, from Silver up to Master. For other player statistics such as APM and Spending Quotient, that is exactly what we see.
How can this be?
The Theory
Here’s a theory: injects matter a lot in the early game, and then matter less and less.
Injects are important because they keep you from getting larva-blocked. “Larva-blocked” means you want to make units but you can't because you have no larva.
Zerglings are the most larva-intensive unit in terms of larva per 1000 minerals. To make 1000 resources-worth of zerglings you need 20 larva. To make 1000 resources-worth of Ultralisks, you need 2 larva. That's 10x less larva per resource!
Injects matter less after the beginning of the game for two reasons:
1) The larva-to-resource ratio is highest for zerglings and drones, which are most important at the beginning of the game.
2) Once a location is mined out, the hatch at that location keeps supplying larva, also reducing the possibility of larva blockage. So in late game, even without consistent injects you may not get larva blocked.
Another reason people can avoid getting larva-blocked without having perfect injects is that people make macro hatches, which steadily supply larva, reducing the possibility of larva blockage. By making a macro hatch you are spending 350 minerals (don’t forget the drone) in order to reduce the need to focus your APM and attention on perfect injects.
At some point in any game, the regular flow of larva you get from your hatches, including mined-out hatches, is enough to supply the larva you need for the resources you are producing.
Let’s ignore minerals vs gas for the moment and just consider the resource per larva cost of various Zerg units. Zerglings and drones are 50 resources per larva. Roaches and overlords are 100. Hydras are 150, Mutalisks are 200. The mighty Ultralisk is 500 resources per larva.
Let’s say we want to make an army out of units that average 100 resources per larva. How good do our injects need to be in order to avoid getting larva-blocked?
A fully-saturated base gathers 861 minerals/minute and 242 gas/minute = 1103 resources/minute. A queen can generate enough energy to inject larva once every 44.44 seconds, which creates 4 larva. So that's 11.11 seconds for a larva, or 5.4 larva per minute. Together with the 4 larva per minute from the hatch itself, that’s 9.4 larva per minute, which is not quite the 11 larva per minute we'd need.
But if we have any macro hatches, or any hatches that are mined out, or any bases less than fully saturated, or we're making units more expensive than 100 resources per larva, then we don't need perfect injects.
After the early game, we will tend to make units that use more resources per larva, and we will have mined-out hatches that are still producing larva. For both reasons, perfect injects become less important.
Questions & Answers
Exactly how is Inject % Computed?
Inject % = (total # of minutes all hatches spent with injected larva) / (total # of minutes all hatches were active)
A hatch is considered active from the first time a Queen injects it until the last time the hatch is selected by anyone for any reason, or the game ends. If we can someday get the actual hatch death time, we will use that instead.
For example, let’s say you had two hatches in a game that you won. The first one got its first inject at 4:45, and the second one at 7:45. You won the game at 10:45. So your first hatch was active for six minutes, and the second one for three minutes. So that’s nine total minutes that hatches were alive.
And let’s say you did six injects on the first hatch and three on the second. That’s nine injects total, and each inject lasts for 40 seconds. That’s six total minutes of injects being active. So your inject % for that game is 6/9 = 66.6%.
Why don’t you simply correlate Win % to Inject %? Wouldn’t that show us if injects matter for winning games?
This could be done, but it’s very easy to do it wrong because of how the ladder system works.
The ladder system puts you up against harder opponents every time you win, and easier opponents every time you lose. It attempts to push everyone's winrate to 50%.
Let’s do a thought experiment, a mental model. Suppose that inject % really is an important skill, and there are nine other important skills, and the skills are all correlated but not perfectly.. And let’s say that the winner of any game is whoever is more skilled, plus some random noise.
Since the ladder system is in effect, players would gradually migrate to the spot on the ladder corresponding to the rank of their skills, with the noise causing random fluctuations in ladder/MMR rank.
When two people play against each other on the ladder, they have approximately equal MMR. Since they are meeting on ladder and have approximately equal MMR, the expected win% is 50% for each. If one of them has better inject skill (or in general, better race macro), then, since they have approximately equal MMR, the other player must have superiority in other skills to compensate. Therefore we would not see any correlation between win% and inject%, even though in this model inject% is important.
However, in this same thought experiment, note that there will be a relationship between inject% and MMR. Since MMR is related to league, which we can observe, we would expect to see that higher-league players have higher inject%.
This same argument applies to analysis of any other skill variable. That is why Do You Macro Like a Pro looks at a player’s league rather than their win%.
Why are Grandmaster and Bronze not shown?
We have fewer Grandmaster and Bronze games (641 GM), so there’s a lot of up and down noise in the averages. The averages for GM and Bronze don’t contradict our conclusions at all, but it makes the graphs more distracting.
Why not look at the absolute # of injects rather than the inject %?
That would be interesting! I would expect that higher-league players indeed have more bases sooner, and do more injects.
Can I look at the data?
Yes! Here’s the spreadsheet: http://bit.ly/10ExMaD
If there’s something else you need, email dsjoerg at ggtracker dot com and he’ll hook you up.
Directions for Future Exploration
Maybe we’ll get more meaningful results if we measure:
- inject % from the first inject to the last, instead of instead of from the first inject to the hatch’s death.
- larva-blocks
- Queen energy
Acknowledgments
While making final revisions to this article, we found this TL post from December 2011 that makes a similar argument showing inject charts from seven progamers.
Thanks to Lings_of_Wiberty, Beta2K, Petered, Shaldengeki, Tenklavir who gave valuable feedback on earlier versions of this article. The errors that remain here are ours alone.
[1] assuming normally distributed scores
[2] The standard deviation of inject% is pretty consistently 10-12% across various game durations and leagues
diff --git a/app/views/home/privacy.html.erb b/app/views/home/privacy.html.erb
index 1e89835..d3dd7d2 100644
--- a/app/views/home/privacy.html.erb
+++ b/app/views/home/privacy.html.erb
@@ -8,7 +8,7 @@
Privacy Policy
-Hi! Here are the details about how ggtracker, Inc. (GGTracker) manages your personal information. By using the GGTracker website (the Site), you consent to the data practices described here.
+Hi! Here are the details about how gggreplays manages your personal information. By using the GGGReplays website (the Site), you consent to the data practices described here.
Information Collected
@@ -20,7 +20,7 @@ You provide GGTracker with personally identifiable information, such as your e-m
Use of Information
-GGTracker uses the information we collect to keep in touch with you, to operate and improve the service, and to conduct statistical research about Starcraft and GGTracker. We may send you promotional emails about GGTracker from time to time. You may opt out of those emails by emailing “UNSUBSCRIBE” to hello@ggtracker.com.
+GGTracker uses the information we collect to keep in touch with you, to operate and improve the service, and to conduct statistical research about Starcraft and GGTracker. We may send you promotional emails about GGTracker from time to time. You may opt out of those emails by emailing “UNSUBSCRIBE” to gggreplays@gmail.com.
GGTracker does not sell, rent or lease its customer lists to anyone without your permission.
@@ -44,11 +44,11 @@ Please note that your data will be transferred to the United States or other cou
Corrections to Personal Information and Information Removal
-You may review, revise or request removal of your account information at any time. Please send an e-mail to hello@ggtracker.com.
+You may review, revise or request removal of your account information at any time. Please send an e-mail to gggreplays@gmail.com.
California Online Privacy Protection Act Compliance
-California Civil Code Section 1798.83 permits Users who are California residents and who provide personal information in obtaining products or services for personal, family or household use to request and obtain from us once a year, free of charge, information about the personal information (if any) We disclosed to third parties for direct marketing purposes in the preceding calendar year. If applicable, this information would include a list of the categories of personal information that was shared and the names and addresses of those businesses with which customer information was shared in the immediately prior calendar year. Please send such requests to hello@ggtracker.com or to the mailing address at the end of this page. Please put “Request for California Privacy Information” in the subject of the email inquiry. We will provide the requested information to the e-mail address in Your User Profile or otherwise as you may specify. Please note that only information which is required to be provided under this law will be included in Our response.
+California Civil Code Section 1798.83 permits Users who are California residents and who provide personal information in obtaining products or services for personal, family or household use to request and obtain from us once a year, free of charge, information about the personal information (if any) We disclosed to third parties for direct marketing purposes in the preceding calendar year. If applicable, this information would include a list of the categories of personal information that was shared and the names and addresses of those businesses with which customer information was shared in the immediately prior calendar year. Please send such requests to gggreplays@gmail.com or to the mailing address at the end of this page. Please put “Request for California Privacy Information” in the subject of the email inquiry. We will provide the requested information to the e-mail address in Your User Profile or otherwise as you may specify. Please note that only information which is required to be provided under this law will be included in Our response.
Use of Cookies
@@ -67,11 +67,11 @@ If any provision of the Terms and Conditions of Use or this Privacy Policy is fo
Contact Information
-GGTracker welcomes your questions or comments regarding this Statement of Privacy. You may contact us via email at hello@ggtracker.com or our mailing address: GGTracker, Inc., 537 2nd Street, Brooklyn NY 11215.
+GGGReplays welcomes your questions or comments regarding this Statement of Privacy. You may contact us via email at gggreplays@gmail.com or our mailing address: GeeGeeGaming UG (haftungsbeschraenkt), Schoenebergerstr.19, 33619 Bielefeld (Germany).
-Last modified: January 24, 2013.
+Last modified: November 24, 2017.
diff --git a/app/views/home/saturation_speed.html b/app/views/home/saturation_speed.html
index b71995d..7d8b4f5 100644
--- a/app/views/home/saturation_speed.html
+++ b/app/views/home/saturation_speed.html
@@ -34,7 +34,7 @@ Using all the HotS 1v1 Ladder matches in the GGTracker library, we compute the median Saturation Speed from Silver to Masters for each matchup. Sometimes the line from Silver to Masters is not so straight -- we find the straight line that best approximates the trend (using least-squares regression). You can see the resulting benchmark values here.
+Using all the HotS 1v1 Ladder matches in the GGTracker library, we compute the median Saturation Speed from Silver to Masters for each matchup. Sometimes the line from Silver to Masters is not so straight -- we find the straight line that best approximates the trend (using least-squares regression). You can see the resulting benchmark values here.
diff --git a/app/views/home/spending_skill.html b/app/views/home/spending_skill.html
index 9c2db2a..7467c45 100644
--- a/app/views/home/spending_skill.html
+++ b/app/views/home/spending_skill.html
@@ -7,7 +7,7 @@