I'm currently working on trying to make the AI more aggressive attacking cities and need some help

chillbaka1

Chieftain
Joined
Nov 13, 2016
Messages
46
I'm not sure if anyone else has noticed, but once you reach the medieval/renaisance era, the AI will never take another city again. They wont take yours or another AI's, they just build massive armies and play games of chicken and "ooo i pillaged your farm" then stare at each other, then declare peace. The "survival of the fittest" part of civ V was my favorite part, watching the map evolve through the ages and I am determined to bring that back. I figured out part of the problem already but need a bit of help with the other parts.

Here's the part I already figured out: I think that the AI overly values self preservation. At first i thought it was trying to be cost efficient but then noticed that it basically uses builders, settlers, and all religious units as cannon fodder. Then i figured out the real problem. They are trying to minimize war weariness. So i went into GlobalParameters and changed all war weariness values to 0 and started a game. The AI is much much more aggressive and attacks my units much more often, but still never attacked my city once when it had 9 mechanized infantry surrounding it.

Here's what I cant figure out. There are four files that i've found in base>assets>gameplay>data>. GlobalParameters, BehaviorTrees, Operations, and Tactics. Ive done all i could in globalParameters and im having a hard time making sense of BehaviorTrees, but theres one that might fix everything. Heres the lines of code that i found in Operations.

<Row OperationName="Attack Enemy City" TargetType="TARGET_ENEMY_COMBAT_DISTRICT" OperationType="CITY_ASSAULT" BehaviorTree="Early City Assault" SelfStart="True" Priority="3" MaxTargetDistInRegion="-1" MaxTargetDistInArea="50" MaxTargetDistInWorld="0" MinOddsOfSuccess="0" />
<Row OperationName="Wartime Attack Enemy City" TargetType="TARGET_ENEMY_COMBAT_DISTRICT" OperationType="CITY_ASSAULT" BehaviorTree="Early City Assault" SelfStart="True" Priority="3" MaxTargetDistInRegion="-1" MaxTargetDistInArea="45" MaxTargetDistInWorld="-1" MinOddsOfSuccess="0" MustBeAtWar="true" />

<Row OperationName="Attack Walled City" TargetType="TARGET_ENEMY_COMBAT_DISTRICT" TargetParameter="1" OperationType="CITY_ASSAULT" BehaviorTree="Siege City Assault" SelfStart="True" Priority="3" MaxTargetDistInRegion="-1" MaxTargetDistInArea="30" MaxTargetDistInWorld="0" MinOddsOfSuccess="0" />

<Row OperationName="Wartime Attack Walled City" TargetType="TARGET_ENEMY_COMBAT_DISTRICT" TargetParameter="1" OperationType="CITY_ASSAULT" BehaviorTree="Siege City Assault" SelfStart="True" Priority="3" MaxTargetDistInRegion="-1" MaxTargetDistInArea="45" MaxTargetDistInWorld="-1" MinOddsOfSuccess="0" MustBeAtWar="true" />

I'm doing a bit of testing today to see if changing the MinOddsSuccess to 0 has any effect on their aggressiveness. There's one part of code that i am skeptical of changing and another that I can't figure out for the life of me and was wondering if you had any insight. Before (MinOddsSuccess = "0.25") there is a (priority = "3"). This is the part that I am a bit weary about. Do you think the "3" is a value that can simply just be changed like barbarian spawn distance, wonder placement ect. Or is it referencing a tree of behaviors? And the second part, also before MinOddsSuccess, is the (MaxTargetDistInArea = -1) and (MaxTargetDistInregion = -1). both of these make no sense to me. "Dist" could be district or distance, which both also make no sense. If they are districts, then the AI will never attack a city because the minimum districts would be zero. They would also never attack cities if the distance was -1 because you cant have negative distance. Sorry for the long post but i was just wondering if you had any input, thanks again for the help.

Just a quick disclaimer, I am not a seasoned modder, and this will be my first time. I would really like to get into it and I actually enjoy doing it, Id love to be apart of and contribute to the community. So if what i wrote here makes absolutely no sense, then i apologize.
 
Last edited:
Back
Top Bottom