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

alufdufe

Major
82 Badges
Aug 15, 2005
505
0
  • Hearts of Iron IV: Colonel
  • Europa Universalis IV: El Dorado
  • Europa Universalis IV: Pre-order
  • Crusader Kings II: Way of Life
  • Europa Universalis IV: Common Sense
  • Crusader Kings II: Horse Lords
  • Europa Universalis IV: Cossacks
  • Crusader Kings II: Conclave
  • Europa Universalis IV: Mare Nostrum
  • Stellaris
  • Stellaris: Galaxy Edition
  • Stellaris: Galaxy Edition
  • Hearts of Iron IV: Cadet
  • 500k Club
  • Crusader Kings II: Reapers Due
  • Europa Universalis IV: Rights of Man
  • Stellaris: Digital Anniversary Edition
  • Stellaris: Leviathans Story Pack
  • Hearts of Iron IV: Together for Victory
  • Crusader Kings II: Monks and Mystics
  • Stellaris - Path to Destruction bundle
  • Steel Division: Normandy 44
  • Europa Universalis IV: Mandate of Heaven
  • Knights of Honor
  • Europa Universalis IV: Third Rome
  • Hearts of Iron 4: Arms Against Tyranny
  • Europa Universalis IV: Art of War
  • Arsenal of Democracy
  • Hearts of Iron II: Armageddon
  • Crusader Kings II
  • Crusader Kings II: Charlemagne
  • Crusader Kings II: Legacy of Rome
  • Crusader Kings II: The Old Gods
  • Crusader Kings II: Rajas of India
  • Crusader Kings II: The Republic
  • Crusader Kings II: Sons of Abraham
  • Crusader Kings II: Sunset Invasion
  • Crusader Kings II: Sword of Islam
  • Europa Universalis IV
  • Hearts of Iron Anthology
  • Europa Universalis IV: Conquest of Paradise
  • Europa Universalis IV: Wealth of Nations
  • Europa Universalis IV: Call to arms event
  • For the Motherland
  • Hearts of Iron III
  • Hearts of Iron III: Their Finest Hour
  • Hearts of Iron III Collection
  • Europa Universalis IV: Res Publica
  • Rome Gold
  • Semper Fi
I just switched over to AOD from Arma. I tried to play the US in the 41GC and the Germans got a bitter peace in about a year. Is that normal? Is there any kind of a fix out there for the Soviet AI? If there isn't, would anybody be interested in at least a partial fix? I think I figured out at least part of the reason the Soviets are so bad. I've got a fix that doesn't add any units to the 41Soviets, yet has them stopping the Germans short of the BP. With a little work the idea could be used on the other CG's. What I need are playtesters. Anyone interested?
 
The Soviet "fragility" is pretty well known, and in patch 1.05 we have made some tweaks to rebalance it, but if you wouldn't mind saying what you did (either here or via PM) it might help us get 1.05 even better! :)
 
The problem doesn't seem to be tne combat AI, it's in the production. They're not building any units. Here's my fix. Try it handsoff on the 41CG on normal/normal. See if you think it makes a difference.

To make the 41GC "all AI" East Front a little more interesting:

The key to making this work is reducing the manpower pool,
increasing the daily daily manpower, and reducing, if not
eliminating, the production of militia units.

################################################################

In the AI folder change the "sov_1941.ai"

from this:

#### Brigades
artillery = 16
sp_artillery = 5
rocket_artillery = 4
sp_rct_artillery = 2
anti_tank = 8
tank_destroyer = 4
light_armor_brigade = 3
heavy_armor = 6
super_heavy_armor = 0
armored_car = 2
anti_air = 6
police = 2
engineer = 5

To this:

#### Brigades
artillery = 16
sp_artillery = 10
rocket_artillery = 4
sp_rct_artillery = 4
anti_tank = 8
tank_destroyer = 4
light_armor_brigade = 3
heavy_armor = 6
super_heavy_armor = 0
armored_car = 2
anti_air = 6
police = 0
engineer = 0


####################################################################

In the ai/switch folder change the "sov_build_panic.ai"

from this:

#### Divisions etc...
infantry = 65
cavalry = 0
motorized = 0
mechanized = 0
light_armor = 0
armor = 5
paratrooper = 0
marine = 0
bergsjaeger = 0
garrison = 0
hq = 0
militia = 19
# 89 %

To this


#### Divisions etc...
infantry = 74
cavalry = 0
motorized = 5
mechanized = 0
light_armor = 0
armor = 10
paratrooper = 0
marine = 0
bergsjaeger = 0
garrison = 0
hq = 0
militia = 0
# 89 %

