Current Version 2.0, posted on 2021-06-27.
Goals and guidelines
Also a little bit about my modding philosophy.
Civ is a complex game, with many subsystems interacting with each other. It is not possible to make them all perfect and ideal, especially with constraints that come from the business side (money, money, money...)
Having said that, I think that devs did a really good job making all this working together and opening most of the system for modding. Modding gives endless possibilites, however my goal is to make Civ a better game, not a different game. I think that this can be achieved by fixing errors, tweaking things, and fully utilizing the features of the game.
And this is the goal and guidelines of this mod - to make AI better by fixing / tweaking / enhancing, not by throwing it away and re-programming everything.
Victory strategies and conditions
This is actually the story of how the mod has started.
There are 4 victory strategies as of now in the vanilla game. Please note that GS added Diplomatic Victory but there is no strategy created to support that. RST however adds a strategy for Diplomatic Victory. They are activated when 2-3 conditions are met. These conditions are very simple e.g. is there war, do we have a good science / culture / faith city, do we have a religion, are we in top 33% of techs or military power, did we acquire a great writer, etc.
These conditions are so simple that victory strategies are enabled, disabled, changed, multiple ones are active, etc. Only in the late game, once the civ is really close to a victory, it kind of locks-away others and focused on one strategy. There is nothing that even remotely resembles some background thinking or determination in pursuing a goal.
And I think that for the AI to actually have a chance to win, it must focus exclusively on one goal and pursue it as much as possible.
The mod uses an amazingly powerful mechanism that allows to call a Lua function as one of the strategy conditions. This allows for implementation of virtually anything to make AI better in making decisions about strategy and behavior in the game.
Implemented algorithm
Active Strategy is decided based on a scoring that evaluates the current situation. Initial ideas for this algorithm were taken from Civ5 engine enhanced by Vox Populi, however I had to re-think many of them and adjust to a) Civ6 realities b) no-cheating policy (use only information that is available to the human playe).
There are tens of parameters available to tune this process (file RealStrategy_Params.sql).
Flavors
The key element of the process are flavors (numbers ranging 1..9). They are assigned to Leaders and show their predispositions for various victory types. In order for this to work they must ofc correspond with the overall civ and leader design, their uniques, etc.
The other groups of flavors are assigned to various items that the civ can acquire during the game: Policies, Wonders, Governments, Great People, Beliefs and City States (acquired = being a suzerain). The idea here is to evaluate how the civ is prepared to pursue a specific victory type.
Process
Enhanced leaders
Going through the original programming of the Leaders, I found out that most of them use just the basic systems available in the game. Like, really basic. Favored Wonders and Favored Techs / Civics which usually are just the ones that hold their uniques or wonders. Sometimes DiploActions, very few use PseudoYields.
There are ofc exceptions, especially for civs added in DLCs and R&F. More systems are used, but still - imho - there is a HUGE area for improvement here.
RST enhances each leader accordingly, in various ways. It all depends on the leader and how well (or bad) it was already programmed.
Each leader has been reviewed and enhanced accordingly to its design. By design I mean all the uniques and features that a civ & leader possess, giving it an advantage to pursue specific victories.
There are too many leaders, so I would like just to point out some guidelines.
- Virtually all parameters from vanilla game are still there. I usually added bit more specific ones, trying to make each civ/leader as unique as possible.
- The changes are designed to enhance the civ/leader design. Example. Alexander has a boost for siege units because his unique ability triggers when he conqueres a city. Monty has boost to look for luxuries and settle more aggressively to get them. Etc.
Goals and guidelines
Also a little bit about my modding philosophy.
Civ is a complex game, with many subsystems interacting with each other. It is not possible to make them all perfect and ideal, especially with constraints that come from the business side (money, money, money...)
Having said that, I think that devs did a really good job making all this working together and opening most of the system for modding. Modding gives endless possibilites, however my goal is to make Civ a better game, not a different game. I think that this can be achieved by fixing errors, tweaking things, and fully utilizing the features of the game.
And this is the goal and guidelines of this mod - to make AI better by fixing / tweaking / enhancing, not by throwing it away and re-programming everything.
Victory strategies and conditions
This is actually the story of how the mod has started.
There are 4 victory strategies as of now in the vanilla game. Please note that GS added Diplomatic Victory but there is no strategy created to support that. RST however adds a strategy for Diplomatic Victory. They are activated when 2-3 conditions are met. These conditions are very simple e.g. is there war, do we have a good science / culture / faith city, do we have a religion, are we in top 33% of techs or military power, did we acquire a great writer, etc.
These conditions are so simple that victory strategies are enabled, disabled, changed, multiple ones are active, etc. Only in the late game, once the civ is really close to a victory, it kind of locks-away others and focused on one strategy. There is nothing that even remotely resembles some background thinking or determination in pursuing a goal.
And I think that for the AI to actually have a chance to win, it must focus exclusively on one goal and pursue it as much as possible.
The mod uses an amazingly powerful mechanism that allows to call a Lua function as one of the strategy conditions. This allows for implementation of virtually anything to make AI better in making decisions about strategy and behavior in the game.
Implemented algorithm
Active Strategy is decided based on a scoring that evaluates the current situation. Initial ideas for this algorithm were taken from Civ5 engine enhanced by Vox Populi, however I had to re-think many of them and adjust to a) Civ6 realities b) no-cheating policy (use only information that is available to the human playe).
There are tens of parameters available to tune this process (file RealStrategy_Params.sql).
Flavors
The key element of the process are flavors (numbers ranging 1..9). They are assigned to Leaders and show their predispositions for various victory types. In order for this to work they must ofc correspond with the overall civ and leader design, their uniques, etc.
The other groups of flavors are assigned to various items that the civ can acquire during the game: Policies, Wonders, Governments, Great People, Beliefs and City States (acquired = being a suzerain). The idea here is to evaluate how the civ is prepared to pursue a specific victory type.
Process
- Base. Leader flavors are used to establish a base scoring. There is however a bit of randomization applied to flavors (-1..+1) allowing for the leaders to behave a small bit differently (we don't want the game to be boring).
- Specfic. Each victory is scored against the progress of the civ in specifc areas. Usually it is a comparison to ther civs (no cheating - only ones we've met), etc.
- If a specific victory type is disabled - the scoring is negative making sure that the civ will NOT pursue this strategy.
- CONQUEST - our military power, capitals taken, expansion factor, desperation factor, etc. This is actually the most complex algorithm.
- SCIENCE - comparison of science yield and number of techs acquired, progress of the Space Race projects.
- CULTURE - comparison of culture yield, evaluation of the cultural progress (expotential formula)
- RELIGION - comparison of faith yield, evaluatonof the convertion progress (num of cities, expotential formula), civs converted, inquistions launched.
- DIPLO - number of diplo points and amount of favor gathered.
- If a specific victory type is disabled - the scoring is negative making sure that the civ will NOT pursue this strategy.
- Generic. All the acquired items (see flavors) are accounted here.
- Game progression. Specific & generic scoring becomes more important as the game progresses to make sure that the civ actually pursues the victory that it is good at.
- Bit of randomization but also current strategy is boosted, to avoid temporary mood-swings.
- Guessing. The civ tries to guess what others are doing and adjust accordingly our scoring.
- Algorithm for guessing is very similar as the main one, however only uses available info. So, in particular no leader flavor is used or what policies were taken, etc. It is more based on actual progress of the civ.
- We evaluate if the civ performs better than us. Algorithm here is very similar to the one used in the Victory Tracker window. Basically, 2 key params are compared.
- Important part. For each civ doing better than us, our scoring gets cut down by 25% (a parameter ofc.) It is a very important parameter because it allows for better dynamic during the game. As for now, if 1 civ is better than we are - we most likely still gonna go after that, for 2 better - well, we really need to be predisposed for that victory, if we are not - probably better pursue another strategy. If 3 are better, well a new strategy will be selected like in 99% cases.
- Algorithm for guessing is very similar as the main one, however only uses available info. So, in particular no leader flavor is used or what policies were taken, etc. It is more based on actual progress of the civ.
- The algorithm accounts for disabled victory conditions. The scoring is set to 0 in that case and the strategy will never be selected.
Enhanced leaders
Going through the original programming of the Leaders, I found out that most of them use just the basic systems available in the game. Like, really basic. Favored Wonders and Favored Techs / Civics which usually are just the ones that hold their uniques or wonders. Sometimes DiploActions, very few use PseudoYields.
There are ofc exceptions, especially for civs added in DLCs and R&F. More systems are used, but still - imho - there is a HUGE area for improvement here.
RST enhances each leader accordingly, in various ways. It all depends on the leader and how well (or bad) it was already programmed.
Each leader has been reviewed and enhanced accordingly to its design. By design I mean all the uniques and features that a civ & leader possess, giving it an advantage to pursue specific victories.
There are too many leaders, so I would like just to point out some guidelines.
- Virtually all parameters from vanilla game are still there. I usually added bit more specific ones, trying to make each civ/leader as unique as possible.
- The changes are designed to enhance the civ/leader design. Example. Alexander has a boost for siege units because his unique ability triggers when he conqueres a city. Monty has boost to look for luxuries and settle more aggressively to get them. Etc.
Last edited: