[1.4.1] 6e42 Several Bugs Remaining in the New 1.4.1 Air Combat System

  • We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.

Beethoven

General
8 Badges
Jun 6, 2016
2.067
297
  • Stellaris
  • Hearts of Iron IV: Cadet
  • Hearts of Iron IV: Together for Victory
  • Hearts of Iron IV: Death or Dishonor
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: Expansion Pass
  • Crusader Kings II
  • Crusader Kings II: The Republic
I set up test air battles over northern France to show some significant bug(s) in the air combat system. The problem is, at its core, that the game seems to treat air battles as being each individual country vs each individual country, rather than being Axis vs. Allies overall. In addition to this primary bug, we will see some other bugs in course of running the test scenarios below.


For example, if you have 2000 identical German planes against 2000 identical British planes, you will get 1:1 losses (Scenario 1 below). But if you have 2000 identical British planes against 1000 identical German planes and also 1000 identical Italian planes, the game calculates the results of the British vs German air battle entirely separately from the British vs Italian air battle (indeed, as though there were not even any Italian planes at all). Then, after the results of the German vs British air battle is calculated (with 2000 British planes against 1000 German planes leading to a lopsided kill ratio in favor of the UK), the game separately calculates the Italian vs British air battle (with all 2000 British planes once again used in the air battle calculation against 1000 German planes, entirely ignoring the separate and simultaneous battle against the 1000 Italian planes). So the game ignores the fact that in reality the Italians would benefit from the British planes also having to deal simultaneously with the German planes, and vice versa. So even though the UK actually has no numerical advantage at all, they benefit in the game from a lopsided numerical advantage bonus which leads to lopsided kill ratios in favor of the UK.

Instead, the game ought to sum up all the planes from both factions and simply calculate one air battle (as an added benefit, maybe this would also help performance on the margin?). In principle, this could also be a problem when two separate wars are being fought simultaneously in the air zone. For example, if late in the war both the Allies and the Soviets both have planes bombing Germany simultaneously, then Germany can benefit from numerical superiority against both the Allies and the Soviets at the same time.

This actually seems to have been in the game since earlier versions, but it wasn't so much of a problem in 1.3.3, because numerical superiority did not make much difference. However, numerical superiority makes a large difference in 1.4.1, so this bug is adversely impacting gameplay.

This bug is particularly problematic in multiplayer, because usually air battles will be concentrated in specific air zones at specific times (e.g. Northern France during the Battle of France), and multiple countries on both sides will usually have planes in those air zones. Essentially it means that in each faction, only a single country can control all of the faction's planes, or else that faction will lose out because of the numerical superiority advantage being calculated on the basis of each country's individual planes rather than on the basis of all of the faction's planes. Either that single country has to also produce all of the planes for the entire faction, in which case they can only do air and can't really produce anything else at all, or else all of the faction's planes have to be lend leased to one country (which is not really viable or fair, since convoys are a limited resource).


Here are the tests. The starting point for all of these tests is the AIR NUMERICAL SUPERIORITY COUNTRY vs FACTION TEST.hoi4 save file. This starts with 2000 UK fighters in Paris and 2000 each of German and Italian fighters in Calais. To run the tests below, I turned off AI with console commands, disbanded the extra air wings from Calais not needed for that particular test, turned on both air superiority and intercept over northern France for the needed air wings for the particular test, and let air combat run for 2 months. Then I looked at the losses.



Scenario 1:

2000 German 1940 fighters against 2000 British 1940 fighters. In this test and all the other tests, these are all wings of 1000 identical fighters flying (on both sides) with 100% mission efficiency, with no special air doctrines, designers, etc. All just plain vanilla 1940 fighters. All air wings have both air superiority and intercept missions turned on.

Result:

785 UK losses (30 of which are air accidents), 790 Italian losses (30 of which are air accidents).

This is basically an even 1:1 loss ratio (except for very slight random variation), which is what we would expect. Since the planes are identical and there are no doctrines or anything, the losses should be basically identical with equal numbers of identical planes fighting each other.

Note that the air interface only displays the UK's air accidents, but does not count the Italian's air accidents, so you have to tag switch to Italy to see that they also have 30 air accidents and have indeed taken a total of 790 losses, not 760 as the UK's interface displays. So this seems like an additional bug - maybe that can be fixed as well? Either the interface should show accident losses for both sides or for neither side, so that players do not think they are doing worse than they actually are because they don't realize the air interface is showing their accidents but not the enemy's air accidents.

Screenshot (345).png
Screenshot (346).png





However, the game treats situation of equal numbers of identical planes fighting each other VERY differently if instead of all the planes on each side being from a single country, as we can see by re-running the same test situation, but replacing half of the 2000 Italian planes with German fighters. Let's see that in Scenario 2...

Scenario 2:

1000 German 1940 fighters and 1000 Italian 1940 fighters against 2000 British 1940 fighters:

Result:

773 UK losses (30 of which are air accidents), 569 German losses (30 of which are air accidents), and 561 Italian losses (30 of which are air accidents).