###########################################################################

In "db/events/ai_sov.txt" change event 25015.

Change this line:

land_percentage = { country = GER value = 0.9 }

To this:

land_percentage = { country = GER value = 1.5 } # was .9

and add these commands:

command = { type = free_manpower value = -2 }
command = { type = free_energy value = -400 }
command = { type = free_metal value = -300 }
command = { type = free_rare_materials value = -100 }
command = { type = free_ic value = -50 }

###############################################################################

In "db/events/ai_sov.txt" change event 25016.

Change this line:

NOT = { land_percentage = { country = GER value = 0.9 } }

To this:

NOT = { land_percentage = { country = GER value = 1.5 } } # was .9

and add these commands:

command = { type = free_manpower value = 2 }
command = { type = free_energy value = 400 }
command = { type = free_metal value = 300 }
command = { type = free_rare_materials value = 100 }
command = { type = free_ic value = 50 }

###################################################################################

IN "scenarios/1941/ger_41.inc"

remove tech 6290 "Spearhead HQ's", it's a 43 tech the Germans shouldn't have yet anyway.

#####################################################################################

IN "scenarios/1941/sov_41.inc"

reduce the Soviet starting manpower from 1600 to 300

raise the professional army level from 2 to 7

give them tech 6340 "Defense in Depth"

give them a blueprint for tech 6350 "Large Formation SOP"

######################################################################################

EDIT: In the original version, the AI is constantly adding new units to the queue, pushing the partially built units and serial builds out of production. It keeps doing this until the manpower pool is used up. By the time it stops adding units, and actually finishing some, it's way past too late. If you look at the build queue when BP occurs the completion percentage goes up as you go down the list. If you compare all accumulated manpower to the MP allocated to production, you see that the Soviets have finished very few units. The same thing happens in all the CG's. This fix is for the 41CG, but the idea should be adaptable to all the CG's.
 
Last edited:
This is interesting. I'm toying around with the Soviet AI as well, although not in AoD but in Armageddon. I'm aiming for a 39GC scenario, which provides Germany a challenging game on the eastern front.

In the original sov.inc file, the SU is building scores of tanks, so that infantry builds can't occur until way into late 1940, where it's too late. I cleaned all the parallel tank builds and added a number of serial builds of 10 infantry divisions. In my first test game, I opened the game as SU, when Barbarossa was about to start, and how surprised was I when I saw, that all those accurately crafted serial builds of infantry, tanks and planes were sitting at the end of the build queue with 0% completed.

I would like to test your approach, but I am unsure, what exactly the free_manpower command does, and how many free MP per day it really brings.

Also, I am not very sure if it's good to give the SU that many free resources. They're drowning in resources anyway and as much as I know the AI, it'll just trade it away. If adding free resources, I'd do it balanced with the free IC, i.e. 100 energy, 50 metal and 25 rares for the 50 free IC you're adding.
 
