• We created a new subforum for the Civ7 reviews, please check them here!

Balance Factors

@Thunderbrd @Dancing Hoskuld @JosEPh_II @Toffer90

I made calendar, that is tied to tech tree.
I went with two scenarios: All techs researched before going to next era and minium amount of techs researched before going to next era.
Resulting era lengths were averaged.

This means no round dates or steps.
But this also means if you maintain constant research speed (11+- 0.3 turns spent on 10 techs [Blitz] depending on your tech tree research tactic), then you should reach new eras close to checkpoints.
Only globals for Prehistoric and era infos for later eras should be readjusted.
Safety margin of 10% should cover majority of games.

That is reaching Ancient (Future) era in 90 - 110 (900 - 1100) turn of Blitz is acceptable.

By the way you don't need integer years (iMonth(Day)Increment*iTurnsPerIncrement doesn't have to be divisible by 12 (300(), and you can use day increment larger than 300 days.

Spoiler Calendar :

Civ4BeyondSword 2018-08-31 22-11-22-28.jpg



I uploaded excel file, where I did calculations.

Checkpoints (percentages are at point where era should end):
Prehistoric - 200 000 BC - Ends at 10.0% of game
Ancient - 6000 BC - 18.7%
Classical - 2000 BC - 25.1% (First quarter of game is in between of Classical and Medieval era)
Medieval - 600 AD - 31.1%
Renaissance - 1300 - 37,4%
Industrial - 1700 - 43.5%
Modern - 1900 - 54.7% (Middle of game is around half way of Modern era)
Information - 1990 - 62,9%
Nanotech - 2050 - 72,5%
Transhuman - 2150 - 81,5% (Third quarter of game is somewhere in Transhuman era)
Galactic - 2300 - 88.2%
Cosmic - 3000 - 93.5%
Transcedant - 4000 - 100%
Future - 6000

Edit: I added map, where nothing can happen, that is everything that can be disabled is disabled and whole map is orbit terrain except mountain and brute on top of it.
This map is perfect to check calendar integrity.
 

Attachments

Last edited:
This could be a good example of what could be done in a meta-program as suggested by HorseshoeHermit in another thread. If we can capture the base information and do the calculations via a set of formulae we could make life easier for the next times we do major changes. This is probably not a case where the result would go directly into the SVN as it may require some human intervention to polish it afterwards.
 
I reached Ancient era at 8.25% of game, it should be reached at 10.0% (9% - 11% is fine)
I was playing on Standard/Noble/Normal, TD didn't activate itself yet, no WFL, and I didn't trade or get any free techs.
Since I researched all Prehistoric techs, there will be additional increment to globals (units and buildings will get 90% of that increment so its easier for new cities to catch up).
10/8.25 = 1.21x.
1,103/1,076 = 1.025x (Averaged research speed by all techs researched speed)
Total increment for tech global: 24%, buildings/unit cost will be increased by 22%

Code:
<Define>
        <DefineName>UNIT_PRODUCTION_PERCENT</DefineName>
        <iDefineIntVal>70</iDefineIntVal>
    </Define>
    <Define>
        <DefineName>BUILDING_PRODUCTION_PERCENT</DefineName>
        <iDefineIntVal>70</iDefineIntVal>
    </Define>
    <Define>
        <DefineName>UNIT_PRODUCTION_PERCENT_SM</DefineName>
        <iDefineIntVal>50</iDefineIntVal>
    </Define>
    <Define>
        <DefineName>PROJECT_PRODUCTION_PERCENT</DefineName>
        <iDefineIntVal>50</iDefineIntVal>
    </Define>
    <Define>
        <DefineName>TECH_COST_MODIFIER</DefineName>
        <iDefineIntVal>400</iDefineIntVal>
    </Define>

will be
Code:
<Define>
        <DefineName>UNIT_PRODUCTION_PERCENT</DefineName>
        <iDefineIntVal>85</iDefineIntVal>
    </Define>
    <Define>
        <DefineName>BUILDING_PRODUCTION_PERCENT</DefineName>
        <iDefineIntVal>85</iDefineIntVal>
    </Define>
    <Define>
        <DefineName>UNIT_PRODUCTION_PERCENT_SM</DefineName>
        <iDefineIntVal>60</iDefineIntVal>
    </Define>
    <Define>
        <DefineName>PROJECT_PRODUCTION_PERCENT</DefineName>
        <iDefineIntVal>60</iDefineIntVal>
    </Define>
    <Define>
        <DefineName>TECH_COST_MODIFIER</DefineName>
        <iDefineIntVal>500</iDefineIntVal>
    </Define>
I rounded numbers to nearest number divisable by 5.

New tech to build cost modifier ratio: 5.88 for units and buildings and 8.33 for SM units and projects.

Now lets see where I land now.
I'm testing on generated map with default spawn infos.
Should I boost palace to speed up initial research?
Changes aren't committed yet.

I'll do another test, where I'll rush trough Prehistoric era, researching 81 techs instead of 100. (average would be 90 techs)

EDIT:
It seems like I arrived early at Ancient Era (7.5%).
100 techs - 100/90.5 * 10 = 11% - Right on upper margin - if all techs are researched.
90.5 techs - 10% (this is how I designed calendar)
81 techs - 81*90.5 * 10 = 8,95% - Tiny bit below bottom margin of 9% - if thing is rushed.

8.95/7.5 = 1.19.
This means globals have to be raised by 19%.

I researched all techs, but I scaled globals as if I researched only 90 - 91 techs on previous test.

Code:
<Define>
        <DefineName>UNIT_PRODUCTION_PERCENT</DefineName>
        <iDefineIntVal>100</iDefineIntVal>
    </Define>
    <Define>
        <DefineName>BUILDING_PRODUCTION_PERCENT</DefineName>
        <iDefineIntVal>100</iDefineIntVal>
    </Define>
    <Define>
        <DefineName>UNIT_PRODUCTION_PERCENT_SM</DefineName>
        <iDefineIntVal>70</iDefineIntVal>
    </Define>
    <Define>
        <DefineName>PROJECT_PRODUCTION_PERCENT</DefineName>
        <iDefineIntVal>70</iDefineIntVal>
    </Define>
    <Define>
        <DefineName>TECH_COST_MODIFIER</DefineName>
        <iDefineIntVal>600</iDefineIntVal>
    </Define>

Globals actually are lower by 1 unit than calculated, and tech cost is 600 instead of 595.

Tech to build cost ratio: 6 / 8.57 for units, buildings/ SM units and projects.

I ran test on Blitz.
If anything I should have less animal myths.....
Researched 90 techs, which is assumed amount for prehistoric era.

Still reached Ancient era at 8.4% of game instead of 10%.
Will increase globals by 10/8.4 = 19%.
....

It appears somehow those values never got saved and I was using old ones.....
 
Last edited:
Reached ancient era on 9.2% of game.
10/9.2 = 1,08.
I'll bump globals by 5% and then commit it.

Code:
<Define>
        <DefineName>UNIT_PRODUCTION_PERCENT</DefineName>
        <iDefineIntVal>105</iDefineIntVal>
    </Define>
    <Define>
        <DefineName>BUILDING_PRODUCTION_PERCENT</DefineName>
        <iDefineIntVal>105</iDefineIntVal>
    </Define>
    <Define>
        <DefineName>UNIT_PRODUCTION_PERCENT_SM</DefineName>
        <iDefineIntVal>75</iDefineIntVal>
    </Define>
    <Define>
        <DefineName>PROJECT_PRODUCTION_PERCENT</DefineName>
        <iDefineIntVal>75</iDefineIntVal>
    </Define>
    <Define>
        <DefineName>TECH_COST_MODIFIER</DefineName>
        <iDefineIntVal>630</iDefineIntVal>
    </Define>

Now you should reach sedentary lifestyle after 90 techs on 6000 BC if you play semicausally.
Unit/building cost was raised by 50% from original values.
SM Unit/Project costs were raised by 50%
Tech cost was raised by 57.5%

This means tech to build cost ratio was increased by 15% meaning more laid back game.

Updated file with calculations
 

Attachments

Last edited:
I did AI autorun on Blitz for 100 turns.
On Monarch 3 AIs reached Ancient era.
Lets see 110th turn - 4 AIs reached Ancient era, two more are researching sedentary lifestyle.
This means Monarch AI is kind of on level of causal/new player.

Lets compare Emperor AI.
3 AIs reached Ancient era on 100th turn and another one is researching ancient era.
I think developing traits with negative traits and without pure traits might have little too much impact.
I'll do same test without traits.
Or that I need to reset game before next test, but that would be weird bug.

Two AIs reached ancient era and third one is researching sedentary lifestyle on 100th turn.
I guess that is bit random - disabling traits didn't changed anything really.

Immortal, 100th turn on Blitz:
4 AIs reached Ancient era, no one build another city.
Is AI autoplay bit defective?

Deity, 100th turn on Blitz, manually moved turns.
All AIs reached Ancient era.
Doesn't Deity AI get extra settler?

....
I'm thinking about splitting Prehistoric into 80/20 for soft landing in Ancient era.
First 80% would be going from -200 000 to -10 000 and last 20% of Prehistoric era would be going from -10 000 to -6000 years.

Spoiler :

firefox 2018-09-03 00-00-48-37.jpg



On Blitz this means year increment would be 2375 years instead of 1940 years on first 80 turns.
On last 20 turns of Prehistoric era increment would be 200 years.
Ancient/Classic era increment is at 46/40 years.

To get out of Prehistoric era you need 81 techs at minimum and 100 techs at maximum.
You need research 58 techs to research Tribalism.
 

Attachments

Last edited:
We "Odd" players that use Blitz and Normal appreciate what you are doing raxxo.
 
I added checkpoint at 10 000 BC, 80% of Prehistoric era, length of era is unchanged.
This way calendar on first part of Prehistory will be slightly faster, but final 20% of prehistory will see much slower descent.

One or two slower speeds were hard to divide, and had to deviate few turns from 80% of prehistoric era.

Spoiler :

Civ4BeyondSword 2018-09-03 14-05-14-73.jpg

Civ4BeyondSword 2018-09-03 14-05-23-08.jpg
Civ4BeyondSword 2018-09-03 14-05-26-43.jpg



@Thunderbrd can now retract statement about Blitz players being little odd, as I boosted two days ago building/unit globals by 50% and tech cost by 57.5% effectively making game 57.5% longer, while giving more breath space for capital, as new cities are too useless to be useful on beginning. :mischief::crazyeye:

Early Prehistory, Late Prehistory and Ancient increment ratios are in 11.875 : 1 : 0.23 ratio, that is like 11.875 to 1 and 4.35 to 1.

Change to Prehistoric era is now in SVN.
 

Attachments

Last edited:
  • Like
Reactions: tmv
@Thunderbrd can now retract statement about Blitz players being little odd, as I boosted two days ago building/unit globals by 50% and tech cost by 57.5% effectively making game 57.5% longer, while giving more breath space for capital, as new cities are too useless to be useful on beginning.
It's still fast and intended only for some testing uses.

So I'm going to have to switch to a faster gamespeed again when I play huh?
 
Wow what a slap at Blitz players! :crazyeye::nono::rolleyes:
The only reason I asked for it to be reinvoked was for testing. If you play it, I don't take personal affront, nor should anyone who disagrees with me in that I don't think it's all that enjoyable as a game. Saying someone is odd is not a slap - it is purely to say that it would be very unusual for someone to find it enjoyable since it is purposefully not gauged for actual play.
 
@raxo2222 tested with auto-play on the large solar system scenario on Normal/Noble with TD and WFL and the one that doesn't apply handicaps to humans.

Order of who got to ancient first:
  1. Turn 191 - North America
  2. Turn 207 - Middle East
  3. Turn 208 - Asia
  4. Turn 209 - Europe
  5. Turn 216 - Oceania
  6. Turn 225 - Africa
  7. Turn 228 - South America (me)
For the 2nd place and beyond I wrote down the time the North American civ took to pick Subsistence Farming (11 turns), and subtracted that amount from the others once they'd pick it.

In terms of percentages in relation to total turn time they go from 9.55% to 11.4% (average of 10.6%), so I can attest that your changes have normalized the prehistoric era (at least for the AI) to what it is supposed to last.

Would you like me to go to classical?
 
Last edited:
It's still fast and intended only for some testing uses.

So I'm going to have to switch to a faster gamespeed again when I play huh?
Well little under tech/turn on small maps like doesn't sound too bad.
Is that more about relative unit movement speed in relation to research speed?

Speed multipliers are: 0.5x 1x, 2x, 3x, 4x, 6x, 8x 10x for Blitz, Normal, Long, Epic, Marathon, Snail, Eons, Eternity.
Well depends on difference between speed lengths
Normal - 2x longer than Blitz
Long - 2x longer than Normal
Epic - 50% longer than Long
Marathon - 33.3%/2x longer than Epic/Long
Snail - 50%/2X longer than Marathon/Epic
Eons - 33.3%/2x longer than Snail/Marathon
Eternity - 25%/66.6% longer than Eons/Snail.

So you can step down:
Eternity - Eons/Snail
Eons - Snail
Snail - Marathon
Marathon - Epic
Epic - Long
To partially counter increase in globals (Eternity -> Snail is slightly more than enough).
Stepping down from Long/Normal will result in faster game than it was before rebalance.

@raxo2222 tested with auto-play on the large solar system scenario on Normal/Noble with TD and WFL and the one that doesn't apply handicaps to humans.

Order of who got to ancient first:
  1. Turn 191 - North America
  2. Turn 207 - Middle East
  3. Turn 208 - Asia
  4. Turn 209 - Europe
  5. Turn 216 - Oceania
  6. Turn 225 - Africa
  7. Turn 228 - South America (me)
For the 2nd place and beyond I wrote down the time the North American civ took to pick Subsistence Farming (11 turns), and subtracted that amount from the others once they'd pick it.

In terms of percentages in relation to total turn time they go from 9.55% to 11.4% (average of 10.6%), so I can attest that your changes have normalized the prehistoric era (at least for the AI) to what it is supposed to last.

Would you like me to go to classical?
Noble AI is much slower than semi-causal player.
Handicap step below Emperor should be comparable with semi-causal player, that likes to build all buildings and dislikes beelining.
Then WFL would have to be disabled - I tested without it

.........
Is it possible to make game option, that would increase/decrease tech cost depending on date?

For example: cost of techs in Ancient and later eras would be doubled (or just increased by 1.5x) until date is 6000 BC or later.
Conversely if you are in Prehistoric era, and date is later than 6000 BC, then tech cost is halved (or just decreased 2/3x) for all techs in Prehistoric era.

Then new players would be speed up if they lag with eras, and pro players would be slowed down.
Similarly with AIs tech cost, so WFL, TD, tech trading/brokering couldn't push players too much.

While checkpoints don't cover exactly with those dates, it should be good enough of rebalancer.

Example: Date is in between 6000 BC and 2000 BC.
Players in Prehistoric era will have cheaper techs
Players in Classical and later eras will have more expensive techs
 
Last edited:
@raxo2222 emperor difficulty now, still normal speed. With auto-play:
  1. Turn 153 - North America
  2. Turn 169 - Oceania
  3. Turn 183 - Asia
  4. Turn 196 - Africa
  5. Turn 198 - Europe
  6. Turn 204 - Middle East
  7. Turn 221 - South America (me)
From 7.65% to 10.9%, (avg. 9.275%).
 
@raxo2222 emperor difficulty now, still normal speed. With auto-play:
  1. Turn 153 - North America
  2. Turn 169 - Oceania
  3. Turn 183 - Asia
  4. Turn 196 - Africa
  5. Turn 198 - Europe
  6. Turn 204 - Middle East
  7. Turn 221 - South America (me)
From 7.65% to 10.9%, (avg. 9.275%).
Are you using rescaled latitude limits?
By the way Emperor AI was bit faster than me.
So one handicap level lower should be good enough.

Without latitude/longitude limits there is higher diversity of animals.
How do you check if AI has reached Sedentary Lifestyle?
By looking at their cities if they got second education level (or ancient knowledge base)?
 
Are you using rescaled latitude limits?
By the way Emperor AI was bit faster than me.
So one handicap level lower should be good enough.

Monarch, right?
Without latitude/longitude limits there is higher diversity of animals.
How do you check if AI has reached Sedentary Lifestyle?
By looking at their cities if they got second education level (or ancient knowledge base)?

Using the rescaled latidudes for the large solar system.

Go into worldbuilder and see the model of their cities, if it's buildings with brown ground then they are in ancient.

EDIT: I'll go for a proper run now on normal/immortal difficulty. I'm interested how skewed it goes if a human is playing.
 
Last edited:
Monarch, right?
Yes

Go into worldbuilder and see the model of their cities, if it's buildings with brown ground then they are in ancient.
You can enable cheats and press ctrl+z to see whole map too.

EDIT: I'll go for a proper run now on normal/immortal difficulty. I'm interested how skewed it goes if a human is playing.
I designed it in such way, that after 90-91 techs you should be in Sedentary Lifestyle if you build everything and don't beeline.
This means its balanced on causal side - better players might overshoot target.
I wouldn't be surprised if tech global would be at 700 - 800 if it was balanced on experienced player side (now its at 630, was 400).

I wonder where Noriad ends up after reaching sedentary lifestyle :p
 
Last edited:
I designed it in such way, that after 90-91 techs you should be in Sedentary Lifestyle if you build everything and don't beeline.
This means its balanced on causal side - better players might overshoot target.
I wouldn't be surprised if tech global would be at 700 - 800 if it was balanced on experienced player side (now its at 630, was 400).

There's an option that up-scales production costs, maybe there should be an option that upscales tech costs too for more experienced players?
 
10167

Added game option "Upscaled Research Time" for experienced players that manage to get ahead in technology of the AI on a consistent basis.

Note: Feature is still under development as values are still the same as normal times. The idea was talked about in this post and @raxo2222 will hopefully adjust them with time and (a lot) of effort. :)
I think you need DLL changes for that too.

I don't know how to mod DLL.

I didn't meant to have it implemented now, I just mentioned, that idea for this option existed somewhere before.
Otherwise I just bump up research cost by 40% for those options, so it would be similar to unscaled construction costs.

Also what happens if two upscaled options are chosen?
Only one of them can be actually active.
 
Last edited:
@raxo2222 No need for DLL work, tested in-game by having 500 iResearchPercent in blitz.

Basically just edit them in the XML like you've been doing lately.
 
Top Bottom