By faction, total Allied losses are 773 and total Axis losses are 1130, so you can see that the UK suddenly does much better when half of the Axis planes are German and half are Italian, as compared to when all the Axis planes are Italian.

The other thing to notice is that in Scenario 1, the 2000 Italian planes took exactly the same amount of air accident losses (30) as they did in Scenario 2, when there were only 1000 Italian planes. Likewise, Germany took 30 air accidents. So the effect of splitting the 2000 Axis planes between 2 countries (rather than just 2000 all of which were Italian) is to double the total Axis accidents from 30 to 60.

So this seems to be another bug - air accidents should scale evenly depending simply on the numbers of planes that are flying. But instead, it seems like in practice the game is just assigning air accidents of a certain amount to a certain country, even if that country has more (or less) planes, so that each country takes 30 air accident losses over the course of 2 months of air combat, regardless of whether that country is flying 1000 planes or 2000 planes. This results in the faction that has more separate countries flying taking a greater number of air accidents than a faction in which all the planes come from one country.

Screenshot (347).png

Screenshot (348).png

Screenshot (349).png





Next, to confirm that the cause of the problem is that numerical superiority bonuses air battles are all being calculated separately for each country, I tested 1000 Italian fighters against 2000 UK fighters. This is the same as in Scenario 2, except the German planes do not participate at all this time. If the game is treating the UK vs Italian and UK vs German battles as entirely separate and independent from each other, then in this test Italy should the same losses as in Scenario 2 and UK should take half the losses as in Scenario 2. And this is precisely what we find:

Scenario 3:

1000 Italian 1940 fighters against 2000 British 1940 fighters:

Result:

406 UK losses (30 of which are air accidents), 569 German losses (30 of which are air accidents), and 564 Italian losses (30 of which are air accidents).

The Italian losses, (534) are virtually identical to the (531) losses from Scenario 2, with an additional 30 from air accidents add in to the total losses in both cases.

The British losses from air combat (376) are likewise virtually identical to half of the British losses from Scenario 2 (743),

So this clearly shows that the game is essentially treating Scenario 2 as just 2 separate and independent cases of Scenario 3, rather than treating Scenario 2 like Scenario 1.

Screenshot (350).png Screenshot (351).png





ADDITIONAL RELATED BUGS --- Escorting your allies' bombers/CAS doesn't work

(see AIR ESCORT TEST MULTI-COUNTRY.hoi4)

This also raises the question - what happens in other cases where planes from multiple countries are fighting in the same air zone? Does the air combat system work properly in those cases?

For example, what happens if you try to use Italian fighters to escort German CAS? Do the Italian fighters actually effectively stop the German bombers from being disrupted by Allied fighters?

No, they do not. Only German fighters are capable of escorting German CAS/bombers.

In the test shown in the screenshot below, I set up German fighters escorting German CAS over northern France, while Germany attacked the Maginot line. In this case the German 1940 fighters were able to stop the German 1940 CAS from being disrupted by 1000 UK fighters (1936 models in this test). This resulted in 384.3 French troops being bombed in 1 week:

Screenshot (353).png

However, if instead of German fighters you switch those to Italian fighters, the identical Italian fighters do not escort the German CAS whatsoever. In this case, a high percentage (not always 100%, because the UK fighters in this test are not that great) of the German CAS gets disrupted. Note, however, another bug - the "our bombers disrupted" on the interface doesn't work. As a guess, this is probably because CAS are not considered to be "bombers" (but rather "support"), since the interface DOES show when strategic bombers are disrupted. You can also see that the air losses are different in the two scenarios. In the first one, when escorted by German fighters, less of the CAS gets shot down (because it is actually being escorted). The Italian losses (not shown on the German interface) also make up a difference in terms of fighter losses:
Screenshot (354).png




What happens in other cases, such as a carrier air battle in which there are both UK carrier planes and USA carrier planes against Japanese carrier planes? I haven't bothered to explicitly test this, but l'd guess it does not work quite right for the same reason.

These are things often (read: basically always) done in multiplayer games.

Maybe someone feels like testing that, and then can let us know the results. If this is also bugged, then it is probably bugged for the same reason, and hopefully the bugs can all be fixed together by making the game sum up all the planes in each air zone and calculate air combat results all together. Again, this may also improve performance, since it would seem to require fewer calculations.
 

Attachments

  • AIR NUMERICAL SUPERIORITY COUNTRY vs FACTION TEST.hoi4
    5 MB · Views: 4
  • AIR NUM. SCEN 1.hoi4
    5,1 MB · Views: 1
  • AIR NUM. SCEN 3.hoi4
    5,1 MB · Views: 1
  • AIR NUM. SCEN 2.hoi4
    5 MB · Views: 2
  • AIR ESCORT TEST MULTI-COUNTRY.hoi4
    5 MB · Views: 5
Upvote 0
Magnum opus.

@Beethoven, if you are in academia, submit this as your dissertation. "Simulating Air Warfare: A critique and suggestions for improvement. "
 