That's why I reduce the manpower pool. The AI can't bury your production if it doesn't have the manpower to start new construction. But if you take 1300 MP out, you have to put it back somewhere. This is what the free_manpower command does. It increases your daily manpower by the amount specified. I have it set at 2, so you get 2/day plus whatever you would get normally. It's not affected by tech, territory loss, or ministers. And 2 is an enormous amount of manpower, if you add .2(1/10 of what I'm adding to SU) to AI germany they become virtually unstoppable. The idea is that if the SU stays in panic build for 2 years years, you've fed 1440 MP back into the system. That's where the switch event comes in. I have it set at 1.5, so when the Soviet strength is 1.5 times that of the Germans, the panic build shuts off, it goes to land build and loses all the free stuff.

The resouces are based on AOD, which has different values than Armageddon. For AOD. I set the values high so there'd be a surplus to run the SU's IC's until they could recapture enough territory to supply them from daily income. There should also be about 500MP in the manpower pool. AOD uses more IC"s, so I'm the sure 50 is probably more than you want. But the extra IC's also make it harder for the AI to clog the system.

I've also tried to make it as transparent as possible. To switch from AI SU to human player all you have to do is change the starting MP. the rest is AI only.

EDIT: To me the SU production has always been flaky, but the pace was slow enough the system had time to compensate. In AOD, if the Germans are getting BP in a year, the SU can't wait 7 or 8 months to get new units.
 
Last edited:
Good reasoning. I'll test it within the week. There are some nonsensical values in the garrison AI as well, see my "SU doesn't annex baltics" thread in the bug report forum.

I went back to Armageddon from AoD, because at the moment it changes too quick, I don't have that much time to tweak a mod after every change. I raised defense and toughness to WiF values, this ensures longer combat, but I didn't add to unit speed, which somewhat eases the superstack issue.

I'll try to add IC to SU, but I'll probably do it through industrial_modifier, since it should raise resources together with IC.
 
I ran some hands-offs with the 39GC (since that's what interests me). I had added info events, that let me (Switzerland) know, when panic is turned on and off. I came to the result, that the first thing happening is switching the panic build OFF. This is of course bad, since we don't grant them a bonus when they're in need (turned ON again after start of winter war), but only return what we have taken first. I came to the conclusion, that it's probably better to add a new AI event, that monitors the SOVBuildLandPanic local flag and using an own flag makes sure, that the MP and IC bonus is not turned off when it wasn't on before.

Having cleaned the scenario from all pre-builds, I also noticed, that a good part of the Soviet builds was IC (5 factories started September 1939). This is bad, they should build units after the purge. Got to fiddle with the IC they're dealt for land improvements.

Lastly, I have a horrible suspicion: Are we sure, units in the build queue don't actually count into the land_percentage calculation? Because they do for the unit type = x trigger and pure logic suggests, they're counting here as well. If that's the case, the solution to being too weak would just be to add lots of units to the queue, no matter that only a small portion are actually completed, if that.
 
About half a dozen hands-off games 39-41, a couple more observations. I repaired the event as described (not taking away what was not granted before), and panic switches now on and off as it should be. But there are still some things not right:

1) The AI builds too many tanks. 2 series of tanks and 4 series of infantry is not right if in panic mode. I took your numbers, so I have no idea why the AI builds tanks with such an unproportional priority. I would it like better if it built 1 series of tanks and 7 infantry, that would be better spent IC.

2) I changed max_factor in "construction" from 0.350 to 0.100 in the sov_1939.ai. In sov_1941.ai it's at 0.050 by default, which is about right. Instead of 5 factories the SU now builds only 1, dealing more IC to upgrades (where they're big in need) and unit builds. They're also building land forts in the 2 provinces shielding Moscow, which IMO isn't a bad thing.

3) I had some situations, where the panic mode was enabled for just a week, before it switched off again. This is bad, as the builds started with the bonus IC are starved again a week later.

4) To me, the trigger conditions in 25015 don't make sense, especially the big OR construct below the two land_percentage lines. I mean, why the hell is panic mode switched off only if the goals in question are NOT achieved? IMO, all the NOT = { ... } in that OR construct need to be removed. Best is to rework both the conditions in 25015 and 25016 and provide them with different low and high water marks.
EDIT: Hmmm... if taking the SOVBuildStandard and event 25014 in account as well, things make more sense. I need to reflect a bit more about this, it's pretty complicated and too early to mess with it.

5) Your approach of granting off-map IC and resources works better than mine with industrial_modifier.

6) The AI builds too short series. This is because the max_batch_... variables in the sov_year.ai files are too low. They represent the number of days the longest series should take. It is mostly either 360 (1 year) or even 180 (6 months). IMO max_batch_peace should be raised to 720, as most models of INF, ARM and planes are 2 years apart. max_batch_war and max_batch_home should be raised to at least 360. The doctrines of the USSR and their drafted army status (I do NOT raise standing army outright to 7 as you suggest) are better supported by longer series.

All in all I'm beginning to doubt, that it is possible to get the SU in shape from 1939 to 1941 only with AI switches and bonus IC. The AI is just too dumb and not everything can be scripted.

I'm thinking about another approach. We give the AI bonus IC, bonus resources, bonus manpower and try to teach it to build the right things. And IMO we're failing with it. So why not try another thing: Let's scrap all these boni (but keep the MP taken away) and let's give them free divisions, while in panic mode. I know, it sounds too cheesy, but generally it's the same thing, it's basically bonus IC and bonus resources and bonus MP and build priority all in one. And this way we can make sure, they get the right things.

It should be a big permanent event, triggering every few days (I think about a week) while the panic flag is set. It should give an INF with ~85%, a MOT with ~10% and an ARM with ~5% probability. The latter two should give unbrigaded divisions outright, The INF choice should trigger another event, where it's given INF/ART with 20%, INF/AT with 20%, INF/AA with 20% and unbrigaded INF with 40% chance.
 
Last edited:
I tested another approach. I scrapped all IC, resources and MP boni and returned the previous build priorities. At the beginning of the game, I take away 1300 MP by event (so I don't have to edit the scenario). After this, everything goes automatically: If in panic mode, the Soviet AI gets in average 1 infantry division per week for free. If in land build mode, it gets 1 division every 2 weeks. If in standard mode, it gets nothing. 20% of the bonus divisions come with artillery, 20% with anti-tank, 20% with anti-aircraft and 40% unbrigaded.

The AI adds its own builds, and since that was very armor and plane heavy as I pointed out above, it became a very good mix. By the beginning of 1941, the SU had 196 infantry divisions, which is a lot compared to my tests with bonus IC and MP yesterday, where it only had 150-160 at this time (it starts with 135).

The bonus ends in 1944. Until then, the AI gets divisions as advanced as it last researched infantry tech. I added an event, which watches for supplies and gives free supplies when the AI doesn't have any. This time, however, only the IC is free, the AI pays in resouces.

I will play a test game in the next time (goes slowly, I have family and a full time job). Hopefully, I can go full strategic depth without my usual house rule (no large sweeping encirclements, at most 2 provinces).

Here's my series of events, if you're interested:

Code:
# Takes away most of manpower and makes land units somewhat cheaper
event = {
	id = 581350
	random = no
	country = SOV

	trigger = {
		ai = yes
	}

	name = "AI_EVENT"
	style = 0

	date = { day = 0 month = january year = 1936 }
	offset = 1
	deathdate = { day = 29 month = december year = 1963 }

	action_a = {
		command = { type = manpowerpool value = -1300 } # more than compensated by 581351..581356
		command = { type = build_time which = land where = relative value = -10 }
		command = { type = build_cost which = land where = relative value = -10 }
	}
}

# Gives about 1 INF division per week if in dire need (panic mode).
# This translates to about 100 IC worth of infantry builds.
# This bonus is granted until the end of 1944.
event = {
	id = 581351
	random = no
	country = SOV
	persistent = yes

	trigger = {
		event = 581350
		local_flag = SOVBuildLandPanic
		NOT = { local_flag = SOVBonusDivision }
		random = 14
	}

	name = "AI_EVENT"
	style = 0

	date = { day = 0 month = january year = 1936 }
	offset = 1
	deathdate = { day = 29 month = december year = 1944 }

	action_a = {
		command = { type = local_setflag which = SOVBonusDivision }
	}
}

# Gives about 1 INF division every 2 weeks if in need (land mode).
# This translates to about 50 IC worth of infantry builds.
# This bonus is granted until the end of 1944.
event = {
	id = 581352
	random = no
	country = SOV
	persistent = yes

	trigger = {
		event = 581350
		local_flag = SOVBuildLand
		NOT = { local_flag = SOVBonusDivision }
		random = 7
	}

	name = "AI_EVENT"
	style = 0

	date = { day = 0 month = january year = 1936 }
	offset = 1
	deathdate = { day = 29 month = december year = 1944 }

	action_a = {
		command = { type = local_setflag which = SOVBonusDivision }
	}
}

event = {
	id = 581353
	random = no
	country = SOV
	persistent = yes

	trigger = {
		local_flag = SOVBonusDivision
		NOT = { technology = 1030 }
	}

	name = "AI_EVENT"
	style = 0

	date = { day = 0 month = january year = 1936 }
	offset = 3
	deathdate = { day = 29 month = december year = 1963 }

	action_a = {
		ai_chance = 20
		command = { type = add_division value = infantry when = 1 where = artillery }
		command = { type = local_clrflag which = SOVBonusDivision }
	}
	action_b = {
		ai_chance = 20
		command = { type = add_division value = infantry when = 1 where = anti_tank }
		command = { type = local_clrflag which = SOVBonusDivision }
	}
	action_c = {
		ai_chance = 20
		command = { type = add_division value = infantry when = 1 where = anti_air }
		command = { type = local_clrflag which = SOVBonusDivision }
	}
	action_d = {
		ai_chance = 40
		command = { type = add_division value = infantry when = 1 }
		command = { type = local_clrflag which = SOVBonusDivision }
	}
}

event = {
	id = 581354
	random = no
	country = SOV
	persistent = yes

	trigger = {
		local_flag = SOVBonusDivision
		technology = 1030
		NOT = { technology = 1040 }
	}

	name = "AI_EVENT"
	style = 0

	date = { day = 0 month = january year = 1936 }
	offset = 3
	deathdate = { day = 29 month = december year = 1963 }

	action_a = {
		ai_chance = 20
		command = { type = add_division value = infantry when = 2 where = artillery }
		command = { type = local_clrflag which = SOVBonusDivision }
	}
	action_b = {
		ai_chance = 20
		command = { type = add_division value = infantry when = 2 where = anti_tank }
		command = { type = local_clrflag which = SOVBonusDivision }
	}
	action_c = {
		ai_chance = 20
		command = { type = add_division value = infantry when = 2 where = anti_air }
		command = { type = local_clrflag which = SOVBonusDivision }
	}
	action_d = {
		ai_chance = 40
		command = { type = add_division value = infantry when = 2 }
		command = { type = local_clrflag which = SOVBonusDivision }
	}
}

event = {
	id = 581355
	random = no
	country = SOV
	persistent = yes

	trigger = {
		local_flag = SOVBonusDivision
		technology = 1040
		NOT = { technology = 1050 }
	}

	name = "AI_EVENT"
	style = 0

	date = { day = 0 month = january year = 1936 }
	offset = 3
	deathdate = { day = 29 month = december year = 1963 }

	action_a = {
		ai_chance = 20
		command = { type = add_division value = infantry when = 3 where = artillery }
		command = { type = local_clrflag which = SOVBonusDivision }
	}
	action_b = {
		ai_chance = 20
		command = { type = add_division value = infantry when = 3 where = anti_tank }
		command = { type = local_clrflag which = SOVBonusDivision }
	}
	action_c = {
		ai_chance = 20
		command = { type = add_division value = infantry when = 3 where = anti_air }
		command = { type = local_clrflag which = SOVBonusDivision }
	}
	action_d = {
		ai_chance = 40
		command = { type = add_division value = infantry when = 3 }
		command = { type = local_clrflag which = SOVBonusDivision }
	}
}

event = {
	id = 581356
	random = no
	country = SOV
	persistent = yes

	trigger = {
		local_flag = SOVBonusDivision
		technology = 1050
	}

	name = "AI_EVENT"
	style = 0

	date = { day = 0 month = january year = 1936 }
	offset = 3
	deathdate = { day = 29 month = december year = 1963 }

	action_a = {
		ai_chance = 20
		command = { type = add_division value = infantry when = 4 where = artillery }
		command = { type = local_clrflag which = SOVBonusDivision }
	}
	action_b = {
		ai_chance = 20
		command = { type = add_division value = infantry when = 4 where = anti_tank }
		command = { type = local_clrflag which = SOVBonusDivision }
	}
	action_c = {
		ai_chance = 20
		command = { type = add_division value = infantry when = 4 where = anti_air }
		command = { type = local_clrflag which = SOVBonusDivision }
	}
	action_d = {
		ai_chance = 40
		command = { type = add_division value = infantry when = 4 }
		command = { type = local_clrflag which = SOVBonusDivision }
	}
}

# This event provides ~35 IC worth of free supplies, if needed
event = {
	id = 581359
	random = no
	country = SOV
	persistent = yes

	trigger = {
		event = 581350
		atwar = yes
		NOT = { supplies = 2000 }
		energy = 1000
		metal = 500
		rare_materials = 250
	}

	name = "AI_EVENT"
	style = 0

	date = { day = 0 month = january year = 1936 }
	offset = 14
	deathdate = { day = 29 month = december year = 1944 }

	action_a = {
		command = { type = supplies value = 2000 }
		command = { type = energypool value = -1000 }
		command = { type = metalpool value = -500 }
		command = { type = rarematerialspool value = -250 }
		# The IC is free, we take away the resources
		# (in which the SU is drowning anyway)
	}
}
 
Last edited:
Even though nobody seems to read this anymore, I want to put down some test results. With the changes above (1300 MP taken away, no free MP, no free IC, no free resources, with free divisions as described above) in a 1939 scenario (1936 bores me to death) the SU had almost 279 infantry divisions and 23 fast divisions by Barbarossa, compared with Germany's 164 infantry divisions and 35 fast divisions (almost historical build, can build some more). This is almost too strong, but we have plenty of room to tone down.

However, it's still not good enough, since the AI puts an equal amount into all border provinces (even to Finland there were 9 in each!). This is not necessary and even counter-productive. In the north, there should be less divisions, as conditions there are harsh and terrain swamped and forested. And in the south, there were the same 9-10 divisions in each province, plus about 2 in each province behind. This is bad, as the south is great tank area and it's pretty easy to make one sweeping encirclement and go to Stalingrad in one rush without resistance.

The proposed solution is to change the province weight in the sov_1941.ai file and the related switches. I built a second echelon throughout the whole front (it was already in, but I rebalanced it), and in the south I added a third echelon equal to the second, so that there are Soviet divisions almost everywhere back to the Dnjepr river. It's pretty hard to encircle that, and if you dare, the Soviet AI is able to play its low-org-high-morale game with you: quickly retreat into safe land (own divisions there), quickly recover, quickly counterattack, so see that your spearheads aren't cut off. Instead of 9-10 now there were only ~5-6 divisions in each frontal province, but 2 rows of provinces behind manned with 3-4 divisions in each. I still got to try this in action, though (can't play hands-offs, it's limited to AI SOV vs human GER).

Here is the corresponding AI garrison section:

Code:
garrison = {
	defend_overseas_beaches = no
	home_multiplier 	= 1.0
	overseas_multiplier 	= 0.5
	home_peace_cap 		= 20
	war_zone_odds 		= 2.0
	key_point_prio_mult	= 0.0
	revolt_risk_mult	= 0.3

	# PRIORITIES:
	beach			= 0	# Beach level 2
	capital			= 25	# Our capital
	human_border		= 0	# Ignored for allied human players
	war_target		= 50	# The next country targeted for attack by this AI
	
	reserves                = 25

	opposing_alliance	= 50	# For neutrals, all alliances are "opposing"
	claim_threat		= 0	# If we are neutral, countries with claims on us get this
	unstable_border		= 0	# Bordering countries at war with someone else get this


	# Borders with specific countries
	country_priorities = {
		CHI = -1
		MON = -1
		TAN = -1
		SIK = -1
		AFG = -1
		IRQ = -1
		ENG = -1
		PER = -1
		TUR = -1
		FIN = 50
		ROM = 75
		GER = 85
		ITA = 85
		JAP = 10
		MAN = 10
		SWE = -1
		NOR = -1
		HUN = 85
		SLO = 75
		BUL = 50
	}
	province_priorities = {
		187  = 40 # Leningrad
		238  = 30 # Kiev
		235  = 20 # Dnepropetrovsk
		163  = 40 # Stalingrad
		248  = 20 # Kharkov
		277  = 20 # Bryansk
		1372 = 20 # Vladivostock
		133  = 30 # Murmansk
		253  = 50 # Sevastopool
		219  = 20 # Smolensk
		
		# 2nd echelon GER-SOV
		562 = 50 # Rowne
		502 = 50 # Tarnopol
		229 = 50 # Stanislawow
		507 = 30 # Slonim
		210 = 30 # Baranowicze
		211 = 40 # Lida
		208 = 30 # Wilno
		207 = 30 # Kaunas
		203 = 30 # Jekapils
		197 = 30 # Riga
		231 = 50 # Mogilev Podolski
		232 = 50 # Balta
		434 = 40 # Chisinev

		# 3rd echelon facing Army Group South
		227 = 50 # Zhitomir
		228 = 50 # Vinnitsa
		237 = 50 # Cherkassy
		236 = 50 # Krivoy Rog
		233 = 50 # Odessa
		234 = 50 # Kherson
	}
	area_multiplier = { }
}
 
Last edited:
Wow, I just checked out the thread. Nice work. I play the 36 campaign so I don't mess with the 39. I don't see any problem with the Sov building units in the 36 start, at least after some minor changes. by June 41 the Sov have 276 inf 39 moto and 25 armor.

I do like the 3 defensive line and I will try it out. Nice, I have done something like it but yours is better. :)

