New AP System

http://spring1944.svn.sourceforge.net/viewvc/spring1944/trunk/S44LiteRelease.sdd/LuaRules/Gadgets/game_ap.lua?view=markup

Current conventions:

hp: vehicle weight in kg * 0.1

damage, AP/APC/APCBC/APCR/APDS: shell weight in kg * 400 + 200

damage, HEAT: explosive weight in kg * 4000

damage, HE: For small AoE, (chemical + kinetic energy) / 2.5 kJ. For large AoE, chemical energy only. Calculate explosive filler at 5000 kJ / g (i.e., 2000 damage per kg explosive).

Infantry do twice as much since they can place shots better.

Explosive Shell Data:

Filler weights:
20mm FlaK 38: 0.011 kg
40mm Bofors: 0.062 kg
57mm Q.F. 6 Pounder: 0.38 kg
75mm M3: 0.667 kg
105mm M2A1: 2.18 kg
150mm Nebelwerfer 41: 2.5 kg
152mm ML-20: 6-9 kg

What happened to taking into account behind armour effect? Or am I missing something?

Usage notes:

To make a unit armored, give it a “armor_front” customparam. I recommend setting this to the unit’s armor in mm. You can also optionally specify:
armor_side
armor_rear
armor_top

If not specified, they default to the previous value in this list.

To make a weapon AP, give it a “ap_penetration” customparam. I recommend setting this to the weapon’s point-blank penetration in mm. You can optionally specify “ap_dropoff”, which is the dropoff in penetration per 1000 distance (default 0). I recommend setting this to the dropoff in penetration in mm lost per 1000 m traveled.

In the gadget, you can set PENETRATION_BIAS (free bonus penetration for weapons), PENETRATION_QUALITY and ARMOR_QUALITY (I recommend setting these to be the same; the higher the values, the smaller the difference between light/heavy armor and different amounts of penetration), and DAMAGE_MULT (flat damage mult to AP weapons).

Balance notes:

In my AP minimod, damage is equal to shell weight in g, and hit points is equal to vehicle weight in kg.

Estimate the cost of a unit as proportional to sqrt(hp * dps * exp(armor / ARMOR_QUALITY / 2) * exp(penetration / PENETRATION_QUALITY / 2)).

Under this system, the optimal weapon to use should be one whose penetration is exactly equal to the target’s armor. Too much and you’re overpaying; too little and your shots just glance off. Thus lower QUALITY (I guess technically it’s more like inverse quality) means harder counters.

Remaining Issues:

Most of the vehicles are now invisible in the AP mod, but I don’t think that has anything to do with the AP system itself.

Currently the directional system is discrete, rather than continuous; armor is divided into arcs, and damage within each arc is the same no matter where the firer is within that arc (a la Warhammer 40K). It would not be difficult to make it continuous but first we’d have to decide which way is better.

Probably add a “ap_vertical_attack” customparam for weapons designed to attack top/bottom armor (e.g. mines, high-trajectory weapons, RPG-43).

Oh, right. Actually, that’s a good question: what exactly should we do about that? I’m personally undecided on the issue; omitting it from the current gadget is not meant to mean anything one way or the other.

Well, I was actually thinking of the shell weight, which is a reasonable way of modelling BAE, should have realised damage was set to it.

Also, I would prefer discrete directions as it’s more realistic, though I guess Nemo might argue that continuous is ‘easier’ for players to grasp / will feel less random, at least without some kind of indication of where a unit is hit, which will be diffiicult to do non-intrusively at S44 unit counts.

Ah, I think I somewhat misunderstood what you said as well; I thought you were referring to non-penetrating damage (e.g. stunning, spalling, etc.) Although that certainly remains an open question.

Anyway, regarding directions: in reality, I imagine each shot would have a significant random component in the amount of damage it did; some might be duds (for whatever reason), some might make a lucky hit, and so on. However, this is difficult, and probably not even beneficial, to model in-game, so we “amortize” the damage so that shots do fairly uniform damage instead of having random lucky hits.

The point of all this is that if you fire a shell at a tank from an oblique angle, there’s some chance of the shell hitting a side other than the closest one to you (granted, this will probably result in an unfavorable impact angle, which is another issue). If wanted to try to be realistic, we could randomize which side got hit based on the fire direction and even try to account for the impact angle (though I would imagine round vs. squareish turrets complicates this). The continuous system performs the same “amortization” for this situation, with damage increasing smoothly from front to back. Then, of course, there is the discrete system above. I would say that the discrete system would actually be easiest to understand from a player’s perspective, even if it is less realistic in some ways (but perhaps more realistic in others).

