• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 09:46
CEST 15:46
KST 22:46
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
Tournament Spotlight: FEL Cracow 20257Power Rank - Esports World Cup 202577RSL Season 1 - Final Week9[ASL19] Finals Recap: Standing Tall15HomeStory Cup 27 - Info & Preview18
Community News
Google Play ASL (Season 20) Announced24BSL Team Wars - Bonyth, Dewalt, Hawk & Sziky teams10Weekly Cups (July 14-20): Final Check-up0Esports World Cup 2025 - Brackets Revealed19Weekly Cups (July 7-13): Classic continues to roll8
StarCraft 2
General
Power Rank - Esports World Cup 2025 Tournament Spotlight: FEL Cracow 2025 #1: Maru - Greatest Players of All Time I offer completely free coaching services What tournaments are world championships?
Tourneys
FEL Cracov 2025 (July 27) - $10,000 live event Esports World Cup 2025 $25,000 Streamerzone StarCraft Pro Series announced $5,000 WardiTV Summer Championship 2025 WardiTV Mondays
Strategy
How did i lose this ZvP, whats the proper response
Custom Maps
External Content
Mutation #239 Bad Weather Mutation # 483 Kill Bot Wars Mutation # 482 Wheel of Misfortune Mutation # 481 Fear and Lava
Brood War
General
Google Play ASL (Season 20) Announced [Update] ShieldBattery: 2025 Redesign Dewalt's Show Matches in China BGH Auto Balance -> http://bghmmr.eu/ BW General Discussion
Tourneys
[Megathread] Daily Proleagues [BSL20] Non-Korean Championship 4x BSL + 4x China CSL Xiamen International Invitational [CSLPRO] It's CSLAN Season! - Last Chance
Strategy
Simple Questions, Simple Answers [G] Mineral Boosting Does 1 second matter in StarCraft?
Other Games
General Games
Stormgate/Frost Giant Megathread Nintendo Switch Thread Total Annihilation Server - TAForever [MMORPG] Tree of Savior (Successor of Ragnarok) Path of Exile
Dota 2
Official 'what is Dota anymore' discussion
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Heroes of StarCraft mini-set
TL Mafia
TL Mafia Community Thread Vanilla Mini Mafia
Community
General
US Politics Mega-thread UK Politics Mega-thread Stop Killing Games - European Citizens Initiative Things Aren’t Peaceful in Palestine Russo-Ukrainian War Thread
Fan Clubs
INnoVation Fan Club SKT1 Classic Fan Club!
Media & Entertainment
[\m/] Heavy Metal Thread Anime Discussion Thread Movie Discussion! [Manga] One Piece Korean Music Discussion
Sports
Formula 1 Discussion 2024 - 2025 Football Thread TeamLiquid Health and Fitness Initiative For 2023 NBA General Discussion
World Cup 2022
Tech Support
Installation of Windows 10 suck at "just a moment" Computer Build, Upgrade & Buying Resource Thread
TL Community
TeamLiquid Team Shirt On Sale The Automated Ban List
Blogs
Ping To Win? Pings And Their…
TrAiDoS
momentary artworks from des…
tankgirl
from making sc maps to makin…
Husyelt
StarCraft improvement
iopq
Socialism Anyone?
GreenHorizons
Eight Anniversary as a TL…
Mizenhauer
Customize Sidebar...

Website Feedback

Closed Threads



Active: 725 users

[G]/[I] Wandering and worker saturation

Forum Index > Brood War Strategy
Post a Reply
ix
Profile Joined July 2003
United Kingdom184 Posts
Last Edited: 2010-01-30 21:46:50
January 30 2010 21:03 GMT
#1
I've been messing around with Starcraft macro recenty as a part of learning about the game and decided to share some of my thoughts, both for those who don't know these things and to learn more from experienced players. This was about working out the theory, what is possible is, of course, not always practical but some of this can be extended to useful rules of thumb to improve your game. I hope that some of this material is new, with a game as old as Starcraft it's hard to know exactly what is known.

Useful pieces on these topics include:
Catyoul's Python Mineral patch mining rates
http://www.teamliquid.net/forum/viewmessage.php?topic_id=92971

