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
Post a Comment