I might also consider making a rollover widget to display the armor of units.

I committed some basic icons for a roll-over system, I - V.

just saw this in passing on tank-net re: Shvak effectiveness

That reminds me–the convention I used for the AP mod (hp = vehicle weight in kg, damage = shell weight in g) seems to make small-caliber weapons weaker than they should be (note that this is separate from penetration). For example, a 20mm shell might only weigh 100 g, compared to a weight of 8000-10000 kg for one of those eight-wheeled armored cars. Off the top of my head, there’s two different things we could do if we still want to use shell weight as the basis for damage:

First, we could make damage scale less strongly with shell weight, perhaps as the square root of the shell weight or something.

Second, we could add a flat amount of damage (say, 1000) to all shells. That way, even the lightest of weapons could be capable of doing significant damage given several hits (provided they can penetrate the target’s armor, anyway).

Now in the main mod (no units have it as of yet though). I renamed QUALITY to BANDWIDTH and reduced it to 20 (from 25); this should make counters somewhat harder. Prices should also scale a bit faster than AP mod to compensate; right now I think it should be roughly 1 Tiger ~ 3 Sherman.

How should we set hp and damage? Right now the best idea I have is hp = vehicle weight in kg (consistent with aircraft), and damage = 2 * shell weight in g + 1000 or so.

Some more changes and notes:

I replaced the two QUALITY variables with a single AP_BANDWIDTH (perhaps I’ll think of a better name later); it doesn’t really make sense to have two different variables. DAMAGE_MULT is set to 1 for now.

There is tactical aspect regarding penetration dropoff. Generally, if you have a penetration advantage over your opponent–that is, if your gun’s penetration performs better against your opponent’s armor than their gun does against your armor–you want to be at long range. Likewise, if you have a penetration disadvantage, you’ll probably want to be as close as possible. Consider this example (values not necessarily perfect, but will serve for purposes of demonstration):

Take a Sherman, which has ~80 mm front armor after taking sloping into account (not sure what Tarrif’s 45-90 degrees for the lower hull front armor means exactly though, so this may be an overestimate, but bear with me). Its 75 mm gun can penetrate 75 mm of armor at point-blank distance and 55 mm at 1000 m. Put this up against a Tiger, with ~100 mm front armor, and its 88 mm gun capable of penetrating 125 mm armor at point-blank and 100 mm at 1000 m. AP_BANDWIDTH is set to 20 mm.

At 1000 m, the Tiger will get a damage multiplier of 1 / (1 + exp((80 - 100) / 20)) = 73%.
Meanwhile, the Sherman will get a damage multiplier of 1 / (1 + exp((100 - 55) / 20)) = 10%.

Ouch! Not so good for the Sherman obviously. Now suppose the Sherman manages to close to point-blank range:

At point-blank, the Tiger will get a damage multiplier of 1 / (1 + exp((80 - 125) / 20)) = 90%. This is not much of an increase–less than a quarter more damage than before.
Meanwhile, the Sherman’s damage multiplier is now 1 / (1 + exp((100 - 75) / 20)) = 22%. In contrast, this is dramatically better damage than at 1000 m–in fact, more than twice as much!

Note: I might make penetration dropoff an exponential decay rather than a linear; it may fit the actual curves better.

I made the penetration dropoff with range exponential instead of linear. There is now a demo implementation for Tiger and M4A4. I used damage = shell weight in g * 2 + 1000; this may be somewhat low (it’s certainly less lethal than current). Perhaps increase the * 2 to * 3 or *4.

Edit: increased damage to shell weight in g * 3 + 1000. Still less lethal than old system I think.

Actually penetration curves for most weapons remain quite linear throughout combat ranges;

I based it on tarrif.net; most of the figures there show the rate of penetration loss decreasing with range instead of remaining constant. Although some other sites (e.g. wwiivehicles) seem to have different results.

Good chart, FLOZi. I’ve seen this one, but in ‘old’ form (black-and-white, different dotted lines, etc.). It’s an experimental chart showing results achieved at Kubinka testing grounds if I remember right. Every new captured type of enemy vehicle was transported there and tested against various weapons, and every new type of weapon (own or lend-leased) was tested there as well against most common enemy targets (plus the Ferdinand as the most heavily armored target).

