Will the AI ever get better at templates?

  • 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.

bitmode

1st Reverse Engineer Battalion
Nov 10, 2016
3.824
7.024
@bitmode I'm not quite sure if i understand all this
Basically the AI is only a small scripting fix away from working as you described it should work earlier.
but the German template file has a funny bug. light_armor_anti_amor_GER can replace_with = medium_armor_anti_armor_SOV. The next generation of German anti-tank is the Soviet anti-tank :)
Yup, that bug was originally reported last October. :rolleyes:
 
  • 3
Reactions:

Michael Gladius

Lt. General
9 Badges
Feb 18, 2019
1.217
1.541
  • Cities: Skylines
  • Hearts of Iron IV: Cadet
  • Hearts of Iron IV: Together for Victory
  • Knights of Honor
  • Hearts of Iron IV: Death or Dishonor
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: La Resistance
  • Battle for Bosporus
Gladius: I like the first option (tactics), not big on the second. Also, I’m really hesitant to ask for corps commands, unless it is stupidly user friendly. Less is sometimes more in terms of game enjoyability for me.

I tried to make my corps mechanic stupid-user-friendly. Heck, I even had it so that the first corps is always on the left, and each corps follows sequentially from left to right. That way, when I have mountains on the left and plains on the right, I can tell my mountaineers to go into 1st corps and my tanks into second, therefore not having to worry about the former wandering off into the plains while the tank divisions blunder through the hills! :p
 

kettyo

General
11 Badges
Feb 11, 2017
2.429
1.260
  • Hearts of Iron IV: Cadet
  • Hearts of Iron IV: Colonel
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: Death or Dishonor
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: La Resistance
  • Battle for Bosporus
  • Hearts of Iron IV: By Blood Alone
  • Hearts of Iron IV: No Step Back
@bitmode Isn't it possible to set can_upgrade_in_field to be false by default and only allow it for the selected templates? That would be a more logical solution but i don't know if it's doable by scripting?

Anyway i've done the fix as you've proposed. If anyone would need it i can upload it as a mod.
 
Last edited:

kettyo

General
11 Badges
Feb 11, 2017
2.429
1.260
  • Hearts of Iron IV: Cadet
  • Hearts of Iron IV: Colonel
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: Death or Dishonor
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: La Resistance
  • Battle for Bosporus
  • Hearts of Iron IV: By Blood Alone
  • Hearts of Iron IV: No Step Back
@bitmode One more possible bug. Generic.txt says under suppression_generic:

Code:
upgrade_prio = {
            factor = 2

            modifier = {
                factor = 50
                tag = GER
                OR = {
                    AND = {
                        has_completed_focus = GER_anschluss
                        NOT = { ai_has_role_template = garrison }
                    }
                  
                    AND = {
                        any_country = {
                            is_justifying_wargoal_against = ROOT
                        }
                        NOT = { ai_has_role_template = garrison }
                    }
                }         
            }
        }

But it should say NOT = { ai_has_role_template = suppression } shouldn't it?

I have also observed many AI garrison templates use military police. What purpose it serves? As far as i know they don't provide suppression as a garrison. What is the benefit of having MP with them?

Also it's kinda strange that the Soviets use cavalry for garrison.
 
Last edited:

bitmode

1st Reverse Engineer Battalion
Nov 10, 2016
3.824
7.024
@bitmode Isn't it possible to set can_upgrade_in_field to be false by default and only allow it for the selected templates? That would be a more logical solution but i don't know if it's doable by scripting?
It not possible with scripting as far as I know. As it is used currently, I think it would be sufficient in code to ignore can_upgrade_in_field unless replace_with is set. But maybe I'm missing a use case.
 
  • 1
Reactions:

bitmode

1st Reverse Engineer Battalion
Nov 10, 2016
3.824
7.024
@bitmode One more possible bug.
When you go through the files, you'll find a huge amount of obvious bugs. But at that point you are basically doing @Da9L 's work for free.
But it should say NOT = { ai_has_role_template = suppression } shouldn't it?
Technically, yes. It should probably have neither of these clauses at all because this is just a copy-paste from garrison_GER which doesn't fit for this situation.
 
  • 3
  • 1Like
Reactions:

kettyo

