Thanks to paul57's research, I am about to modify the original strategy posted. But let me present you paul57's research first:
====================== From paul57 ======================
It appears difficulty level provides a bonus as follows: Diety is twice Noble and Diety is 5 times Settler.
Generalizing and elaborating:
It seems the way to maximize your score is as follows. Increase your population as quickly as possible toward the maximum the total available land area can support then end the game as soon as population growth rate falls off. This is because population is half the "raw" score and early finish gives maximum bonus. Increasing population requires controlling land area which contributes another 20% to the raw score. Increasing population and land area will require technologies which contribute another 20%. Number of wonders built contributes 10%. Difficulty level provides a bonus where Diety is twice Noble and Diety is 5 times Settler. However, the bonus for finishing early appears to be dominate.
You might agree that the results posted in the Hall of Fame seem to support this because the highest scores are currently Conquests on standard maps at Marathon speed and Diety difficulty. Scores (even by the same players) seem to fall at lower difficulties and/or smaller map sizes. I think I will search the forums for an explanation as to how Lurifax acheived the current high score of 412,476!!
--------------------------
I have not yet found this information on the forums or in the Wiki's so I thought I would share it.
After studying the relevant Python and XML files listed below (update 1.52) I conclude the following regarding score: "Game Score" and "Normalized Score"
All scores are a sum of 4 components weighted as follows:
50% based on population of all your cities
20% based on land area within your cultural borders
20% based on technology you have researched
10% based on wonders you have built
Each pre-weighted component is the ratio of what you did relative to the maximum that was possible in that game:
Code:
your population TO max population possible on that map
land area within your borders TO the land area of that map
technology you researched TO all technologies researched
wonders you built TO all wonders builtThe so called "Game Score" is determined by 1 & 2 alone and nothing else other than being multiplied by 10,000. In other words, if you have maximum population, maximum land, researched all technologies and built every wonder then your Game Score will be 10,000.
The so called "Normalized Score" is dependent on difficulty level and the turn the game was completed on. If the difficulty is NOBLE and you finished the game on the so called "Estimated End Turn" then your Normalized Score will be 10,000.
The difficulty level alters the normalized score by 0.2 per level as follows:
Code:
Settler: score is 0.4 times what it would be at Noble
Chieftain: score is 0.6 times what it would be at Noble
Warlord: score is 0.8 times what it would be at Noble
Noble: score is 1.0 times what it would be at Noble
Prince: score is 1.2 times what it would be at Noble
Monarch: score is 1.4 times what it would be at Noble
Emperor: score is 1.6 times what it would be at Noble
Immortal: score is 1.8 times what it would be at Noble
Diety: score is 2.0 times what it would be at NobleThe turn you end the game on alters the normalized score in a complex way. The game "estimates" the turn that you "should" win. The game also has so called "Initial" values for each of population, land, techs & wonders.
Let
E be the estimated end turn.
W be the turn you won on.
R be the raw value (eg your population or techs researched) and
M be the max value (eg max possible population or max techs) and
I be the initial value (?eg initial population? or initial techs?).
---
Recall the Game Score for each component, G(i) is R divided by M:
G(i) = R / M, for example
G(pop) = R(pop) / M(pop)
If the Initial values of all 4 components are zero then the total normalized score, N, is multiplied by the ratio E divided by W:
N = (E/W) * (R/M)
N = (E/W) * [G(pop)+G(land)+G(tech)+G(wonder)]
Note: in this case the turn you finish on has a "linear" effect on score
The wonders component of the score is always effected linearly by the turn you finish on, although when I is not 0 it is more complex:
N(wonder) = R / {I + [(W/E) * (M-I)]}
The turn you finish on has an exponential effect on population, land, or tech if their corresponding initial values are not zero. Each component of the normalized score, N(i) is altered as follows:
N(i) = R / (I * pow( M/I, W/E ) )
obviously if W is equal to E then
N(i) = R / (I * pow( M/I, E/E ) ) = R / (I * M/I) = R / M
If W is twice E (ie it took twice as long to finish the game) then the score is reduced because I is less than M:
N(i) = R / (I * pow( M/I, 2*E/E) ) = R / (I * M*M/(I*I)) = (I/M)*(R/M)
If W is half E (ie game was finished in half the number of turns) then
N(i) = R / (I * pow( M/I, 0.5*E/E) ) = R / (I * sqrt(M/I))
-------------------------------
In directory:
c:/Program Files/Firaxis Games/Sid Meier's Civilization 4/Assets/XML/
file:
GlobalDefines.xml
the following parameter values are specified:
Code:
SCORE_POPULATION_FACTOR = 5000
SCORE_LAND_FACTOR = 2000
SCORE_WONDER_FACTOR = 2000
SCORE_TECH_FACTOR = 1000
SCORE_FREE_PERCENT = 0
SCORE_VICTORY_PERCENT = 0
SCORE_HANDICAP_PERCENT_OFFSET = -60
SCORE_HANDICAP_PERCENT_PER = 20
In directory:
c:/Program Files/Firaxis Games/Sid Meier's Civilization 4/Assets/Python/
in files:
EntryPoints/CvGameInterface.py
CvGameUtils.py
CvUtil.py
we find functions:
gameUtils().calculateScore()
CvUtil.getScoreComponent()
Following is a "simplification" of those functions.
The first function calculates the score as follows:
Code:
PopScore = getScore(Pop, InitPop, MaxPop, 5000, T, Final, Victory)
LandScore = getScore(Land, InitLand, MaxLand, 2000, T, Final, Victory)
TechScore = getScore(Tech, InitTech, MaxTech, 2000, T, Final, Victory)
WondScore = getScore(Wond, InitWond, MaxWond, 1000, F, Final, Victory)
return (PopScore + LandScore + WondScore + TechScore)where presumably the Init values are starting values (for example the game starts with some free techs) although they could be something else (perhaps the function is generalized for later than 4000 BC starts).
The second function calculates each component of the score as follows:
Code:
getScore(RawScore, Initial, Max, Factor, Exponential, Final, Victory):
if EstimateEndTurn == 0:
return 0
if Final and Victory:
TurnRatio = GameTurn / EstimateEndTurn
if Exponential and (Initial != 0):
Ratio = Max / Initial
Max = Initial * pow(Ratio, TurnRatio)
else:
Max = Initial + TurnRatio * (Max - Initial)
Free = (SCORE_FREE_PERCENT * Max) / 100
if (Free + Max) != 0:
Score = (Factor * (RawScore + Free)) / (Free + Max)
else:
Score = Factor
if Victory:
Score = ((100 + SCORE_VICTORY_PERCENT) * Score) / 100
if Final:
X = HandicapType * SCORE_HANDICAP_PERCENT_PER
Y = 100 + SCORE_HANDICAP_PERCENT_OFFSET + X
Score = (Y * Score) / 100
return(Score)
This can be further simplified as follows:
Code:
getScore(RawScore, Initial, Max, Factor, Exponential, Final, Victory):
if Final and Victory:
TurnRatio = GameTurn / EstimateEndTurn
if Exponential and (Initial != 0):
R = Max / Initial
Max = Initial * pow(R, TurnRatio)
else:
Max = Initial + TurnRatio * (Max - Initial)
if Max != 0:
Score = Factor * RawScore / Max
else:
Score = Factor
if Final:
Score = ((HandicapType * 20) + 40) * Score) / 100
return(Score)
--------------------------------
Things that I have not yet verified or otherwise determined:
what is included with wonders? world, national, projects, spaceship parts?
is the score really unchanged at Noble difficulty for all game speeds? (what value is returned by function getHandicapType()?)
how is the estimated end turn determined? what does it depend on? (what value is returned by function getEstimateEndTurn()?)
what determines the "initial" values for population, land, techs & wonders? (what value is returned by functions getInitPopulation(), getInitLand(), getInitTech(), and getInitWonders()?)
Comments regarding unverified and/or undetermined information:
wonders have the least impact on score so knowing the contribution of national wonders, projects or spaceship parts wont help players increase their score by a significant amount.
knowing the exact difficulty where the score is not changed wont help players improve their score.
knowing how the estimated end turn is determined could potentialy help players increase their score (it would at least be interesting to know).
the manner in which the score if altered depends on the "initial" values so it would be nice to know what those values are; if they are zero then finishing earlier has a linear effect otherwise exponential.
The maximum tech is 300 (at least it is in my current game) but there are 86 techs and the sum of points needed to research every tech is 197,120. Perhaps it is based on number of techs weighted for era?
The maximum number of wonders is 230 (at least in my current game) but there are 33 world wonders, 13 national wonders, 4 projects & 7 spaceship parts.