By searching for Kubinka, I found it at http://www.battlefield.ru/content/view/290/124/lang,en/ (a photocopy of the original is there as well).

The same site’s penetration tables: http://www.battlefield.ru/content/category/6/33/49/lang,en/

Unfortunately no two sites seem to agree on penetration data D=

Graph of Tarrif.net’s penetration data (I tried to duplicate the colors). I don’t know if the shell types are of the same type as the chart FLOZi posted though; in each case I took the highest APCBC penetration value. Also note that these are at 30 degrees to the normal, while the chart FLOZi posted is at 0 degrees. There is a slight curve to the lines; then it may not matter much at expected combat ranges.

There is and always will be difference in penetration values coming from different countries. It’s just because testing conditions are different. For example, already mentioned hit angle. Plus the definition of ‘penetration’ also differs.
Soviet and British definition of penetration: 100% of the shell mass passes through armor (not stuck inside it, not dispersed outside it, but passes through, maybe in the form of fragments). The shell used for this test had no explosives, it was just a piece of metal.
US and German penetration: only 70-80% of the shell mass needs to pass the armor.
Then statistics comes into play. For most of the world the tables list ranges for a 50% chance of penetration. Not so for USSR: 60% for 1931 tables, 70-75% for 1938 and after tables. This means Soviet data should list lower armor penetration than other countries’s for the same gun (but Soviet data is more reliable - you can count on a sure kill if shooting at ranges listed there).

This looks like a better explanation of processes involved (it’s for naval combat, but tank combat is mostly the same). Basically the theoretical calculaltions are done using some sort of formula (Krupp formula or some other, there are many shown on that page), and if everything is set right in its coefficients, proving grounds tests show mostly the same results.

ru.wikipedia.org/wiki/Бронепробиваемость
This is a Russian wiki article on the subject, it explains some of the terms used. However, it’s in Russian only, there is no link to English or any other language version (which is strange by itself). Our forum does not like Russian symbols in urls, so I cannot make it a proper link.

After some searching, formulas seem to say that penetration is proportional to kinetic energy, or some power of it (among other things, but those remain constant throughout a particular shell’s flight), e.g. the Thompson F-Formula, Krupp Formula and others.

Now comes the questionable physics bit. Provided the shell obeys the drag equation, the drag force is also proportional to the kinetic energy of the shell. Force is equal to work per distance, so the rate of kinetic energy loss per distance traveled is proportional to the kinetic energy. This makes for an exponential decay in the kinetic energy, and thus an exponential decay in penetration capability with distance (an exponential to some power remains an exponential).

In any case, this will probably not make much difference in typical Spring:1944 engagement ranges; given the relatively minor dropoff in penetration the curve will look fairly similar whether it is exponential or linear. I suppose the exponential is slightly more computationally expensive, but this is probably negligible.

Some more questions:

  • Which penetration figures should we use? I’ve been using tarrif.net so far, since they have excellent coverage over the vehicles we have in Spring:1944, and perhaps more importantly, the figures are given for presumably identical testing conditions.
  • How should we handle HE damage? Should we make them deal flat damage regardless of armor (perhaps add a new “open-topped” armor type), put them under the AP system, or something else altogether?
  • How lethal should AP combat be? My impression (not sure how accurate this is) is that in real life most penetrating shots were one-hit-kills, and the old Spring:1944 system is certainly quite lethal. However, I’m not sure how great this is for gameplay–it makes battles rather unpredictable, and tanks tend to die with lots of shells left in them: not so good for your logistics, especially considering the new tanks-start-empty policy.

As for the one-hit-kill: there was an interesting test performed in 1940. When USSR took over part of Poland, there were lots of Polish weapons captured, among them some 7.92mm anti-tank rifles. So it was decided to conduct a test of their effectiveness against T-26 light tank. The tank was ‘crewed’ by dummies representing the commander, gunner and driver, and then it was shot by the AT rifle. Of ~20 penetrations, only 2 were potentially lethal (they came close to the fuel tank), and 1 more potentially disabling (it hit the ‘commander’ dummy leg). All the rest, while penetrated the armor, did no noticeable damage to the vehicle internals. Of course those were small rifle bullets, AT shells are much more damaging, but still 1 penetration = 1 kill is extreme imo (unless it was something like 120mm+ shell).
Also, for shells of 76mm and up, even AP rounds usually contain some explosives to increase the after-penetration effect.