One other thing you might want to look at is tech research. I have rewritten just about all the ai files.

I have also written events for a Sov summer and winter campaigns. Offensive in winter, it works O.K. by 44 they are all Offensive.

I have a hard time taking down the Sov's. I may put out a mod. :)
 
I prefer 1939 starts, 1936 bores me as Germany, because all the unit spamming and IC whoring makes the game way too easy, not to mention that it feels pretty unrealistical. I have a special scenario for 1939, where 1st wave divisions are full '39 divisions with artillery, 2nd wave divisions (they came from reserve units) were '36 divisions with anti-tank, all 3rd wave divisions (Landwehr) were '18 divisions (yes, they were that poorly trained and equipped) with anit-aircraft and all 4th wave divisions were half-strength '39 divisions (they were just being built when Fall Weiß started). All four light divisions are LArm-I, all six armored divisions LArm-III, none brigaded. All aircraft with realistical models too. Meaning you start with a huge repair and upgrading pool. I have eight series of INF '39, 2 series of 5 ARM-3 and 1 series of MOT-1 being pre-built, so that I have the historical Wehrmacht at Barbarossa ready. Mind you all that is for DD/Arma, where I went back to until AoD is in better shape. I will translate it to AoD after I am satisfied with it.

In my first test game started Barbarossa at the historical time with the historical OOB (I'm having a blast with that). The SU had 253 infs and 24 fast units (including cavalry). The 3 defensive echelons work extremely well and the SU eagerly counterattacks (I've upped its recklessness from 0 to 1). It's September 1st now and I don't even have reached the Dnepr river everywhere (I have Kiev though, but was kicked out of Priluki). In the north, I was just kicked out of Riga in a huge counterattack. My front units are chronically out of org, that includes the four panzer groups. Having reserves is essential. I'll see how the game continues, but I can already say, that there's no chance that I'm reaching Moscow 1941. The Wehrmacht has gotten an event with the start of Barbarossa, where in bad weather (frozen, snow, rain, storm, mud etc) they get a medium penalty for defense and a big one for offense, so in the winter I'm likely to be pushed back. In an unmodded DD/Arma game with fast combat I'm usually a few weeks off Bitter Peace at this time. In this game it's well possible, that I lose.

I too have modified tech research. I cut off needless for the SU things like naval techs, and gave them blueprints for industrial techs, armor and land doctrines. They're at least as up-to date as Germany. Oh, and I upped defense and toughness to get slower combat.
 
Last edited:
I play the 36 campaign so I don't mess with the 39. I don't see any problem with the Sov building units in the 36 start, at least after some minor changes. by June 41 the Sov have 276 inf 39 moto and 25 armor.

The original 1939 scenario is very poorly balanced. The SU starts with 15 dissent and a build queue clogged up with tanks, going far beyond their capacity, so that they can't build infantry until the second half of 1940. I cleaned their build queue, deprieved them of MP and as compensation was trickling in bonus divisions (1 per 2 weeks if in need, 1 per week if in dire need). I left the militia in its native build priority, because that's not bad at all, a mix of ~75% infantry and 25% militia is actually very efficient.

I'm currently in the process of balancing it.
 
I just got back from vacation. I'm glad to see this thread didn't die. I've got some catching up to do.

I didn't think there was a problem with the serial builds. I was getting INF builds of 18-20 and ARM of 12.

Sir Ralph could you post the AI flag events you created to keep the off map resources from going negative? I didn't even think they could go negative.
 
I can't post it as I discarded it long ago, but I can tell you the principle. There are three flags, which are set according to the land_percentage compared to several countries. Here's their range for a human played Germany:

