I read upthread that one could ensure that events (and specifically "quests") are applied to any given game by modifying the <iPercentGamesActive> value.
Some deeper questions...
Was this implemented strictly for aesthetics purposes (i.e., so the player doesn't get peppered with quests) or for more utilitarian reasons? Since events require triggers - I assume the engine does a condition check every turn... If I change all quests to <iPercentGamesActive>100 -- am I dooming myself to a slow-running game?
Based on what I've read - it would seem by changing iPercentGamesActive - then ALSO jacking up iWeight, I can increase the probability and frequency of events... but I don't want to turn the game into a crawl. I do understand that unless I likewise modify the conditions and AI vs. Human settings - the chance still exists I'll either blow by the quest before it can fire, or, it might go to the AI. I have no problem with that -- but I play more as a builder - I beeline for wonders and while I certainly like to mix it up via war, I've never had a problem with the AI starting them for me ;-). The quests add some nice flavor towards my infrastructure style play -- some of them are also nice for "forcing" me into building a military, which is actually a blessing in disguise.
However - I'm concerned that the active game limitations were implemented to reduce the "turn footprint".
Anyone have any insight?
Hello, I was curious about this too, I searched the dll source code and found the part that generates events is around line 18454 in CvPlayer.cpp, it looks like it creates a list of possible events every turn, then rolls a die to see if and an event will happen and then constructs and paired list of all the the events and their weights. It then chooses one of these from list with probability equal to its weight / total weights.
This codes seems really inefficient, (as in it goes through all of the event data every turn even the inactive ones partially, even if there are no differences from the previous turn), but it is very flexible and easy to add on to (and less prone to bugs).
Anyways to answer your question:
Anyways it looks like including more events in the checking would add to some CPU time but it is pretty much checking almost all the data every turn anyways so I doubt it would make a big difference unless you added something like a thousand new quests.
Important points I discovered:
The formula for determining whether any event will occur (after the first 20 turns) is the iEventChancePerTurn (from the erainfo xml) divided by EVENT_PROBABILITY_ROLL_SIDES (from gamedefine xml). Defaults are
ancient: 1/100
classical: 1/50
medieval: 1/25
renaissance: 1/25
industrial: ~1/17
modern: ~1/12
future: 1/10
from Solvers Guide: if you set iWeight to -1 the event will always occur as soon as its criteria are met
Also from solvers guide: If you set the building or unit weight multiplier (none of the normal events have this) the weight for the event is multiplied by the number of relevant units/buildings. I think I will mod my quest to have this, so if I already have three libraries I am three times as likely to get the build x libraries quest.
@ original poster - if you play until the modern ages you almost always get one the corporation quests (there are two - 80% chance of being in your game, and events occurs roughly every 12 turns in the modern era)
@ButSam - Are you sure the an whether an event is active or not is checked every turn?? It seems like in the source code is only at the beginning of the game (and also according to Kael's guide). Please don't spread lies and misinformation.