General
11 Badges
Feb 11, 2017
2.429
1.260
  • Hearts of Iron IV: Cadet
  • Hearts of Iron IV: Colonel
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: Death or Dishonor
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: La Resistance
  • Battle for Bosporus
  • Hearts of Iron IV: By Blood Alone
  • Hearts of Iron IV: No Step Back
Technically, yes. It should probably have neither of these clauses at all because this is just a copy-paste from garrison_GER which doesn't fit for this situation.

Not necessarily so as the default suppression logic says:

Code:
upgrade_prio = {
    factor = 1

    modifier = {
        factor = 20
        has_war = yes
    }
}

So countries will start rushing suppression units when getting into a war.

So that the extra logic for Germany makes him rush for a suppression unit after the anschluss instead which isn't bad as they might advance very quickly in the first stage of the war causing the need for suppression very fast.

I might consider adding something similar for Japan too after forming their faction so they'll have a suppression unit by the time they invade China. (not sure about this)
 
Last edited:
  • 1
Reactions:

Hoi Neuling

General
38 Badges
Aug 30, 2012
2.059
639
  • Hearts of Iron III
  • Hearts of Iron IV: La Resistance
  • BATTLETECH - Digital Deluxe Edition
  • Hearts of Iron IV: Expansion Pass
  • Stellaris: Distant Stars
  • BATTLETECH: Flashpoint
  • Stellaris: Megacorp
  • Stellaris: Ancient Relics
  • Stellaris: Lithoids
  • BATTLETECH: Heavy Metal
  • Stellaris: Apocalypse
  • Stellaris: Federations
  • Battle for Bosporus
  • Empire of Sin
  • Stellaris: Necroids
  • Stellaris: Nemesis
  • Hearts of Iron IV: By Blood Alone
  • Hearts of Iron IV: No Step Back
  • Stellaris: Humanoids Species Pack
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: Death or Dishonor
  • BATTLETECH
  • 500k Club
  • Stellaris
  • Hearts of Iron IV: Expansion Pass
  • Stellaris: Galaxy Edition
  • Stellaris: Leviathans Story Pack
  • Stellaris: Digital Anniversary Edition
  • Hearts of Iron IV: Colonel
  • Hearts of Iron IV: Cadet
  • Stellaris: Galaxy Edition
  • Darkest Hour
  • King Arthur II
  • BATTLETECH: Season pass
  • Hearts of Iron IV: Expansion Pass
  • Stellaris - Path to Destruction bundle
  • Stellaris: Synthetic Dawn
  • Arsenal of Democracy
Let´s hope so, because the upgrades from the active Forces is going in the right direction. And some of the new Buildups for the Front too. Maybe an preliminarys for the big Rework / Refit for Patch 1.11 "Barbarossa" and DLC.
 

kettyo

General
11 Badges
Feb 11, 2017
2.429
1.260
  • Hearts of Iron IV: Cadet
  • Hearts of Iron IV: Colonel
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: Death or Dishonor
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: La Resistance
  • Battle for Bosporus
  • Hearts of Iron IV: By Blood Alone
  • Hearts of Iron IV: No Step Back
@bitmode Using your can_upgrade_in_field fix provides a lot of error reports in the log.

