I wanted to write an analysis and critique of Hearts of Iron 4 resistance system, but that can't be done without a lot of math - more than can fit into reddit comment.
The goal is to suppress the whole world
Occupied states with your cores (like in let's say China-PRC war) and states not completely occupied don't generate any resistance, but we're going to ignore those effects.
Since we're going to suppress the whole world, any resistance growth due to resistance in neighbouring states is just temporary and can be ignored.
- harshest - 1 suppression needed / 1 vp
- harsh - 0.8 suppression needed / 1 vp
- gentle - 0.6 suppression needed / 1 vp - this is default setting
- gentlest - 0.4 suppression needed / 1vp
List of states by victory point totals
- 1: Abruzzo, Abu Dhabi, Aden, Akmolinsk, Aleppo, Alföld, Alpes, Anhui, Antalya, Antofagasta, Aragon, Arequipa, Arkansas, Armenia, Attu Island, Bahia, Baku, Bialystok, Bihar, Bursa, Cebu, Central islands, Chelyabinsk, Coahuila, Corsica, Crete, Crisana, Dalmatia, Dodecanese, East Bengal, Eritrea, Fiji, French Guiana, Gansu, Ghana, Gilbert Islands, Goa, Granada, Guam, Gujarat, Hainan, Henan, Herat, Hyderabad, Iceland, Isfahan, Istria, Izmit, Jalisco, Jordan, Kalimantan, Kazan, Kentucky, Kenya, Kerman, Khabarovsk, Khorasan, Khuzestan, Konya, Krasnoyarsk, Kuwait, Languedoc, Lappland, Leon, Lodz, Lucknow, Macau, Macedonia, Madurai, Maranhao, Mecklenburg, Mendoza, Mesopotamia, Midway Island, Mississippi, Moldova, Montana, Moravia, Mosul, Mozambique, Munster, Murcia, Mysore, Nauru, Nebraska, New Caledonia, Nigeria, Nord-Norge, Norrland, North Borneo, North Dakota, North Korea, Northern Malay, Oklahoma, Olonets, Oregon, Palau, Perm, Polesie, Pommern, Puerto Rico, Rhodesia, Rzhev, Saipan, Salla, Scottish Highlands, Siaulai, Sierra Leone, Småland, South Carolina, South Dakota, South Sakhalin, Southern Slovakia, Sverdlovsk, Tamaulipas, Tanganyika, Tartu, Tasmania, Tikhvin, Tonkin, Transylvania, Trondelag, Tucuman, Ufa, Utah, Veracruz, Vestlandet, Voroshilovgrad, Wake Island, West Papua, Wilno, Yakutsk, Zaporozhe, Zulia
- 2: Alabama, Angola, Hejaz, Kirin, Luzon, Mandalay, Palestine, South Island, Sumatra, Zhejiang
- 3: Alberta, Alma-Ata, Arizona, Astrakhan, Auvergne, Azerbaijan, Azores, Benghasi, Bhutan, Ceylon, Costa Rica, Croatia, Damascus, El Salvador, Emilia Romagna, Gabon, Galicia, Guangxi, Guatemala, Guizhou, Honduras, Hong Kong, Indochina, Iowa, Irkutsk, Jiangxi, Jutland, Karjala, Kuibyshev, Liberia, Mindanao, Navarre, Nepal, Nicaragua, North Carolina, Nova Scotia, Novosibirsk, Oman, Omsk, Pohjanmaa, Pskov, Rio Grande Sul, Sardinia, Shanxi, Sind, Slovenia, Somaliland, South Chahar, Sulawesi, Tannu Tuva, Tashkent, Tennessee, Trabzon, Tula, Urumqi, Western Australia, Yemen
- 4: Adana, Alaska, Fars, Fujian, Khartoum, Leopoldville, Liaotung, Marshall Islands, Natal, Papua, Shaanxi, Solomon Islands, South Korea
- 5: Albania, Arkhangelsk, Bismarck, Bosnia, Bourgogne, Brabant, Burgas, Burma, Cairo, Central Macedonia, Colorado, Derna, East Anglia, Florida, Gloucestershire, Grozny, Guangzhou, Haiti, Harju, Hubei, Indiana, Iwo Jima, Izmir, Kabul, Kaunas, Kursk, La Paz, Lebanon, Leinster, Lima, Limousin, Loire, Luxemburg, Lwow, Malta, Manitoba, Midi Pyrenees, Minnesota, Miranda, Murmansk, Nejd, New Jersey, North Transylvania, Northern Ireland, Northern Territory, Novgorod, Panama, Panama Canal, Paraguay, Plovdiv, Poitou, Poznan, Saratov, Senegal, Spanish Africa, Thüringen, Tibet, Transdanubia, Tuscany, Tyrol, Uruguay, Valencia, Vitebsk, Voronezh, Wales, Weser-Ems, West Bengal, Westfalen, Wisconsin, Württemberg, Yaroslavl
- 6: Baghdad, Caroline Islands, Castille, Cuba, Dominican Republic, Ecuador, Krasnodar, La Libertad, Mongolia, Queensland, Savoy, Scania, Taiwan, Vidzeme
- 7: Andalusia, Ethiopia
- 8: Georgia, Java, Rio Grande, Shandong
- 10: Algiers, Ankara, Bombay, Bryansk, Cape, Casablanca, Champagne, Cornwall, Cundinamarca, Danzig, Eastern Switzerland, Franken, Georgia, Gibraltar, Gomel, Gorki, Hokuriku, Kalinin, Kharkov, Krakow, Lorraine, Louisiana, Mexico City, Moselland, Nanning, Niederschlesien, Northern England, Odessa, Okinawa, Orel, Ostpreussen, Porto, Rhone, Sachsen, Santiago, Shikoku, Stalino, Tehran, Transvaal, Tripoli, Upper Austria, Veneto, Virginia, Western Slovakia
- 11: Alexandria, Dnipropetrovsk, Lothian, Pampas, Provence, Tunisia, Västergötland, Washington
- 12: Siam, Singapore
- 13: Qinghai, Yunnan
- 14: Sao Paulo
- 15: British Columbia, Calabria, Catalonia, Delhi, Hannover, Hawaii, Hunan, Koshinetsu, Lanark, Lombardy, North Island, Ohio, Ostlandet, Piedmont, Rhineland, Rostov, Serbia, Smolensk, Sofia, Switzerland, Vladivostok, Wallonie
- 16: Manila, Rio de Janerio
- 17: Uusimaa
- 20: Alsace, Aquitaine, Campania, Crimea, Hessen, Hokkaido, Istanbul, Michigan, Minsk, Northern Hungary, Svealand, Thessaly, Tohoku, Warszawa
- 21: Beijing, Missouri, Texas
- 22: New England
- 23: Saint Lawrence
- 25: Bohemia, Centre, Kiev, Normandy, Schleswig-Holstein, Sichuan, Sjaelland, Victoria, West Midlands, Yorkshire
- 26: Brittany
- 28: Muntenia, Tokai
- 30: Chugoku, Illinois, Leningrad, Lisbon, Madrid, Oberbayern, Pas de Calais, Shanghai, Sicily, Southern Ontario, Stalingrad
- 33: New York
- 35: Lancashire, Lower Austria, Pennsylvania, Sussex
- 40: Kansai
- 45: Latium, Maryland
- 50: Greater London Area, Ile de France, Kanto, Moscow
- 51: New South Wales
- 55: Brandenburg, Kyushu
- 65: Holland, Vlaanderen
- 71: California
Division designUsing your regular army for suppression is a very poor idea as classic 7inf2art has abysmally low 7 suppression points for huge manpower and production cost. You pretty much need dedicated suppression divisions.
The only relevant units are:
- cavalry - 1000 manpower and 120 infantry equipment for 2 suppression
- military police - 500 manpower, 40 infantry, and 10 support equipment for suppression bonus between +20% and +50% depending on technology.
The second thing to notice is that military police is only worth it if you have a lot of cavalry in your divisions.
So the only designs to consider are:
- Ncav + military police, for somewhat big N
Suppressing the world with 1cav
- On harshest - 2036 divisions, 2036k men, 112k production
- On harsh - 1429 divisions, 1429k men, 86k production
- On gentle - 1146 divisions, 1146k men, 69k production
- On gentlest - 740 divisions, 740k men, 44k production
How bad in Ncav spam actually?
- 1cav - 2036 divisions, 2036k men
- 2cav - 1174 divisions, 2348k men
- 3cav - 851 divisions, 2553k men
- 4cav - 741 divisions, 2964k men
- 5cav - 634 divisions, 3170k men
- 6cav - 605 divisions, 3630k men
- 7cav - 579 divisions, 4053k men
- 8cav - 541 divisions, 4328k men
- 9cav - 527 divisions, 4743k men
- 10cav - 510 divisions, 5100k men
- 1cav - 1429 divisions, 1429k men
- 2cav - 756 divisions, 1512k men
- 3cav - 611 divisions, 1833k men
- 4cav - 487 divisions, 1948k men
- 5cav - 453 divisions, 2265k men
- 6cav - 407 divisions, 2442k men
- 7cav - 393 divisions, 2751k men
- 8cav - 373 divisions, 2984k men
- 9cav - 367 divisions, 3303k men
- 10cav - 350 divisions, 3500k men
- 1cav - 1146 divisions, 1146k men
- 2cav - 664 divisions, 1328k men
- 3cav - 487 divisions, 1461k men
- 4cav - 447 divisions, 1788k men
- 5cav - 398 divisions, 1990k men
- 6cav - 373 divisions, 2238k men
- 7cav - 366 divisions, 2562k men
- 8cav - 348 divisions, 2784k men
- 9cav - 335 divisions, 3015k men
- 10cav - 332 divisions, 3320k men
- 1cav - 740 divisions, 740k men
- 2cav - 474 divisions, 948k men
- 3cav - 396 divisions, 1188k men
- 4cav - 362 divisions, 1448k men
- 5cav - 340 divisions, 1700k men
- 6cav - 325 divisions, 1950k men
- 7cav - 317 divisions, 2219k men
- 8cav - 316 divisions, 2528k men
- 9cav - 314 divisions, 2826k men
- 10cav - 309 divisions, 3090k men
It's not difficult to understand why - most states that need suppression need just a few points of suppression, so you'll be wasting a lot of it.
How bad is Ncav+MP spam?
But let's assume best case for MPs, 1945 technology (even though most campaigns are over or basically so by that point), as 50% suppression bonus never results in any rounding issues.
And it's still bad. Optimal strategy by level is:
- harshest: 2cav+mp - 851 divisions, 2127k men (vs 2036k for 1cav)
- harsh: 2cav+mp - 611 divisions, 1527k men (vs 1429k for 1cav)
- gentle: 1cav+mp - 756 divisions, 1134k men (vs 1146k for 1cav)
- gentlest: 1cav+mp - 600 divisions, 900k men (vs 740k for 1cav)
Suppressing with two division types
What if we mixed a few division types? I decided to try Ncav+MP and 1cav mix, with semi-greedy algorithm. This actually results in better results than pure 1cav:
Optimal on harshest:
- 2036x 1cav - 2036k men
- 743x 1cav and 224x 4cav+mp - 1751k men
- 1429x 1cav - 1429k men
- 613x 1cav and 137x 4cav+mp - 1229k men
- 1146x 1cav - 1146k men
- 525x 1cav and 137x 3cav+mp - 1004k men
- 740x 1cav - 740k men
- 335x 1cav and 135x 2cav+mp - 672k men
The strategy is to put big divisions in high vp states, then top it up with as many 1cavs as needed - and in small states use just 1cavs.
You could try even more types - for example California on harshest treatment could be suppressed by one monstrous division of 24cav+MP (24.5k men) instead of 5x 5cav+MP (27.5k men), but that template would be too big for literally every single other state.
This is horrible design and developer should feel ashamedNow that we established the numbers and various possible strategies, let's talk about the most important issue here. This is absolutely atrocious game design! It's 100% meaningless micromanagement with zero strategic depth.
To add insult to injury it has awful interface as the only way to get the right number of units to the right state is to:
- ignore alert on top of the screen, as it points at wrong states anyway
- switch to resistance map mode
- mouseover a state because relevant information is only on the tooltip
- decode numbers on the tooltip and do the math how many divisions that actually means in your head
- put your finger on the screen to point at the right state, as there won't be any indication which one that was after this point
- switch to regular map mode
- select right number of divisions
- press strategic redeployment button and actually send them there (or make 1-province fallback line)
- repeat that for every state, over and over
This is horrible! A checkbox on occupation policy screen subtracting appropriate number of manpower and infantry equipment from your pool would have just as much strategic depth for 1% of meaningless and miserable clicking.
If devs absolutely insist on police units appearing on the map, the absolute minimum would be to group states into something like air regions or whole occupied countries, and count any resistance and suppression on that level. And then fix the damn UI so when you are in suppression mode big number of suppression needed appears directly on the map (not in tooltip) and you can move units without switching mode.
WorkaroundIf you're not trying to chase "achievements", just turn the whole miserable thing off by dropping file like this:
NDefines.NCountry.RESISTANCE_STRENGTH_FROM_VP = 0
Warning - this makes game significantly harder, as AI Germany will be able to use French, Belgian, and Polish factories to build its equipment instead of having them all wrecked in a few months of occupation while its units all sit in "wrong" states.