Wednesday, March 25, 2015

Worker Payoff Time

In Broodwar, you spend 50 minerals to train a worker. How long does it take the increased mining speed from that additional worker to pay back the investment.

We need to account for the build time of the worker, as well as the time required for it to mine 50 minerals.

Here is the equation


According to BWAPI, SCVs take 300 frames to make:


Workers in BW gather at ~1 mineral/second, so as on fastest there are 24 frames a second:


The cost of a worker is 50 minerals


Finally we get


So from this math it takes 1550 frames, or about 65 seconds on fastest for a worker to be built and then make back its cost. In a build order that is trying to reach a certain amount of minerals the fastest, it would be optimal to stop building workers about a minute before completion.

The following are simulation results for time to gather 1000 minerals starting with 1 worker, and controlling the number of workers built. The fastest time was with 10 workers built, 11 in total.

INFO: pred: 22223, cur: 0 work_time:22223
simulated 0 worker time: 22223
INFO: pred: 12373, cur: 1412 work_time:10961
simulated 1 worker time: 12373
INFO: pred: 9325, cur: 2118 work_time:7207
simulated 2 worker time: 9325
INFO: pred: 7919, cur: 2588 work_time:5331
simulated 3 worker time: 7919
INFO: pred: 7146, cur: 2941 work_time:4205
simulated 4 worker time: 7146
INFO: pred: 6680, cur: 3241 work_time:3439
simulated 5 worker time: 6680
INFO: pred: 6390, cur: 3541 work_time:2849
simulated 6 worker time: 6390
INFO: pred: 6211, cur: 3841 work_time:2370
simulated 7 worker time: 6211
INFO: pred: 6104, cur: 4141 work_time:1963
simulated 8 worker time: 6104
INFO: pred: 6049, cur: 4441 work_time:1608
simulated 9 worker time: 6049
INFO: pred: 6031, cur: 4741 work_time:1290
simulated 10 worker time: 6031

The final work time of 1290 frames, adding the 300 for train time, yields 1590, just above the cutoff for breakeven time to build a worker. Building another worker after that time resulted in a longer time to reach the mineral goal of 1000.