Is there some sort of online Civilopedia where we can see all the civ/leader combinations? Or do i have to install the mod to check ingame?Since I started this thread 2½ years ago, my way of playing this game with its [BtS] expansion - and as time has passed new releases of the RealismInvictus mod on top of this - has changed quite a bit.
Therefore I think it's time to write, what direction my own varity of this has gone.
First of all. I'm doing my best to make my games realistic. Not geographical or historical - but still something, that "smells" in that direction.
Therefore: Water sustains all (life).
With no or very limited access to water, then life is not existing or is very challenged.
As you can see below, plains gives no food unless it have access to fresh water (rivers or lakes size 9 or lower). Even grassland gives only 1 food if covered with jungle - even with access to fresh water. However bonus still gives what (I think) a bonus should, nomatter where it is placed.
View attachment 643275
More is, that the nature can change rapidly, because some features (forrest, jungle, savanna and scrub) spreads very fast on "my" worlds. I did learn much myself about how do this by trying it (again and again) but at last found the "main-key" to understand the concept in an old thread here: https://forums.civfanatics.com/threads/forest-growth-and-the-roads.295749/ . But features can also disappear again(!).
Natural disasters (events) are now really destructive. Fx will a forrestfire (or a savanna- or scrubfire) most often destoy the feature. Eventually routes and improvements are most often also destroyed by the fire. Minecollapses destroy the mine and the route - and often reduce the pop in the nearby city with 1 or 2. It's not possible anymore to use gold to avoid a disaster. I'm not finish with this sub-project yet, so more will be added over time. You can find some screenshots/info here in the RI-forum: https://forums.civfanatics.com/threads/realism-invictus.411799/page-436
When I start a new game, I do consider what era I want the game to end in. How do I do that?
Well I'm using Excel to calculate how "fast" the time should pass, so I'm changing a little in the CIV4GameSpeedInfo.xml file, section <GameTurnInfo>, values of <iMonthIncrement> and <iTurnsPerIncrement>) so it "fits" to my taste.
Second I'm changing in the py-coding, Walter H added to the CvEventManager.py, that control a tech-penalty preventing nations (both the human and the AI-nations) for getting too far ahead of the other.
You can see the actual sections for my current game below. The game is set to end latest in year 1810 and have most focus on the medival and reneaissance eras.
Era 0 is ancient, era 1 is classical, era 2 is medieval, era 3 is renaissance, era 4 is industrial, era 5 is modern. There is no era 6 (future time). The value of TechInfo.setAheadOfTime is in %, so 300 make it take 3 times longer than it normally would take.
Spoiler :
Turn number and speed:
<GameSpeedInfo>
<Type>GAMESPEED_EPIC</Type>
<Description>TXT_KEY_GAMESPEED_EPIC</Description>
......
<GameTurnInfos>
<GameTurnInfo>
<iMonthIncrement>120</iMonthIncrement>
<iTurnsPerIncrement>200</iTurnsPerIncrement>
</GameTurnInfo>
<GameTurnInfo>
<iMonthIncrement>60</iMonthIncrement>
<iTurnsPerIncrement>250</iTurnsPerIncrement>
</GameTurnInfo>
<GameTurnInfo>
<iMonthIncrement>48</iMonthIncrement>
<iTurnsPerIncrement>150</iTurnsPerIncrement>
</GameTurnInfo>
<GameTurnInfo>
<iMonthIncrement>36</iMonthIncrement>
<iTurnsPerIncrement>150</iTurnsPerIncrement>
</GameTurnInfo>
<GameTurnInfo>
<iMonthIncrement>24</iMonthIncrement>
<iTurnsPerIncrement>260</iTurnsPerIncrement>
</GameTurnInfo>
<GameTurnInfo>
<iMonthIncrement>12</iMonthIncrement>
<iTurnsPerIncrement>545</iTurnsPerIncrement>
</GameTurnInfo>
<GameTurnInfo>
<iMonthIncrement>6</iMonthIncrement>
<iTurnsPerIncrement>520</iTurnsPerIncrement>
</GameTurnInfo>
<GameTurnInfo>
<iMonthIncrement>3</iMonthIncrement>
<iTurnsPerIncrement>520</iTurnsPerIncrement>
</GameTurnInfo>
<GameTurnInfo>
<iMonthIncrement>1</iMonthIncrement>
<iTurnsPerIncrement>660</iTurnsPerIncrement>
</GameTurnInfo>
</GameTurnInfos>
Tech-penalty:
CyGame().setAheadOfTimeEra(0)
if (gc.getGame().getGameTurnYear() < -2000):
for iTech in xrange(gc.getNumTechInfos()):
TechInfo = gc.getTechInfo(iTech)
if TechInfo.getEra() == 1:
TechInfo.setAheadOfTime(300)
elif TechInfo.getEra() == 2:
TechInfo.setAheadOfTime(400)
elif TechInfo.getEra() == 3:
TechInfo.setAheadOfTime(400)
elif TechInfo.getEra() == 4:
TechInfo.setAheadOfTime(800)
elif TechInfo.getEra() == 5:
TechInfo.setAheadOfTime(800)
if (gc.getGame().getGameTurnYear() > -2001):
CyGame().setAheadOfTimeEra(1)
for iTech in xrange(gc.getNumTechInfos()):
TechInfo = gc.getTechInfo(iTech)
if TechInfo.getEra() == 1:
TechInfo.setAheadOfTime(250)
elif TechInfo.getEra() == 2:
TechInfo.setAheadOfTime(600)
elif TechInfo.getEra() == 3:
TechInfo.setAheadOfTime(600)
elif TechInfo.getEra() == 4:
TechInfo.setAheadOfTime(800)
elif TechInfo.getEra() == 5:
TechInfo.setAheadOfTime(800)
if (gc.getGame().getGameTurnYear() > -1101):
CyGame().setAheadOfTimeEra(2)
for iTech in xrange(gc.getNumTechInfos()):
TechInfo = gc.getTechInfo(iTech)
if TechInfo.getEra() == 1:
TechInfo.setAheadOfTime(200)
elif TechInfo.getEra() == 2:
TechInfo.setAheadOfTime(600)
elif TechInfo.getEra() == 3:
TechInfo.setAheadOfTime(600)
elif TechInfo.getEra() == 4:
TechInfo.setAheadOfTime(800)
elif TechInfo.getEra() == 5:
TechInfo.setAheadOfTime(800)
if (gc.getGame().getGameTurnYear() > 0):
CyGame().setAheadOfTimeEra(3)
for iTech in xrange(gc.getNumTechInfos()):
TechInfo = gc.getTechInfo(iTech)
if TechInfo.getEra() == 1:
TechInfo.setAheadOfTime(100)
elif TechInfo.getEra() == 2:
TechInfo.setAheadOfTime(500)
elif TechInfo.getEra() == 3:
TechInfo.setAheadOfTime(600)
elif TechInfo.getEra() == 4:
TechInfo.setAheadOfTime(800)
elif TechInfo.getEra() == 5:
TechInfo.setAheadOfTime(800)
if (gc.getGame().getGameTurnYear() > 400):
CyGame().setAheadOfTimeEra(4)
for iTech in xrange(gc.getNumTechInfos()):
TechInfo = gc.getTechInfo(iTech)
if TechInfo.getEra() == 1:
TechInfo.setAheadOfTime(0)
elif TechInfo.getEra() == 2:
TechInfo.setAheadOfTime(400)
elif TechInfo.getEra() == 3:
TechInfo.setAheadOfTime(600)
elif TechInfo.getEra() == 4:
TechInfo.setAheadOfTime(800)
elif TechInfo.getEra() == 5:
TechInfo.setAheadOfTime(800)
if (gc.getGame().getGameTurnYear() > 600):
CyGame().setAheadOfTimeEra(5)
for iTech in xrange(gc.getNumTechInfos()):
TechInfo = gc.getTechInfo(iTech)
if TechInfo.getEra() == 1:
TechInfo.setAheadOfTime(0)
elif TechInfo.getEra() == 2:
TechInfo.setAheadOfTime(200)
elif TechInfo.getEra() == 3:
TechInfo.setAheadOfTime(500)
elif TechInfo.getEra() == 4:
TechInfo.setAheadOfTime(800)
elif TechInfo.getEra() == 5:
TechInfo.setAheadOfTime(800)
if (gc.getGame().getGameTurnYear() > 1000):
CyGame().setAheadOfTimeEra(6)
for iTech in xrange(gc.getNumTechInfos()):
TechInfo = gc.getTechInfo(iTech)
if TechInfo.getEra() == 1:
TechInfo.setAheadOfTime(0)
elif TechInfo.getEra() == 2:
TechInfo.setAheadOfTime(100)
elif TechInfo.getEra() == 3:
TechInfo.setAheadOfTime(500)
elif TechInfo.getEra() == 4:
TechInfo.setAheadOfTime(800)
elif TechInfo.getEra() == 5:
TechInfo.setAheadOfTime(800)
if (gc.getGame().getGameTurnYear() > 1400):
CyGame().setAheadOfTimeEra(7)
for iTech in xrange(gc.getNumTechInfos()):
TechInfo = gc.getTechInfo(iTech)
if TechInfo.getEra() == 1:
TechInfo.setAheadOfTime(0)
elif TechInfo.getEra() == 2:
TechInfo.setAheadOfTime(0)
elif TechInfo.getEra() == 3:
TechInfo.setAheadOfTime(500)
elif TechInfo.getEra() == 4:
TechInfo.setAheadOfTime(800)
elif TechInfo.getEra() == 5:
TechInfo.setAheadOfTime(800)
if (gc.getGame().getGameTurnYear() > 1500):
CyGame().setAheadOfTimeEra(8)
for iTech in xrange(gc.getNumTechInfos()):
TechInfo = gc.getTechInfo(iTech)
if TechInfo.getEra() == 1:
TechInfo.setAheadOfTime(0)
elif TechInfo.getEra() == 2:
TechInfo.setAheadOfTime(0)
elif TechInfo.getEra() == 3:
TechInfo.setAheadOfTime(350)
elif TechInfo.getEra() == 4:
TechInfo.setAheadOfTime(800)
elif TechInfo.getEra() == 5:
TechInfo.setAheadOfTime(800)
if (gc.getGame().getGameTurnYear() > 1600):
CyGame().setAheadOfTimeEra(9)
for iTech in xrange(gc.getNumTechInfos()):
TechInfo = gc.getTechInfo(iTech)
if TechInfo.getEra() == 1:
TechInfo.setAheadOfTime(0)
elif TechInfo.getEra() == 2:
TechInfo.setAheadOfTime(0)
elif TechInfo.getEra() == 3:
TechInfo.setAheadOfTime(200)
elif TechInfo.getEra() == 4:
TechInfo.setAheadOfTime(800)
elif TechInfo.getEra() == 5:
TechInfo.setAheadOfTime(800)
if (gc.getGame().getGameTurnYear() > 1700):
CyGame().setAheadOfTimeEra(10)
for iTech in xrange(gc.getNumTechInfos()):
TechInfo = gc.getTechInfo(iTech)
if TechInfo.getEra() == 1:
TechInfo.setAheadOfTime(0)
elif TechInfo.getEra() == 2:
TechInfo.setAheadOfTime(0)
elif TechInfo.getEra() == 3:
TechInfo.setAheadOfTime(100)
elif TechInfo.getEra() == 4:
TechInfo.setAheadOfTime(800)
elif TechInfo.getEra() == 5:
TechInfo.setAheadOfTime(800)
According to that era, I choose what nations I would like to have in the game and who should lead them. As I wrote, the setup is neither geographically nor historically correct, but I still have some preferences.
If I play with nations from many part of the world and with big oceans, I choose a round x-wrapped map. If I play with nations from one or a few continents, I choose a flat map.
The nations are chosen among those, who normally would be present during the time period(s) on which I have the most focus. All nations are placed on the playing map relatively close to their real position on todays (or yesterdays) world, so England always will be close to US/Scotland/Scandinavia/Celts/Nederland/France and/or Spain when the game start.
Leaders are - if possible - choosen from the eras/centuries, where I have my "focus" for a specific game. Due to that I (often) have to choose the gameoption "Unrestricted Leaders" to find a suitable one for each nation. In my current game, I think I have done so quite well as all leaders lived and ruled a nation somewhere between year 900-950 and year 1300/1350. Not all did rule the nation I "gave" them, but then they ruled a nation/region/stronghold/castle nearby.
I only had to "grap" the leader of Finland "out of the blue", because Finland only "comes" with one leader (Carl Mannerheim) and I didn't like to use a WW2-leader here. When I'm finish with this post, I'll "present" some of the leaders for you.
.
To be cont. tomorrow