CDRDude's Worker Saturation post
http://www.teamliquid.net/forum/viewmessage.php?topic_id=83287

Anthrax's Gathering Review
http://www.yellowchrome.org/1com/sclegacy/final_review.pdf

Dead9's Terran Python Mineral patch mining rates Terran
http://www.teamliquid.net/blogs/viewblog.php?topic_id=80414

IMPERVIOUS on Mining rates
http://www.teamliquid.net/forum/viewmessage.php?topic_id=89939

Chinese Mining rate figures
Link broken now, anyone got a new link? They were very accurate

The figures from these posts are pretty good and generally in agreement with the ballpark figures I have found. All of my experiments are with Protoss probes and done at Fastest with time measured using APMLive's clock. The results are likely to be slightly worse for Zerg and Terran.


Ballpark figures

What has been missing from previous discussion is accurate information on maximums and an understanding of wander. Let's start with some numbers (Protoss).

1 Probe Minerals Per Minute
Ideal Patch 76
Near Ideal 72
Normal/Bad 56-68

Infinite Probes
One patch max ~142.4
9 patches Theoretical ~1281.6
9 patches Avg Real ~1270

So there is an absolute upper limit to how many minerals probes can produce in a given time. This seemed to be something many players wondered about. Now how obtainable is this in reality?


Wander

If you look at CDRDude's mineral production chart:
http://img123.imageshack.us/img123/7841/picture2ok6.png

You might assume he had made mistakes based on the shapes of the curves, and this is part of what has confused people about maximum gathering rates. He didn't make a mistake and was correct in suggesting it was wandering behaviour. A more correct version of the minerals per minute chart would show increasing variation, curves with a width from ten workers up to three times as many workers as patches. This raises a very interesting point about Starcraft- between more workers than mineral patches and before stability (I will come to this) your mineral income is semi-random and can vary by +/-100 per minute with identical worker counts. This might be a small part of why Starcraft feels both so fresh and fun, even after so long.


Stability

What previous examinations of mining rates seem to have missed, and why there is so much confusion about what is optimal, is the ultimate state that sufficient workers reach of stability. This is when there is absolutely no wander at all and as a result, all of the mineral patches are effectively maxed out. You can usually see this by eye, although you may have to look several times to be sure as workers can look stable for sometimes up to 30 seconds before collapsing back into bad wandering.

Understanding worker AI helps; when a worker attempts to mine a patch (a discrete action that happens when a worker arrives at a patch and when the previous worker finishes mining if the worker is queued) three things can happen. If it attempted to begin mining within a few frames of the current miner it will wait. You can see this by taking 12 workers and spamming clicks on a patch then stop clicking. The workers tried to mine at the same time, one began mining and the others formed a queue. These workers will not wander no matter how many patches are free until they have left the queue, each worker has a position in the queue, and, when the patch becomes free only the next one in order will attempt to mine. The worker returning minerals will do so and return to the patch, seeing it occupied it will wander, looking around up to 8 matrixes for the nearest free patch to move to, moving to mine from that patch regardless of pathing distance; this is why manner pylons make workers move to the back of the mineral patch.

In a real game, until minerals are saturated, there will always be times when minerals are not mined. If this coincides with a worker looking for a new patch to mine from the worker will move there, usually multiple workers will do so. The patch will sometimes have become occupied before the workers reach it, causing the 'train' of wanderers to stop if no patches are free or to train to the next free patch. Often free patches alternate between distant minerals patches at either end of a mineral line causing extreme inefficiency in the workers. Wander reduces mining rate not only by the travel but also by stacking workers on a patch when they arrive at the same time and by reducing the saturation of the area they came from, often causing one or two mineral patches to be completely ignored for several seconds even with a high worker count and inevitably causing another round of wander back to those patches.

This is why wander costs you so much and why it's somewhat random, it can involve one or two workers all the way up to nine or so when that's one third or more of your total miner count. It often follows periodic behaviours rather like a sin wave although this is hard to measure due to the short-lived nature of each state of wander and difficulty of comparison to create averages. The average figures given over five or ten minutes (Chinese mining rate figures, CDRdudes's, etc) are pretty good guides but at any moment your rate can be quite different to that.

Something that was very interesting was the effect from 22 workers on 9 patches to 23, possibly supporting the 2.5 workers per patch conventional wisdom. 23 workers usually produce around 50 less minerals per minute than 22, the wandering gets that much worse. The problem is that in a real game you wont be counting that accurately and will easily end up costing yourself minerals with a useless worker if you're tring to use 2.5 as a guide.

At three workers per patch and above your miners can reach the state of stability. At this rate every patch is constantly mined meaning no wander happens. It can take anywhere from twenty seconds to over five minutes to go from wandering to stable, somewhat dependent on the spawn's mineral arrangement. When you reach stability with ~27 workers (more allow you to reach stability faster) your mineral gathering rate will jump from between 1050 and 1150 to a stable 1270. 100-200 minerals per minute is not trivial.

Fewer or split mineral patches means workers are noticeably quicker to stabilise so 3 workers per patch on an expansion is usually a good idea, it will pay more than the figures most people have given would lead you to believe.


Optimisation

In a perfect world how many miners would max out minerals? There seems to be a strong myth that two workers would max out all patches and only the AI messes this up. This is complete nonsense and only a few ideal patches are maxed out by 2 workers (and sometimes it is dependent on the matrix the miner mines from, some are considerably better than others, the 12 o'clock Python Natural's right-most patch has two stable mining positions (as in if you tell the probe to do it it keeps doing it in the same place), the left position turns diagonally right to mine and the path is a straight line down and back from minerals to nexus, producing 76 minerals per minute. The other position directly below the mineral patch paths to the middle of the nexus to return and only mines 64 per minute. So far so trivial you say, well when you want to achieve saturation that is the difference between two workers and three.

Any patch that produces over 72 minerals per minute can be saturated with two workers, 72 per min patches are sometimes stable and sometimes not, possibly missing single frames of mining due to factors I don't understand (is there a limited rate of mineral return, like one mineral or gas per frame per Nexus?) but enough to set off mineral-line wide wandering. So unstable 72s and those that produce less require 3 workers. Generally to achieve stability you must have 3 times as many workers as patches but once it's happened you can remove optimal excess workers (sometimes optimal patches will already have only 2 and the excess workers will be queued 3 deep with another travelling for another patch). Python 6 o'clock can be maxed out with 25 mineral miners (2 ideal patches, 3 more near ideal but unstable). At expansions you could usually potentially remove one or two workers, the excess workers should be removed smoothly by telling them to mine gas or distant minerals as they may mess up pathing and cause wandering when removed otherwise.


Achieving stability by hand

I have not discovered a viable method for this yet, not one that can be used in a real game. Time usually settles them, to do it manually you would need to clone nine workers to nine patches and once those were mining, before they finished, clone the remaining 18 workers in pairs to the nine patches, or clone groups of three adding each to a patch by spam clicking to queue them. It may be possible to significantly reduce the time stability takes to attain by, once the workers are mining, taking 3 workers to a bad wander patch or patches and spam clicking them on it so they queue mine it, stabilising it for a bit. It does have interesting implications for macro in the BWAPI contest, if anyone is coding for this I'd love to work with you on breaking AI macro. There are other possibilities too, an idea suggested by IMPERVIOUS, where multiple adjacent patches could have one standby worker waiting to pick up the slack from three pairs of workers.


Reality

In a real game, of course, the above is unlikely to be viable. What is achieveable?

1. You have a useful yardstick, something that has been bugging me as a player- if there is no wander minerals are maxed out, you do not need more workers unless you're planning on a Maynard (and even then, I think the economics of this are questionable).

2. Harassment of workers really hurts, there is an invisible cost of 100-200 minerals per minute for up to five minutes on a saturated mineral line for harassment, although a lot of the time you will either have accidentally oversaturated, reducing this effect somewhat, or are playing many base, in which case the economics are likely to be sub-saturation.

3. You're probably messing up your workers every time you want to build something, again keeping them in a permanent state of wandering. For Protoss, for who this is most applicable, it is worth considering the following- use a builder probe and leave the miners alone. Use a natural probe to build as the natural settles down much more quickly than the main or finally: learn to take from and return your builder workers to an oversaturated ideal patch (3 workers). It is useful to know these ideal patches anyway as they give you an early boost by splitting to them at the beginning. Once a mineral line is stable you can put a probe anywhere on it and it will stay on that mineral so you could make a habit of using the furthest patch and oversatuating by one.

4. Don't do trivial worker transfers from saturated bases, either take a lot (5-6 plus) or none, it will cost you more than it gains unless the base is horrendously oversaturated.

5. Three workers per patch is the most you need, given the relative timings of naturals and the productive ability of multiple nexuses to make new probes going over this limit to transfer seems doubtful in effectiveness. I think this is the next thing I'll have a look at.

6. If you maintain your workers in the stable state for any length of time the mineral patches at a base will run out at a far more similar time than if it wanders all game when a few patches will have hundreds of minerals remaining. It's the same patches causing wandering and running out late.

If you are two base (main and natural), and I'm very interested to hear input from more experienced players on this as this is completely theoretical, I think the 2.5 worker saturation figure is likely to be complete nonsense. If you were to do a timing attack it would make sense, otherwise, if you're planning on further expansions or on 2 base economy you should continue worker production straight to 3x workers/patches. What is the necessary army food count in each match up? Does anyone saturate more than 2 bases? The worker count for 2 bases saturated seems to match up very well with 5 bases (roughly what seems to happen when both players P and T go for massive macro games) one worker per patch, a nice transition between what seem like the two ideals of economy- fastest gathering by saturation and greatest efficiency by one probe per patch.

If you are one base by 6 minutes game time (when you can have produced the necessary 30 workers for mineral and gas saturation, closer to 5 minutes on an 8 patch main, 12.6 seconds per worker) I think even my more extreme ideas of optimisation are worth following, at least a slight overproduction and then use a builder to avoid disrupting workers. This would boost your mineral income by almost 20%. You could even set the few workers you remove from ideal patches to distance mine, though the income from this is universally terrible, Heartbreak Ridge being the best I've found at around 24 minerals per min per worker from main to nat. 3-4 distance miners equals one ideal patch miner.

Holy Wall of Text, Batman. Just to make it clear I'm only a scrubby C- player and am not presenting this as a good guide to what really works in game, that would take comment from more experienced players. I do think the awareness of not disrupting your own workers when taking workers to build is useful and applicable when you're at higher worker counts, as is, for newer players like myself, the knowlege you can stop making workers when wander stops.

I've included a savegame of 6 o'clock Python saturation with the main and natural stabilised, it's a useful thing to have to see how removing and adding workers causes wander to return and how to optimize worker numbers.

http://www.filedropper.com/python6mainandnatstable3x

It's a trivial thing to create for yourself on any map- 3 times as many workers as patches and wait for them to settle down.
ajmbek
Profile Joined November 2008
Italy460 Posts
January 30 2010 21:34 GMT
#2
havent read jet but sounds really good (:
good job for writing this
Sic iter ad astra
Nightmarjoo
Profile Blog Joined October 2006
United States3360 Posts
January 30 2010 21:39 GMT
#3
http://www.panschk.de/mappage/newsscript/viewarticle.php?newsid=22
aka Lyra; My favourites: July, Stork, Draco, MistrZZZ, TheStc, LastShadow - www.broodwarmaps.net - for all your mapping needs; check my stream: high masters mech terran: twitch.tv/lyrathegreat
spinesheath
Profile Blog Joined June 2009
Germany8679 Posts
Last Edited: 2010-01-30 21:46:52
January 30 2010 21:45 GMT
#4
I didn't read most of it (TSL is on!), but anyways, I thought it might be good to add some quite detailed information about gas mining rates.

Gas Issue

This is a map thread of an UMS map that allows detailed testing of gas mining rates, there is a table of all the gas positions and mining rates for each race a bit below.
If you have a good reason to disagree with the above, please tell me. Thank you.
ix
Profile Joined July 2003
United Kingdom184 Posts
January 30 2010 21:51 GMT
#5
Gas is about 288 per minute from a geyser. On most modern maps 3 max this out, or so close that it's not worth the extra worker for Protoss.
Please log in or register to reply.
Live Events Refresh
FEL
09:00
Cracow 2025
Clem vs Krystianer
uThermal vs SKillousLIVE!
Reynor vs MaNa
Lambo vs Gerald
ComeBackTV 1669
RotterdaM1620
IndyStarCraft 501
WardiTV267
CranKy Ducklings201
Rex133
3DClanTV 96
LiquipediaDiscussion
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
RotterdaM 1620
IndyStarCraft 501
Rex 133
BRAT_OK 80
ProTech64
MindelVK 26
StarCraft: Brood War
Britney 53561
Horang2 7089
EffOrt 1945
Hyuk 1627
Barracks 1103
Larva 855
BeSt 698
firebathero 495
Stork 441
Last 291
[ Show more ]
Hyun 277
Soulkey 242
Rush 113
Dewaltoss 67
Sharp 65
Movie 60
Shinee 55
Sea.KH 50
Free 48
sas.Sziky 44
sSak 36
Shine 33
sorry 32
zelot 22
yabsab 16
ajuk12(nOOB) 15
Terrorterran 10
Dota 2
qojqva3695
Gorgc3421
XcaliburYe445
420jenkins142
League of Legends
febbydoto10
Counter-Strike
sgares332
Heroes of the Storm
Khaldor461
Other Games
B2W.Neo2090
Beastyqt1100
Hui .362
DeMusliM236
oskar190
Fuzer 155
QueenE50
Organizations
Other Games
BasetradeTV17
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 16 non-featured ]
StarCraft 2
• Berry_CruncH322
• HeavenSC 12
• intothetv
• IndyKCrew
• AfreecaTV YouTube
• sooper7s
• Migwel
• LaughNgamezSOOP
• Kozan
StarCraft: Brood War
• STPLYoutube
• ZZZeroYoutube
• BSLYoutube
Dota 2
• C_a_k_e 3957
• WagamamaTV868
League of Legends
• Nemesis3164
• Jankos1434
Upcoming Events
BSL20 Non-Korean Champi…
14m
BSL20 Non-Korean Champi…
4h 14m
Bonyth vs Zhanhun
Dewalt vs Mihu
Hawk vs Sziky
Sziky vs QiaoGege
Mihu vs Hawk
Zhanhun vs Dewalt
Fengzi vs Bonyth
Wardi Open
21h 14m
Sparkling Tuna Cup
1d 20h
WardiTV European League
2 days
Online Event
2 days
uThermal 2v2 Circuit
3 days
The PondCast
3 days
Replay Cast
4 days
Korean StarCraft League
5 days
[ Show More ]
CranKy Ducklings
5 days
Sparkling Tuna Cup
6 days
Liquipedia Results

Completed

CSLPRO Last Chance 2025
Esports World Cup 2025
Murky Cup #2

Ongoing

Copa Latinoamericana 4
Jiahua Invitational
BSL 20 Non-Korean Championship
BSL 20 Team Wars
FEL Cracov 2025
CC Div. A S7
Underdog Cup #2
IEM Cologne 2025
FISSURE Playground #1
BLAST.tv Austin Major 2025
ESL Impact League Season 7
IEM Dallas 2025
PGL Astana 2025
Asian Champions League '25

Upcoming

ASL Season 20: Qualifier #1
ASL Season 20: Qualifier #2
ASL Season 20
CSLPRO Chat StarLAN 3
BSL Season 21
RSL Revival: Season 2
Maestros of the Game
SEL Season 2 Championship
WardiTV Summer 2025
uThermal 2v2 Main Event
HCC Europe
ESL Pro League S22
StarSeries Fall 2025
FISSURE Playground #2
BLAST Open Fall 2025
BLAST Open Fall Qual
Esports World Cup 2025
BLAST Bounty Fall 2025
BLAST Bounty Fall Qual
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2025 TLnet. All Rights Reserved.