As I promised, here is the post about Lanchester's Square Law, and its application in SC2. This formula can be used very well to predict the outcome of ranged engagements in the game, provided that every unit is attacking during the battle. Derivation of the formula and additional information in the spoiler tag:
TL;DR: In ranged battles, the strength of the army is given by the realtive unit strength multiplied by the number of units squared. This also means that numbers are more important in combat than the units' strength: if you have units twice as strong as your opponent, but he has twice as many, his army will be twice as strong than yours and he will win easily. This theory works really well in-game as well.
This formula is also very nice in that it allows for interesting calculations to be made with relative ease (I'm going to post some of them sometime soon). Feedback is, as always, well appreciated.
On August 22 2014 06:48 SlatMan wrote: Jeez, this level of math is awesome to see being applied to sc2. Great job, I also really enjoyed your other pieces.
Interesting, I might have missed it but did you also take into consideration that some units have projectile attacks such as stalkers. So some attacks might be wasted DPS and not contribute to the actual fight.
Sickest posts, enjoy these. Kind of sad that I didn't learn maths past the bare minimum, this kind of thing is cool. Do you have a background/career in it?
Can you prove that: "The rate of attrition of both armies is equal to the number of units in the other army times
the relative strength of the enemy units"?
EDIT: worked out the proof by myself. I think you should add it in because otherwise it seems like you throw in that differential equation out of nowhere.
Also, I appreciate your effort but this would never be accurate enough, it doesn't count too many factors.
On August 22 2014 07:45 Xinzoe wrote: Interesting, I might have missed it but did you also take into consideration that some units have projectile attacks such as stalkers. So some attacks might be wasted DPS and not contribute to the actual fight.
No, I didn't. There would be too much random in that.
On August 22 2014 09:04 KingAlphard wrote: Can you prove that: "The rate of attrition of both armies is equal to the number of units in the other army times
the relative strength of the enemy units"?
EDIT: worked out the proof by myself. I think you should add it in because otherwise it seems like you throw in that differential equation out of nowhere.
Also, I appreciate your effort but this would never be accurate enough, it doesn't count too many factors.
There is not much to prove in that, this is the assumption of the model: the more units, the faster you kill the enemy; the more powerful units, the faster you kill the enemy. This is actually very logical. The differential equations are just this assumption translated to maths. About accuracy, well, you can see in the table how accurate it is; I think considering how much random there is in a real fight and how simplified the theory is, it is pretty accurate, actually.
On August 22 2014 08:07 Wombat_NI wrote: Sickest posts, enjoy these. Kind of sad that I didn't learn maths past the bare minimum, this kind of thing is cool. Do you have a background/career in it?
Hey man, this is amazing. Great post ! I'm actually surprised at how accurate the predictions are considering how simple the model is !
Also, I love all your threads man, awesome job ! Mixing maths and sc2 is definitely entertaining and super interesting. Thanks for the time you put in it !
I have been really enjoying your posts. One thing for the immortals, hardened shield means the roach needs even more hits to kill one, should take 24 hits?
It is also interesting thinking about this along with cost efficiency, 1 immortal costs the same as 2 stalkers and yet immortals can beat something like 4 times their number of roaches where stalkers lose horribly. Without blink and the ability to hit and run, stalkers are terrible. It may be obvious but It seems protoss should almost always try to build the more focused 'counter' units and it is the only thing that stops the greater numbers of the zerg. Of course it gets more complicated with mixed forces and timings.
On August 22 2014 21:32 Startyr wrote: I have been really enjoying your posts. One thing for the immortals, hardened shield means the roach needs even more hits to kill one, should take 24 hits?
It is also interesting thinking about this along with cost efficiency, 1 immortal costs the same as 2 stalkers and yet immortals can beat something like 4 times their number of roaches where stalkers lose horribly. Without blink and the ability to hit and run, stalkers are terrible. It may be obvious but It seems protoss should almost always try to build the more focused 'counter' units and it is the only thing that stops the greater numbers of the zerg. Of course it gets more complicated with mixed forces and timings.
Yeah, Immortals' Hardened Shield is accounted for. And yes, Immortals are pretty good counters to Roaches, although they are not cost-efficient, because they cost almost 4 times as much as Roaches.
On August 22 2014 07:45 Xinzoe wrote: Interesting, I might have missed it but did you also take into consideration that some units have projectile attacks such as stalkers. So some attacks might be wasted DPS and not contribute to the actual fight.
No, I didn't. There would be too much random in that.
On August 22 2014 09:04 KingAlphard wrote: Can you prove that: "The rate of attrition of both armies is equal to the number of units in the other army times
the relative strength of the enemy units"?
EDIT: worked out the proof by myself. I think you should add it in because otherwise it seems like you throw in that differential equation out of nowhere.
Also, I appreciate your effort but this would never be accurate enough, it doesn't count too many factors.
There is not much to prove in that, this is the assumption of the model: the more units, the faster you kill the enemy; the more powerful units, the faster you kill the enemy. This is actually very logical. The differential equations are just this assumption translated to maths.
Idk if I somehow missed something, however in the end you say: "As seen before, the relative unit strength of a unit against another one may be defined as [...]" but you never actually talked about what was the relative unit strength before.
So when you say that sentence I quoted in the previous post, we don't really know what this relative unit strength is, it could be basically everything.
Only in the end when you put in that formula, we can understand that it is how many units can be killed by a single unit of the other army in a certain period of time, we could call it the "killing speed". So x(t)*α = the killing speed of the whole X army , which is also (since they are the only 2 armies involved in the fight) the "dying speed" of the Y army, which is the opposite of the derivative of the y(t) function. And from this you get the first differential equation, and in a similar way the second one too.
I would have spent these 5 lines above before step 1, because personally I was a bit confused when I first saw the differential equation. But that's just my advice, then do what you want.
About accuracy, well, you can see in the table how accurate it is; I think considering how much random there is in a real fight and how simplified the theory is, it is pretty accurate, actually.
It is accurate on paper, but when you apply it to a real game, it's different.
As was mentioned before, projectile units tend to waste shots. Bigger units tend to clump up and not being all able to fire. Units should have the same range because otherwise, for example in marine vs colossi, the colossi gets to fire before the marines are in range. Doesn't count kiting either, and so on. For these reasons I would say it's only reliable in n mirror matchups with mirror armies to analyze the impact of upgrades. Let's say, roach vs. roach, it could be useful there to say which army is the strongest knowing their upgrades and the number of roaches.
On August 22 2014 07:45 Xinzoe wrote: Interesting, I might have missed it but did you also take into consideration that some units have projectile attacks such as stalkers. So some attacks might be wasted DPS and not contribute to the actual fight.
No, I didn't. There would be too much random in that.
On August 22 2014 09:04 KingAlphard wrote: Can you prove that: "The rate of attrition of both armies is equal to the number of units in the other army times
the relative strength of the enemy units"?
EDIT: worked out the proof by myself. I think you should add it in because otherwise it seems like you throw in that differential equation out of nowhere.
Also, I appreciate your effort but this would never be accurate enough, it doesn't count too many factors.
There is not much to prove in that, this is the assumption of the model: the more units, the faster you kill the enemy; the more powerful units, the faster you kill the enemy. This is actually very logical. The differential equations are just this assumption translated to maths.
Idk if I somehow missed something, however in the end you say: "As seen before, the relative unit strength of a unit against another one may be defined as [...]" but you never actually talked about what was the relative unit strength before.
So when you say that sentence I quoted in the previous post, we don't really know what this relative unit strength is, it could be basically everything.
Only in the end when you put in that formula, we can understand that it is how many units can be killed by a single unit of the other army in a certain period of time, we could call it the "killing speed". So x(t)*α = the killing speed of the whole X army , which is also (since they are the only 2 armies involved in the fight) the "dying speed" of the Y army, which is the opposite of the derivative of the y(t) function. And from this you get the first differential equation, and in a similar way the second one too.
I would have spent these 5 lines above before step 1, because personally I was a bit confused when I first saw the differential equation. But that's just my advice, then do what you want.
About accuracy, well, you can see in the table how accurate it is; I think considering how much random there is in a real fight and how simplified the theory is, it is pretty accurate, actually.
It is accurate on paper, but when you apply it to a real game, it's different.
As was mentioned before, projectile units tend to waste shots. Bigger units tend to clump up and not being all able to fire. Units should have the same range because otherwise, for example in marine vs colossi, the colossi gets to fire before the marines are in range. Doesn't count kiting either, and so on. For these reasons I would say it's only reliable in n mirror matchups with mirror armies to analyze the impact of upgrades. Let's say, roach vs. roach, it could be useful there to say which army is the strongest knowing their upgrades and the number of roaches.
When I said "as seen before," I was referring to my previous post about the Linear Law, where I also used that term. Only now I realize that I did not explain it adequately there, either, so you are right, it was indeed a bit vague. As for range, maybe a coefficient could be used to reduce the fighting number of the units with smaller range, indicating that they alredy took damage before the fight even really began.
On August 22 2014 07:45 Xinzoe wrote: Interesting, I might have missed it but did you also take into consideration that some units have projectile attacks such as stalkers. So some attacks might be wasted DPS and not contribute to the actual fight.
No, I didn't. There would be too much random in that.
On August 22 2014 09:04 KingAlphard wrote: Can you prove that: "The rate of attrition of both armies is equal to the number of units in the other army times
the relative strength of the enemy units"?
EDIT: worked out the proof by myself. I think you should add it in because otherwise it seems like you throw in that differential equation out of nowhere.
Also, I appreciate your effort but this would never be accurate enough, it doesn't count too many factors.
There is not much to prove in that, this is the assumption of the model: the more units, the faster you kill the enemy; the more powerful units, the faster you kill the enemy. This is actually very logical. The differential equations are just this assumption translated to maths.
Idk if I somehow missed something, however in the end you say: "As seen before, the relative unit strength of a unit against another one may be defined as [...]" but you never actually talked about what was the relative unit strength before.
So when you say that sentence I quoted in the previous post, we don't really know what this relative unit strength is, it could be basically everything.
Only in the end when you put in that formula, we can understand that it is how many units can be killed by a single unit of the other army in a certain period of time, we could call it the "killing speed". So x(t)*α = the killing speed of the whole X army , which is also (since they are the only 2 armies involved in the fight) the "dying speed" of the Y army, which is the opposite of the derivative of the y(t) function. And from this you get the first differential equation, and in a similar way the second one too.
I would have spent these 5 lines above before step 1, because personally I was a bit confused when I first saw the differential equation. But that's just my advice, then do what you want.
About accuracy, well, you can see in the table how accurate it is; I think considering how much random there is in a real fight and how simplified the theory is, it is pretty accurate, actually.
It is accurate on paper, but when you apply it to a real game, it's different.
As was mentioned before, projectile units tend to waste shots. Bigger units tend to clump up and not being all able to fire. Units should have the same range because otherwise, for example in marine vs colossi, the colossi gets to fire before the marines are in range. Doesn't count kiting either, and so on. For these reasons I would say it's only reliable in n mirror matchups with mirror armies to analyze the impact of upgrades. Let's say, roach vs. roach, it could be useful there to say which army is the strongest knowing their upgrades and the number of roaches.
When I said "as seen before," I was referring to my previous post about the Linear Law, where I also used that term. Only now I realize that I did not explain it adequately there, either, so you are right, it was indeed a bit vague. As for range, maybe a coefficient could be used to reduce the fighting number of the units with smaller range, indicating that they alredy took damage before the fight even really began.
Oh, I get it now. Didn't read your previous post.
The range thing could work, you know the unit's speed, and therefore how many shots it takes before getting into range. But that's only one example, in general, I wouldn't trust this law when there are 2 different unit compositions facing each other.
Anyway, didn't want to dismiss your work. As I said before, it's still pretty interesting and reliable in mirror armies situations (roach vs roach, which happens all the time in ZvZ), so thank you for that.
On August 22 2014 07:45 Xinzoe wrote: Interesting, I might have missed it but did you also take into consideration that some units have projectile attacks such as stalkers. So some attacks might be wasted DPS and not contribute to the actual fight.
No, I didn't. There would be too much random in that.
On August 22 2014 09:04 KingAlphard wrote: Can you prove that: "The rate of attrition of both armies is equal to the number of units in the other army times
the relative strength of the enemy units"?
EDIT: worked out the proof by myself. I think you should add it in because otherwise it seems like you throw in that differential equation out of nowhere.
Also, I appreciate your effort but this would never be accurate enough, it doesn't count too many factors.
There is not much to prove in that, this is the assumption of the model: the more units, the faster you kill the enemy; the more powerful units, the faster you kill the enemy. This is actually very logical. The differential equations are just this assumption translated to maths.
Idk if I somehow missed something, however in the end you say: "As seen before, the relative unit strength of a unit against another one may be defined as [...]" but you never actually talked about what was the relative unit strength before.
So when you say that sentence I quoted in the previous post, we don't really know what this relative unit strength is, it could be basically everything.
Only in the end when you put in that formula, we can understand that it is how many units can be killed by a single unit of the other army in a certain period of time, we could call it the "killing speed". So x(t)*α = the killing speed of the whole X army , which is also (since they are the only 2 armies involved in the fight) the "dying speed" of the Y army, which is the opposite of the derivative of the y(t) function. And from this you get the first differential equation, and in a similar way the second one too.
I would have spent these 5 lines above before step 1, because personally I was a bit confused when I first saw the differential equation. But that's just my advice, then do what you want.
About accuracy, well, you can see in the table how accurate it is; I think considering how much random there is in a real fight and how simplified the theory is, it is pretty accurate, actually.
It is accurate on paper, but when you apply it to a real game, it's different.
As was mentioned before, projectile units tend to waste shots. Bigger units tend to clump up and not being all able to fire. Units should have the same range because otherwise, for example in marine vs colossi, the colossi gets to fire before the marines are in range. Doesn't count kiting either, and so on. For these reasons I would say it's only reliable in n mirror matchups with mirror armies to analyze the impact of upgrades. Let's say, roach vs. roach, it could be useful there to say which army is the strongest knowing their upgrades and the number of roaches.
When I said "as seen before," I was referring to my previous post about the Linear Law, where I also used that term. Only now I realize that I did not explain it adequately there, either, so you are right, it was indeed a bit vague. As for range, maybe a coefficient could be used to reduce the fighting number of the units with smaller range, indicating that they alredy took damage before the fight even really began.
I'd tend to agree with King Alphard here: those 5 lines do ease the understanding quite a bit IMHO. Regarding the comments about micro and range differences not being taken into account, the hypothesis made at the beginning is quite clear: both armies fight at all times, and units fight as long as they're alive. So this formula can only be used when both armies actually fight. If one army starts shooting before the other one (because of range difference, i.e. collossus vs marines), then you can't use this equation. You can use it only starting at the time where all the marines are in range of the collossus and start shooting. Odds are, you will have lost a good portion of your marines at this point...
I don't know if you're taking suggestions for your next research subject, but I have a question (might be stupid, but I want to make sure): is there a situation where it is better for a terran to not stim his bio units (extra health vs extra DPS) ? In all games, we see pro terrans always stim, but are there situations where this is the wrong choice ?
On August 22 2014 07:45 Xinzoe wrote: Interesting, I might have missed it but did you also take into consideration that some units have projectile attacks such as stalkers. So some attacks might be wasted DPS and not contribute to the actual fight.
No, I didn't. There would be too much random in that.
On August 22 2014 09:04 KingAlphard wrote: Can you prove that: "The rate of attrition of both armies is equal to the number of units in the other army times
the relative strength of the enemy units"?
EDIT: worked out the proof by myself. I think you should add it in because otherwise it seems like you throw in that differential equation out of nowhere.
Also, I appreciate your effort but this would never be accurate enough, it doesn't count too many factors.
There is not much to prove in that, this is the assumption of the model: the more units, the faster you kill the enemy; the more powerful units, the faster you kill the enemy. This is actually very logical. The differential equations are just this assumption translated to maths.
Idk if I somehow missed something, however in the end you say: "As seen before, the relative unit strength of a unit against another one may be defined as [...]" but you never actually talked about what was the relative unit strength before.
So when you say that sentence I quoted in the previous post, we don't really know what this relative unit strength is, it could be basically everything.
Only in the end when you put in that formula, we can understand that it is how many units can be killed by a single unit of the other army in a certain period of time, we could call it the "killing speed". So x(t)*α = the killing speed of the whole X army , which is also (since they are the only 2 armies involved in the fight) the "dying speed" of the Y army, which is the opposite of the derivative of the y(t) function. And from this you get the first differential equation, and in a similar way the second one too.
I would have spent these 5 lines above before step 1, because personally I was a bit confused when I first saw the differential equation. But that's just my advice, then do what you want.
About accuracy, well, you can see in the table how accurate it is; I think considering how much random there is in a real fight and how simplified the theory is, it is pretty accurate, actually.
It is accurate on paper, but when you apply it to a real game, it's different.
As was mentioned before, projectile units tend to waste shots. Bigger units tend to clump up and not being all able to fire. Units should have the same range because otherwise, for example in marine vs colossi, the colossi gets to fire before the marines are in range. Doesn't count kiting either, and so on. For these reasons I would say it's only reliable in n mirror matchups with mirror armies to analyze the impact of upgrades. Let's say, roach vs. roach, it could be useful there to say which army is the strongest knowing their upgrades and the number of roaches.
When I said "as seen before," I was referring to my previous post about the Linear Law, where I also used that term. Only now I realize that I did not explain it adequately there, either, so you are right, it was indeed a bit vague. As for range, maybe a coefficient could be used to reduce the fighting number of the units with smaller range, indicating that they alredy took damage before the fight even really began.
Oh, I get it now. Didn't read your previous post.
The range thing could work, you know the unit's speed, and therefore how many shots it takes before getting into range. But that's only one example, in general, I wouldn't trust this law when there are 2 different unit compositions facing each other.
Anyway, didn't want to dismiss your work. As I said before, it's still pretty interesting and reliable in mirror armies situations (roach vs roach, which happens all the time in ZvZ), so thank you for that.
That's all right, I like when my theory is challanged, because it helps reflect on its weaknesses, so it is easier to improve it.
On August 22 2014 22:44 LoneYoShi wrote: I don't know if you're taking suggestions for your next research subject, but I have a question (might be stupid, but I want to make sure): is there a situation where it is better for a terran to not stim his bio units (extra health vs extra DPS) ? In all games, we see pro terrans always stim, but are there situations where this is the wrong choice ?
Of course, I am always happy to receive new ideas. It is likely that it will not be my next subject, though, because I already have some planned and ready. Your question is interesting; I'm sure that if your units are at full health, it is always worth stimming, but at low healths it may actually hurt. I will sure check it out sometime!
By the way, I just realized that the program I use for calculating the relative strengths was bugged and the Hardened Shield property did not work properly. The relative strength of the Roach against the Immortal should be 0.02083, rather than 0.025, and the calculated value for survivors should be 7.98, rather than 7.52. Doesn't change much, but this is the correct value.