SOVBuildStandard: land_percentage greater 3.0
SOVBuildLand: land_percentage between 1.5 and 3.0
SOVBuildLandPanic: land_percentage less than 1.5 (the 1.5 is your value, the original is 0.9)

There's a fourth one, SOVUpgrading, which I didn't take in account yet.

None of these flags is set originally, but one of them (and only one!) must always be set. So in the beginning of each scenario one of these events is firing and sets one of these flags. In the case of my test, this was the event enabling the SOVBuildLand flag and disabling SOVBuildLandPanic, i.e. the event taking the bonus stuff away.

Therefor it is bad to put the boni directly in these events. It's much better to leave them alone (except a tweaking of the panic threshold from 0.9 to something between 1 and 2) and write 2 new events monitoring these flags and using their own to remember if the bonus is active or not. Something like this:

Code:
event = {
	id = 1234000
	random = no
	country = SOV
	persistent = yes

	trigger = {
		ai = yes
		ai = GER # You want an all-AI eastern front, right?
		NOT = { local_flag = SOVBonusIC } # that's our new flag
		local_flag = SOVBuildPanic
	}

	name = "AI_EVENT"
	style = 0

	date = { day = 0 month = january year = 1936 }
	offset = 1
	deathdate = { day = 29 month = december year = 1963 }

	action_a = {
		command = { ... } # give them your bonus stuff: IC, resources, MP etc.
		command = { type = local_setflag which = SOVBonusIC }
	}
}

event = {
	id = 1234001
	random = no
	country = SOV
	persistent = yes

	trigger = {
		ai = yes
		ai = GER # You want an all-AI eastern front, right?
		local_flag = SOVBonusIC # that's our new flag
		NOT = { local_flag = SOVBuildPanic }
	}

	name = "AI_EVENT"
	style = 0

	date = { day = 0 month = january year = 1936 }
	offset = 1
	deathdate = { day = 29 month = december year = 1963 }

	action_a = {
		command = { ... } # take away your bonus stuff: IC, resources, MP etc.
		command = { type = local_clrflag which = SOVBonusIC }
	}
}
 
Last edited:
Which campaign are you testing with, by the way? Still 1941 GC?

We're doing different things, you are making an "all AI eastern front" a bit less one-sided, I'm trying to get the AI SU in shape against a human Germany in a modified 1939 GC for a greater challenge.

I played the game above to mid-1942 and finally was convinced, that I overdid my boni a bit. The SU was too strong. While I was able to get to the Daugava/Dnjepr line in 1941 (which was hard work), survived smoehow to April with minimal losses, with the onset of the mud I was hopelessly pushed back (I have a self-inflicted mud penalty, mind you). For 10-12 of my divisions there were ~15-20 in the opposing province, and since I force-fed them with good doctrines, they had a clear advantage. I have to tone down a tad bit.

First, I set the panic threshold back from 1.5 to 1.2 (0.9 being the original). Second, I toned down the boni at peace to about 70% of what they're now. Third, during war time I give more boni, so perhaps in the next test I'm getting farther in 1941, but not to Moscow.

By the way, I'm leaving Germany with only 300 MP from start as well, so a monster buildup is not possible in this scenario. I'm granting Germany a 0.2 free MP per day from Barbarossa to BP or 1945, whatever comes earlier. That should make up for some of the losses in a years long frontal standstill.
 
Last edited:
Sir Ralph could you post the AI flag events you created to keep the off map resources from going negative? I didn't even think they could go negative.

Of course they can get negative. In my scenario, I let Germany pay for the event-given historical Kriegsmarine and historical garrisons (Oberfeldkommandantur) in negative supplies. At the beginning of the scenario, they get 2 events netting them -102 supplies per day. This is quite a dent in the IC situation, I tell you! ;) They are gradually lifted when the bonus stuff is paid for.
 
My pet project is a SP US 1941GC that plays the way I think the US ought to play. I've had one for every version of the game going back to HOI2 1.0. So far, the Armageddon versions are the best. The invasion crazy AI worked really well for me. I've got the Japanese doing the Pacific Blitz in 6 months, and seriously invading Australia in 8 or 9. I've had The Japanese invade Australia 3 times in the same game, with some invasions going to 40-50 divisions.
 
First, I set the panic threshold back from 1.5 to 1.2 (0.9 being the original). Second, I toned down the boni at peace to about 70% of what they're now. Third, during war time I give more boni, so perhaps in the next test I'm getting farther in 1941, but not to Moscow.

By the way, I'm leaving Germany with only 300 MP from start as well, so a monster buildup is not possible in this scenario. I'm granting Germany a 0.2 free MP per day from Barbarossa to BP or 1945, whatever comes earlier. That should make up for some of the losses in a years long frontal standstill.

These changes (especially the panic threshold toning down) appear to be well balanced. On the next test (playing goes slowly) I'm optimistic to reach the Daugava/Dnepr line somewhere in September (it's August right now), but there is no way in hell I can reach Moscow in 1941. I probably come to a standstill somewhere between Smolensk and Moscow.

Note, that I'm playing with a near-historical setup (I have 3 "check points" - Fall Weiß, Fall Gelb and Barbarossa). If I would powerplay, I wouldn't have the problems I'm experiencing now. But I try to prevent powerplaying by cutting down German MP and draining IC by inflicting negative off-map supply flow, for which Germany gets some neat fluff (historical Kriegsmarine, garrison divisions in the historical places), which doesn't help at all but is, well, historical. I thought that's better than taking away IC with no return.

With the changed panic threshold, the SU had 23 less infantry divisions, but 7 more armored divisions (panic mode is very infantry-centric while land build mode is not) and a crapload of planes. Their build queue has 12 long series of infantry (about 3/4 of which are brigaded), 4 series of armor (model 1941) and 6 series of planes, mostly interceptors and CAS. The SU was in land build mode until Barbarossa, while it had been in full panic on my earlier game. Now, after the invasion, they're in panic mode, which gives them an average of 1 bonus division per week (1 per 2 weeks in land mode).

The AI acts pretty well tactically. It leaves gaps in the front (I bet not willingly, but it happens quite often), but if I dare to exploit them, they hit hard with huge stacks in the flanks, so unless I have a similar stack of healthy infantry ready to cover the province, my advancing armor would be lost for certain. The troop deployment in 3 echelons helps loads, the AI has no problems to assemble comfortable stacks even 2 provinces behind the front. Mind you, all this is DD/Arma, the AOD AI has been changed, whether for the better or worse I do not yet know.

My last notable operation was to advance over the Daugava into a seemingly empty province Riga with 7 divisions with ~80% org, just to suffer a pretty brutal counterattack of a stack of 18, which only had half of my org (the divisions I had pushed out of Riga were among them along with some reinforcements), but still won pretty quick (despite having slow combat with high defense and toughness). That's pretty much how I imagine the eastern campaign to go.

I won't be able to post more test results for a while, since I plan a trip to Russia myself in about a week. This time as peaceful tourist. And after I return, I bet Civ V will be occupying my time. When I'll play HoI2 again, I do not know.