04 May 2009

Optimal Armor Distribution in Battletech

One of the best aspects of Battletech is that you can design your own units and play them. Each battlemech is constructed in 8 sections; left, right, and center torso, two arms, two legs, and a head. Each section has a basic amount of internal structure damage it can absorb, and extra armor is added on top of that for additional protection. Deciding how much armor to put in each location is fairly important to how long the battlemech lasts during play. Most people, including myself, usually let the mech design program HeavyMetal allocate the armor for them, and then tweak it a bit according to preference. However, using some basic tools I’ve previously written about, there is an approach that should lead to a “best” way to allocate armor under typical circumstances.
For just moment, think of a Battlemech in the game as a single group of points, rather than as 8 separate locations that each absorb a smaller amount of damage. Here the Birnbaum-Saunders approximation works very well, and if we were playing different game where the goal is only to reach that overall total, like in the card game cribbage, then we would be done. A cribbage board has only one “track” for scoring points.

Battletech though, has a much more complicated sort of board (the Mechsheet); Each location has it’s own track, and most tracks spill over in into the next track when it is full (i.e.: damage transfer). That too can be approximated, but writing the Mechsheet as a mathematical formula is MUCH more complex. I’ll get to that too, but today I want to do something more simple and intuitive. We can learn something just by considering the median survival time of each mech location. This is the point at which there is a 50% chance that the mech location will have been destroyed.

But first a bit of notation. The unit of time here is actually the number of damage groups, as assign by rolling on the Hit Location Table. We usually think of time as turns or phases during the turn, but the damage groups are a better measure of a mechs progress towards destruction. The word “hit” has a lot of different associations in Battletech, so I will try to use “Damage group” (or maybe “shock” - the engineering term) to avoid confusion with “to-hit” rolls and “hit location”. Further, everything that follows assumes that the to-hit roll succeeded, so I am counting time as damage groups that actually hit the mech, not the number of turns passed or to-hit rolls attempted. Also, if I fail to mention it, I am only considering Front Hit Locations at this time, a mech with a standard fusion engine, and ignoring damage transfer.
The formula for the Birnbaum-Saunders probability distribution gives the probability that a certain event will happen by some time t. While this formula might be bit intimidating for some people, the formula for the median survival time is simple. If a given location, let’s say the right arm (RA), can absorb 25 points of damage before it is destroyed, and the mech is taking damage that averages 5 points per group, then we can expect the RA will survive until it is hit by 5 damage groups. From the Front Hit Locations table, the probability of hitting the RA is 5/36 or 13.9%, and the median time is equal to 25/(5*0.139) = 36 damage groups or shocks. In general, this formula is:
Median Time = D / (d x p)
Where D is the total amount of damage (internal structure and armor) a location can absorb, d is the average damage per group/shock, and p is the probability of hitting that location.
Now consider a mech that has armor allocated so that locations can absorb damage as follows: Arms 25 each, Legs 20 each, Right/Left Torsos 25 each, Center Torso 35 and Head 5. What I have done is to set up each location so that it can absorb damage proportional to the probability of that location being hit. Further, the median survival of each section will be exactly 36 shocks. Recall this is ignoring all damage transfer, and 36 shocks is also the maximum amount of damage this mech could possibly absorb with every location completely destroyed. In actual play, this mech would very likely be destroyed before 36 shocks.
Well that was a lot of work to set up, but if you are still with me, we can now consider what this tells us. Here each location has the same life expectancy, but this is far from ideal. What we really want is for the head and Center Torso Locations to survive. We also want two functional legs so it can move and fire for as long as possible before it is destroyed. To accomplish this, we need each leg to have a survival time at least as long as the center torso. The center torso is more critical than the side torsos, is it should have a longer survival than the side torsos. If either side torso is destroyed we also lose the same-side arm, so it doesn’t make much sense to have the arms survive longer than the torso sections. Finally, we don’t want the head to get blown off, but we are strongly limited in the maximum armor that can be place there, so it may be beyond our control. This suggests the each location be armored so that the median survival times for are ordered as follows (in descending order):
  1. Head (up to max)
  2. Legs
  3. Center Torso
  4. Side Torsos
  5. Arms
There are other consideration during play as well. Kicking attacks mean that legs get disproportionally more damage than what I am assuming here (Front hit location table). Rear attacks require some armor for protection too. Weapons located in the arms or side-torsos need to be protected or the mech becomes nearly useless. Internal structure damage can cause disabling critical hits too. Those are necessary considerations as well, but knowing how to allocate armor to do all this requires a better way to values the armor in each location as it affects the mech as a whole. To do this I will need the complete survival probability distribution for the mech, and that will require some more work. I am happy to report that I am making significant progress, and I plan to blog more about that progress soon.
PS: Under the assumption I have made here, the Ostsol and Ostroc battlemechs may have near-optimal armor distributions (an educated guess). There may also be more than one way to be "optimal" depending on what goals you might use.

[Battletech images from the excellent ClassicBattletech.com gallery.]
GBR Giant Battling Robots Favicon


Anonymous said...

Hey Dan

I told some friends about your task. They were impressed, but they had some questions. The big question was about what about the different armor types like Hardened and reflective, and mechs using the blue sheild.


Dan Eastwood said...

I knew I would eventually get some questions like this from the hardcore BT players. For starters, I'm not too worried about any of that stuff right now, because until I have the basic mathematics understood well enough that I can calculate probabilities and describe what it means, there is little point in worrying about the advanced and optional rules. That said, some of those things are not as difficult as it might seem.