Simulating the air by lumping all planes in a faction together wouldn't really work since everyone has different doctrines and high command. They just have to make the number superiority calculation based on the number of all planes in faction and make fighters be able to escort bombers of allied countries.
 
Scenario 3:

1000 Italian 1940 fighters against 2000 British 1940 fighters:

Result:

406 UK losses (30 of which are air accidents), 569 German losses (30 of which are air accidents), and 564 Italian losses (30 of which are air accidents).

There might be need for some editing. ("569 German losses" ?)
 
For example, what happens if you try to use Italian fighters to escort German CAS? Do the Italian fighters actually effectively stop the German bombers from being disrupted by Allied fighters?

No, they do not. Only German fighters are capable of escorting German CAS/bombers.

Hmm. This raises the question about a potential naval bug.

Do fleets on convoy escort missions only protect their own nation's (not faction's) convoys?
[no need to respond in this thread. A separate thread asking this question is posted on the open forum]
 
Last edited:
@Ceebie could you take a look? :cool:
 
Simulating the air by lumping all planes in a faction together wouldn't really work since everyone has different doctrines and high command. They just have to make the number superiority calculation based on the number of all planes in faction and make fighters be able to escort bombers of allied countries.
Well, they could potentially internally split the UK planes into two groups before running the calculations.
 
You could handwave this effect as the lack of co-ordination between planes under different commanders, but @Beethoven's argument about the negative effects of MP are very convincing.

A very good piece of scientific work.
 
"I can confirm I had the same bug as well. Played as Italy during Barbarossa, the Axis had slight air superiority, had 1500 CAS over and air zone and they were getting massacred by enemy fighters while unable to bomb anything. The escort from other axis countries was nonexistent."

Just passing on Russian Bias' observations about the faction bug...planes from the same faction do not support each other.

@Russian Bias lmao , keep on reporting game features that just don't make sense (e.g. a bug).
Also, looking forward to suggestions on how to make the game better.

Keep up the good work!
 
Has anyone tried if it's possible to support a ground combat in which you have no ground units participating? Could Italian CAS support German units fighting the Soviets, for example?
 
Hi. Thank you for your very extensive and thorough report. I've read through it and logged the issues so they should hopefully all be looked at post summer (Found an extra issue while I was at it). Awesome catch.
 
I'd just like to tag on the fact that fighter quality is basically irrelevant in air battles. Upgraded fighter 2s against fighter 1s results in equal losses, which throws dogfighting out the window. If there is a clear separation in quality between two air forces it should result in massive losses for the lower quality side.
 
I'd just like to tag on the fact that fighter quality is basically irrelevant in air battles. Upgraded fighter 2s against fighter 1s results in equal losses, which throws dogfighting out the window. If there is a clear separation in quality between two air forces it should result in massive losses for the lower quality side.
You must be doing something wrong in your tests if you are getting equal results between 1940 fighters and 1936 fighters. They actually get more than 2 to 1 losses. Do you have:
1) The same mission efficiency on both sides? My guess is this probably your issue. If you are flying the 1940 fighters from airfields further away, they will have lower mission efficiency.
2) The same doctrines on both sides?
3) Equal numbers of planes on both sides?
 
You must be doing something wrong in your tests if you are getting equal results between 1940 fighters and 1936 fighters. They actually get more than 2 to 1 losses. Do you have:
1) The same mission efficiency on both sides? My guess is this probably your issue. If you are flying the 1940 fighters from airfields further away, they will have lower mission efficiency.
2) The same doctrines on both sides?
3) Equal numbers of planes on both sides?

I didn't field test it with the exact same numbers, but I was just playing as France trying to wear down the Luftwaffe. 300 fighter 1s against my +2 engine +1 reliability fighter 2s results in sorties with 1-2 losses for both sides. This is wrong, like it or not. If there is a CLEAR difference in quality, there should be 10-20-30-40 bad fighters dying for every good one, depending on how far away in quality they are. 2 to 1 losses are complete nonsense. Why do focuses, invest research and upgrade fighter 3s, if they're gonna be fighting fighter 1s and get like 3:1 losses? It's not only completely unrealistic, it destroys the air warfare aspect of the game. Just spam 10000 unupgraded fighter 1s and you're fine.
 
I didn't field test it with the exact same numbers, but I was just playing as France trying to wear down the Luftwaffe. 300 fighter 1s against my +2 engine +1 reliability fighter 2s results in sorties with 1-2 losses for both sides. This is wrong, like it or not. If there is a CLEAR difference in quality, there should be 10-20-30-40 bad fighters dying for every good one, depending on how far away in quality they are. 2 to 1 losses are complete nonsense. Why do focuses, invest research and upgrade fighter 3s, if they're gonna be fighting fighter 1s and get like 3:1 losses? It's not only completely unrealistic, it destroys the air warfare aspect of the game. Just spam 10000 unupgraded fighter 1s and you're fine.

Well, quantity has a quality of its own. ;) But seriously, you need to make a proper test. How many fighters did you have versus the 300 French fighters? Differences in doctrine and mission efficiency can cancel out your equipment advantage.