Code:
[00:46:31][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:46:31][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:46:31][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:46:31][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:46:31][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:46:31][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:46:31][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:46:48][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:46:48][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:46:48][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:46:48][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:46:48][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:46:48][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:46:48][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:46:59][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:46:59][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:46:59][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:46:59][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:46:59][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:46:59][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:46:59][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:06][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:06][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:06][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:06][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:06][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:06][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:06][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:09][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:09][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:09][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:09][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:09][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:09][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:09][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:14][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:14][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:14][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:14][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:14][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:14][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:14][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:20][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:20][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:20][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:20][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:20][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:20][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:20][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:33][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:33][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:33][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:33][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:33][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:33][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:33][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:45][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:45][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:45][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:45][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:45][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:45][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:45][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:59][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:59][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:59][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:59][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:59][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:59][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command
[00:47:59][gameidler.cpp:1543]: AI tried to post an invalid command: set_army_template_command

So probably there are still bugs inside regarding the template upgrade mechanic which makes it fail a lot of times. Maybe that's why PDX resorted to en masse upgrades for the time being.
 

bitmode

1st Reverse Engineer Battalion
Nov 10, 2016
3.824
7.024
Ohh i've deleted in the meantime but maybe i have it on my other computer in the office. I'll check tomorrow or after tomorrow, depending on when i'll be in office. Thanks!
No worries, I inserted the attribute myself. I'm not getting the error. I've let the game run hands-off, historical until 1941. Or does it happen later?

In terms of code there are not many things that could make set_army_template_command invalid:
  • the division to be upgraded does not exist
  • it is an expeditionary division
  • the template to change to does not exist
  • if the division is from an exiled government, it is of the wrong origin
The first three conditions should all work fine as the AI checks for those before issuing the command. I don't have MtG, so I'm not sure what exactly the rules of upgrading exiled divisions are supposed to be. The AI code certainly does not take this into account at all. Maybe you could check whether you get the errors without MtG as well (or somehow prevent governments in exile)?

If this is the culprit, it should also mean that light tank divisions getting exiled would throw this error in the unmodified game under the right circumstances.
 
  • 2
Reactions:

kettyo

General
11 Badges
Feb 11, 2017
2.429
1.260
  • Hearts of Iron IV: Cadet
  • Hearts of Iron IV: Colonel
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: Death or Dishonor
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: La Resistance
  • Battle for Bosporus
  • Hearts of Iron IV: By Blood Alone
  • Hearts of Iron IV: No Step Back
@bitmode Will do so, thanks!

It might not be such a big deal after all as i see this as well and this shouldn't be related in any way, this should be in the unmodded game too:

Code:
[21:09:59][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:10:02][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:10:05][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:10:07][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:10:09][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:10:17][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:10:19][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:10:22][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:10:26][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:10:28][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:10:31][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:10:34][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:10:39][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:10:42][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:10:44][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:10:47][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:10:50][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:10:52][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:10:55][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:12:00][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:13:09][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:13:17][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:13:19][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:13:22][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:13:38][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:13:41][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:13:44][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:14:17][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:14:20][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:14:47][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:15:20][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:15:23][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:15:26][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:15:30][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:15:37][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:15:40][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:15:44][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:15:48][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:15:51][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:15:54][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:15:58][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:16:01][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:16:05][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:16:41][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:16:45][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:16:48][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:16:52][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:16:56][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:16:59][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:17:03][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:17:06][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:17:10][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:17:13][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:17:16][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:17:21][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:17:24][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command
[21:17:27][gameidler.cpp:1543]: AI tried to post an invalid command: add_mass_production_line_factories_command

And this as well:

Code:
[21:36:16][gameidler.cpp:1543]: AI tried to post an invalid command: cancel_movement
[21:36:27][gameidler.cpp:1543]: AI tried to post an invalid command: cancel_movement
[21:36:56][gameidler.cpp:1543]: AI tried to post an invalid command: cancel_movement
[21:36:56][gameidler.cpp:1543]: AI tried to post an invalid command: cancel_movement
[21:36:56][gameidler.cpp:1543]: AI tried to post an invalid command: cancel_movement
[21:36:59][gameidler.cpp:1543]: AI tried to post an invalid command: cancel_movement
[21:36:59][gameidler.cpp:1543]: AI tried to post an invalid command: cancel_movement
 
  • 1
Reactions:

Simon Marques

Second Lieutenant
12 Badges
Aug 26, 2020
130
109
  • Crusader Kings II
  • Crusader Kings II: Legacy of Rome
  • Crusader Kings II: The Old Gods
  • Crusader Kings II: The Republic
  • Victoria 2
  • Crusader Kings II: Way of Life
  • 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
  • Hearts of Iron IV: La Resistance
I know there's a new DLC coming out, but I have to ask: will there be any improvements to the AI coming? I think most players are aware of the ways the AI struggles with templates (making tons of ones it doesn't use, not upgrading templates as time goes on, etc.). Rather than a Finnish focus tree, this seems like something which would add value to all players.

Both, a Finnish focus tree and an improvement in AI are great additions. If I were to choose an AI improvement it would be this option.
 

bitmode

1st Reverse Engineer Battalion
Nov 10, 2016
3.824
7.024
AI should aim to make historical templates
The AI used to make historical templates in the sense that it stayed closer to how the initial templates look like and a lot of players were unhappy. With the shortcomings the game has, it can't make everyone happy at the same time.
 
Last edited:
  • 1
Reactions:

Leinad965

Major
28 Badges
May 9, 2014
663
867
  • Europa Universalis IV: Art of War
  • For the Motherland
  • Hearts of Iron III
  • Hearts of Iron III: Their Finest Hour
  • Semper Fi
  • Darkest Hour
  • Battle for Bosporus
  • Age of Wonders III
  • Hearts of Iron IV: Expansion Pass
  • Cities: Skylines - Parklife
  • Stellaris: Distant Stars
  • Imperator: Rome
  • Hearts of Iron IV: Expansion Pass
  • Imperator: Rome - Magna Graecia
  • Surviving Mars
  • Hearts of Iron IV: By Blood Alone
  • Hearts of Iron IV: No Step Back
  • Stellaris: Synthetic Dawn
  • Hearts of Iron IV: Death or Dishonor
  • Stellaris - Path to Destruction bundle
  • Hearts of Iron IV: Together for Victory
  • Stellaris: Leviathans Story Pack
  • Hearts of Iron IV: Cadet
  • Hearts of Iron IV Sign-up
  • Stellaris
  • Cities: Skylines
  • Europa Universalis IV
  • Hearts of Iron IV: La Resistance
AI should aim to make historical templates

And what are historical templates? Game does have only divisions, without any attachments. So with historical templates created as "historical divisions" you will end without many tanks or artillery pieces. Or you can have historical numbers in army, but your templates will not look like historical division.
 
  • 1Like
Reactions:

Shaka of Carthage

General
12 Badges
Sep 7, 2017
2.095
1.742
  • 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
  • Imperator: Rome Deluxe Edition
  • Imperator: Rome
  • Hearts of Iron IV: Expansion Pass
  • Imperator: Rome Sign Up
  • Hearts of Iron IV: La Resistance
  • Battle for Bosporus
  • Crusader Kings II
And what are historical templates? Game does have only divisions, without any attachments. So with historical templates created as "historical divisions" you will end without many tanks or artillery pieces. Or you can have historical numbers in army, but your templates will not look like historical division.

Not that hard to have the AI make historical templates, where templates are divisions.

The problem is that to make historical divisions effective, you need to make certain other adjustments. Otherwise the 9 Inf, 1 Arty with support will lose to the 7 Inf 2 Arty (with little or no support), not to mention the 40 width megas.
 
  • 2
Reactions:

KubiG37

Colonel
42 Badges
Apr 11, 2016
984
1.752
  • Europa Universalis IV: Rule Britannia
  • Stellaris: Leviathans Story Pack
  • Europa Universalis IV
  • Europa Universalis IV: Mandate of Heaven
  • Hearts of Iron IV: Death or Dishonor
  • Europa Universalis IV: Cradle of Civilization
  • Hearts of Iron IV: Expansion Pass
  • Stellaris: Humanoids Species Pack
  • Stellaris: Apocalypse
  • Hearts of Iron IV: Together for Victory
  • Stellaris: Distant Stars
  • Prison Architect
  • Stellaris: Ancient Relics
  • Stellaris: Lithoids
  • Hearts of Iron IV: La Resistance
  • Stellaris: Federations
  • Battle for Bosporus
  • Stellaris: Nemesis
  • Europa Universalis IV: Rights of Man
  • Victoria 2
  • Europa Universalis IV: El Dorado
  • Europa Universalis IV: Common Sense
  • Europa Universalis IV: Cossacks
  • Europa Universalis IV: Mare Nostrum
  • Stellaris
  • Hearts of Iron IV: Cadet
  • Hearts of Iron IV: Colonel
  • Stellaris: Digital Anniversary Edition
  • Europa Universalis IV: Third Rome
  • Victoria 2: A House Divided
  • Europa Universalis IV: Res Publica
  • Europa Universalis IV: Art of War
  • Europa Universalis IV: Conquest of Paradise
  • Europa Universalis IV: Wealth of Nations
  • Europa Universalis IV: Call to arms event
  • Stellaris: Megacorp
  • Victoria 2: Heart of Darkness
  • Stellaris: Synthetic Dawn
@bitmode I'm not quite sure if i understand all this but the German template file has a funny bug. light_armor_anti_amor_GER can replace_with = medium_armor_anti_armor_SOV. The next generation of German anti-tank is the Soviet anti-tank :)
There's even more of it broken, like this bug thread I posted some time ago.

The most troubling issue is that AI will not even research any TD 90% of time. So they can't build the template anyway.
 
  • 1
Reactions: