Sid Meier's Civilization VI

Sid Meier's Civilization VI

More Strategy Core
FearSunn  [developer] 5 Mar, 2018 @ 2:31am
Short note on AI
Just to explain one more important thing with this mod.
Approach taken here is "decorational AI" or "obstacles AI" or however you call it. Main goal is to make this game challenging hence more rewarding for a human player!
Therefore I am not pretending here doing anything substantial to improve AI per se.
< >
Showing 1-10 of 10 comments
pauloel7 14 Aug, 2018 @ 6:43pm 
Yes; yet the mod copes well with AI+ and the like... so, am leaving a few notes for consideration:

1.About AdaptiveDifficulty.lua: ... not "is in ave of your Science! ... but "is in awe of your Science!"
pauloel7 14 Aug, 2018 @ 6:43pm 
2. About CountMilitaryUnits(pID) and "how to improve comment", it looks like this routine is reading from Units table: ..."GameInfo.Units". Maybe you could better evaluate military strength by working with additional variables, such as 'Combat' and 'RangedCombat'.
Conceivably, something that would integrate unit count and unit power would work better. Am not sure how to code that, though. Something like this?
local unitCombat = GameInfo.Units[ unitType ].Combat;
local unitRangedCombat = GameInfo.Units[ unitType ].RangedCombat;
hMilitary = Players[humanID]: GetUnits() * (unitCombat () + unitRangedCombat());

Also, it seems vanilla 'PSEUDOYIELD_STANDING_ARMY_VALUE' might be akin to 'pmilitary' or 'hmilitary'. However, couldn't find its definition and range - might be hardcoded. Another way to better represent relative military strength/power could be to use 'InitialStrengthAdvantage' or 'OngoingStrengthAdvantage' from 'AiOperationTeams' table.
Last edited by pauloel7; 14 Aug, 2018 @ 10:10pm
pauloel7 14 Aug, 2018 @ 6:44pm 
3. Also, regarding the function adjustFriends, in maps with lots of AIs (as opposed to a fixed 5), wouldn't it be nice to filter out the number of (declard) friends AI has? That way human friendship could have more weight, considering AI is seldom friendly amonst themselves? Would this work?
GameConfiguration.GetValue("AIFriends") ~= nil then AIFriends = GameConfiguration.GetValue("AIFriends");
local adjustFriends = (1/AIFriends)*humanFriends;

Does 'adjustFriends' influence in AI behaviour at all? Maybe make it work as an item into 'AILists' | 'AIFavoredItems', then roll it into 'StrategyPriorities' and/or as a modifier into 'Global Parameters'? If possible, to tie in your changes with how AI behaves would be really neat!
Last edited by pauloel7; 14 Aug, 2018 @ 6:46pm
pauloel7 14 Aug, 2018 @ 9:57pm 
In any case, about the unit spawning function, and its recurrent formula 'local militaryTreshold = [CTE] + adjustFriends;' where CTE ranges between 0.6 and 2, I have got a suggestion to share:
https://www.dropbox.com/s/3tcv37pxifbtvvb/More%20Strategy%20Unit%20Spawns.xlsx?dl=0
If I understood correctly how 'adjustFriends' and 'humanFriends' behave'. In the former formula ' local adjustFriends = (1/aiPlayers)*humanFriends' ;', to an aiPlayer I figured 'humanFriends' refers not only to the human player him/herself, but all civs in a particular game, but cannot be sure because cannot check the GameConfiguration database. If that assumption was incorrect, then, instead of 'adjustFriends' output range from 0 to 1 continuously, it would be either 0 or 1, correct? In any case that uncertainty on my part is contemplated under columns 'MINIMUM' and 'MAXIMUM' in the spreadsheet above linked. For the same reason I've based the constant (CTE) change proposal assuming 'adjustFriends' output to be either 0 to 1, but would like your confirmation on that, because I might go for the 'PROBABLE MAX' column to recalibrate.
pauloel7 14 Aug, 2018 @ 10:16pm 
Hope this goes along the lines of the discussion heading note. Seems to me it could improve this mod intended game rewardig fun, not in overhauling AI per se, but by tying a few more relevant implemented changes into AI behaviour. Again, thank you for sharing this mod!
pauloel7 14 Aug, 2018 @ 11:34pm 
4. About the really neat religous war mechanics, how about add the AI (creator) routine, with a lower 'tresholdForWar' consideration, say '0.10'? About the 'relationsHuman' conditional, you could add a subroutine that erodes 'DIPLO_STATE_ %' by one level provided A. the conversion occurred by a religion SPREAD (missionary or apostle), and B. That took place AFTER relevant PlayerID has complained about SPREADS. That should lead to PlayerID denouncing humanID, and upon the very next SPREAD-converted city, WAR. You could make it even more stringent, by making: B. very next SPREAD. An advantage of that mechanics is that it would naturally exclude religious conversion by (passive) pressure, which is fine, since it's peaceful and fair. As a matter of fact, the current routine 'convertedRatio = convertedCities/numberCities' does not seem to exclude religious conversion by (passive) pressure, which could lead to an unfair war declaration. Also, another improvement could be to allow for 'HOLY_WAR' without vanilla requirements in this case only. What do you think?
Last edited by pauloel7; 14 Aug, 2018 @ 11:49pm
pauloel7 15 Aug, 2018 @ 12:00am 
Does the function loadSavedData (re)set 'tresholdForWar = 0.25' at the end of each turn, superseeding 'mercenariesTable[civName].tresholdForWar = treshold; --sets treshold for future.'?
pauloel7 15 Aug, 2018 @ 12:13am 
Considering your observation - "--EXCLUDING PRE-RELIGION WAR non-religious wars! FOR if human has had war with AI (creator), "consideration treshold" might be TOO low!" - it seems 'tresholdForWar' shoudl be higher at some instances... which I cannot seem to fanthom. Can you please explain?
pauloel7 15 Aug, 2018 @ 12:18am 
What's 'religionBonus >= 3'?
pauloel7 15 Aug, 2018 @ 1:20am 
About the GLOBALIZATION part, could you please explain how the fFactor work agains diplomatic states? Seems to me they vary in the same direction, zero at 'allied'. That's make pCultureGlobal = 0 = pScienceGloba=pReligionGlobal, right? If so, then aiPlayer2 does not get no bonuses, and globalSharingAlert<0? I dod not get this part, nor the Bailout.
Sorry to bother you with these details, but although your mod is awesome and your desciption improved greatly, there's still ways to go to fully understand what it does or does not change vanilla.
< >
Showing 1-10 of 10 comments
Per page: 1530 50