Hardened Armor is pretty much just like MORE armor. There is some rounding error as odd amounts of damage round up, but that can be averaged out in the long run.
Reflective armor and Blue shield IIRC reduce the damage a mech receives? This then changes the amount of damage hitting the mech, but not the number of points of damage the mech can withstand. Points is Points, and once it hits it's all just little circles to be marked off.

Options like reflective armor, blue shield, ECM, C3, etc. raise a different set of difficulties. I'll see about addressing some of those difficulties in a future post.

Anonymous said...

Factoring a mathematically optimal armor layout is interesting, but armor must be laid out to be Tactically optimal. this depends on how the mech is to be used in combat & the equipment layout of the mech, these come in 2 basic types:
Recon - light fast units with little armor and high speed &
Combat - heavily armored units for direct combat

my rules of thumb are as fallows:
the first (usually light or low end medium mechs) have only limited armor & these should be concentrated on the CT & legs to make crippling damage less likely as movement mods are their primary defence. on these mechs, maxing head armor reduces overall survivability due to weakening of other areas which are more likely to be hit. this is also true of the rear armor which the mechs speed should allow it to avoid most back shots. some limited rear armor should still be included where possible (2-5 pts) in case of infantry ambush or artillery near misses. arms are extra but still absorb some damage that would otherwise hit the torsos so should have 5-10 pt depending on the mech. the remainder should have as much as possible. in general take the overall armor divide by 7, round to the nearest of the fallowing: 5, 8, 10, 15 or 20. This is the amount applied to the legs & across the front torsos. the remaining is divided among the remaining areas.

for Combat mechs (usually medium or larger mechs), as pointed out before the head is a non-factor - its limited armor availability & low probability of being hit means it should always have max armor there is no reason for anything less. The rear armor should have 5 to 10 points of armor, anything more reduces the mechs ability to absorb frontal damage. the remaining areas should have 15 or 20 points if possible. of medium mechs, they should have 20 points across the legs & front torsos if possible where rear armor doesn't drop below 4 & 12-16 pt on the arms (not to exceed the other front location) (so a 55 ton mech with 13 pt on a side can have 26 pt this should be applied as 20 front & 6 rear to allow the absorption of 2 PPC or 1 AC-20 hit without penetration). 60 ton mechs should have 20 front & 8 rear. any larger mech should just have 10 across the back to allow for a single PPC hit. Overall armor should generally be close to max on all combat mechs as its total tonnage is only a fraction of the mechs total (19tn for a 100tn mech is only 19%). Distribute the front locations to an even 5pts variable with the extra 1-2 points left over scattered as needed.

Dan Eastwood said...

Hello Anon, and thanks for your comments.

You are right about the optimal distribution depending on the tactical needs. And as you aptly demonstrate, this sort of analysis isn't like to tell the veteran players much they haven't darn well figured out for themselves a long time ago. ;-)

There is more to it though; if you can calculate this distribution, you can also calculate which locations on the Mech are likely to still be functional after taking a given amount of damage, and therefore optimize the offensive capabilities of a Mech as well.

I had set this project aside for a lack of a way to do the proper calculation, but I'm about reay to pick it up again.

Kitchen Wolf said...

Max armor for 'mechs normally gives the best survivability. Everyone knows the original FASA designs tended to be overgunned, underarmored, and under-heat sinked. Because the armor is such a small percentage of tonnage to begin with, 'mech design is more about mobility vs. firepower than anything else. Far more interesting would be optimal armor for vehicles - because the vehicle hit chart allows for so many "freebie" criticals regardless of armor, just building an armored brick like the Sturmfuer seems sub-optimal.

Dan Eastwood said...

Hello KW!

Maximum armor is best, but don't confuse best with optimal.

Optimal means the best way to distribute armor for a given cost (and maybe a given tactical need), with the cost either in tonnage or maybe Battle Value. If you have limited resources, such as a tonnage or BV limit for a particular scenario, then choosing (or designing) Mechs with a near optimal armor becomes an important choice.

Finally, in large scenarios based on BV, Assault Mechs with maximum armor might be the baddest metal on the map, but they may not be optimal in terms of getting the best combination of units on the map.

Kitchen Wolf said...

Tonnage wise, max armor is usually a better choice than more guns. BV-wise, armor's cheap. It might be a more effective use of man-hours to look at a force as an aggregate unit. Each assault 'mech still has an instant-kill head shot vulnerability (vs. two mediums), and each extra 'mech adds 10 free heat sinks from the tonnage angle. From a pure points-based standpoint, conventional tanks are more effective than 'mechs most of the time - eight (8!) Scorpion light tanks vs. one 3025 Atlas. The primary bottleneck is transport (most dropships aren't equipped with space for 20 Savannah Masters, for instance), and BattleTech's notably absent morale system - while the Atlas pilot stands a reasonable chance of walking, possibly even riding out of the above engagement, some tankers are absolutely going to die.

Dan Eastwood said...

>It might be a more effective use of man-hours to look at a force as an aggregate unit ... [snip] ... eight (8!) Scorpion light tanks vs. one 3025 Atlas.

Funny you should mention it, because I'm working on something very like that. It's a tough problem and I'm having a hard time getting started on it, but I'm almost there.

As for Savannah Masters, I prefer to drop them from orbit as kinetic projectiles. Fewer pilots, more damage. :-)