Do higher diff levels purposely give you worse start positions?

TheBigBabyP

Chieftain
Joined
Aug 3, 2007
Messages
17
I have been playing on Noble difficulty. After winning my last three games with no problem I decided that it was time to step up a level.

I have played three and a half games on Prince. I have yet to have more than two resources near my start location. Also only in my latest have I had bronze or Iron pop inside my borders without me having to chase it down with a settler or conquer for it.

Basically my question is: do the harder difficulty levels purposely nerf your start locations a little or am I just having a string of crap luck. Playing marathon It gets very annoying losing constantly, and Noble just is not challenging anymore so I really want to figure this out.:sad: :confused:
 
do the harder difficulty levels purposely nerf your start locations
The answer is simple:
:yup::shake:
:p
The starting positions are not purposely nerfed, BUT the Map Generator produces more less valuable starting positions on Deity than on Settler, how is that?
The Map Generator will generate all starting positions for all players before placing the individual player. When it places a player it does so pretty much randomly over the still available starting positions (this is not perfectly true for some scripts but we'll disregard this here ;)). Now when it places the human player it looks at the difficulty and on settler it will only accept the first starting position it rolls if it is within the top 10% of starting positions available, if not it goes on to the next and so on. On Deity it will accept any starting position that is in the top 90% of starting positions - now this does not mean that very good starting positions are impossible, since it will accept the best starting position if it randomly assigns that to the player, but it will not seek for the best as on settler.
 
OK thanks that makes alot of sense. Unfortunately that means it will most likely stay this way and I have to learn to deal. But I guess thats the point of harder difficuties.:lol:
 
The answer is simple:
:yup::shake:
:p
The starting positions are not purposely nerfed, BUT the Map Generator produces more less valuable starting positions on Deity than on Settler, how is that?
The Map Generator will generate all starting positions for all players before placing the individual player. When it places a player it does so pretty much randomly over the still available starting positions (this is not perfectly true for some scripts but we'll disregard this here ;)). Now when it places the human player it looks at the difficulty and on settler it will only accept the first starting position it rolls if it is within the top 10% of starting positions available, if not it goes on to the next and so on. On Deity it will accept any starting position that is in the top 90% of starting positions - now this does not mean that very good starting positions are impossible, since it will accept the best starting position if it randomly assigns that to the player, but it will not seek for the best as on settler.

Interesting.

Since it even looks for better starting positions for the player on Deity level if you get assigned the very worst of the various starting positions, does this mean that the player will typically get a slightly better than average starting position on Deity level (compared to the average of the AI's starting positions).

If the starting position algorithm would always accept the starting position for the human, then you would get (on average) an average starting position. But since you can't get the very worst of the various starting positions, I guess that your starting position is on average a bit better than the AI's starting position.

Did I understand that correctly?
 
yes the player does get assigned a less desirable starting position on higher difficulty. Check the HandicapInfo.xml, it has a field (don't know the exact name) about start position priority which can range from 100 to 0.
 
Now when it places the human player it looks at the difficulty and on settler it will only accept the first starting position it rolls if it is within the top 10% of starting positions available, if not it goes on to the next and so on.

I don't believe that is quite accurate.

In Civ4HandicapInfo.xml, each level has assigned to it an iStartingLocPercent value. This is the value returned by CvHandicapInfo::getStartingLocationPercent() which is called by CvGame::assignStartingPlots()

assignStartingPlots uses this value to determine what order the starting plots are given out. So if you are playing at Prince level (iStartingLocPercent = 50), you should expect that half of the AIs will have better starting positions than you do, and have will have worse starting positions.

Note that the assignment of the StartingPlots happens before the normalization of the starting plots - in other words, the map that you see after the game has loaded may not be the same one the computer was looking at when assigning positions.

From what I can see, the normalization code doesn't use this handicap value at all. Instead, it works from a fixed floor, to ensure that the quality of all starts is within about 80% of the best start (see CVGame::normalizeAllExtras()).
 
I don't believe that is quite accurate.

In Civ4HandicapInfo.xml, each level has assigned to it an iStartingLocPercent value. This is the value returned by CvHandicapInfo::getStartingLocationPercent() which is called by CvGame::assignStartingPlots()

assignStartingPlots uses this value to determine what order the starting plots are given out. So if you are playing at Prince level (iStartingLocPercent = 50), you should expect that half of the AIs will have better starting positions than you do, and have will have worse starting positions.

Note that the assignment of the StartingPlots happens before the normalization of the starting plots - in other words, the map that you see after the game has loaded may not be the same one the computer was looking at when assigning positions.

From what I can see, the normalization code doesn't use this handicap value at all. Instead, it works from a fixed floor, to ensure that the quality of all starts is within about 80% of the best start (see CVGame::normalizeAllExtras()).
:thanx:
Gah this is the second time this week I quoted from memory and the second time someone points out were I go wrong - I really should go back to check every time :)
So first of: StartingLocPercent is indeed 10 to 90 so I am not that bad in remembering stuff :)
assignStartingPlots() however seems to indeed behave like VoiceOfUnreason describes, i.e. it tries to set you at the 10% spot in Settler and the 90% spot in Deity, not as I remembered that it tries to give you at least these spots.
The normalize function than interferes with this since it does level the starting plots pretty well IF it is called but some map generator scripts only call part of the normalize function...
 
Top Bottom