Proposed Scoring Formula:
OverallPercentage = ((MapSize * TurnsPercentage) + ScorePercentage) / (MapSize + 1)
TurnsPercentage = FewestTurns / PlayerTurns
ScorePercentage = PlayerScore / HighestScore
FewestTurns = Fewest number of turns needed by any player in the division to achieve the specified victory condition.
PlayerTurns = Number of turns taken by the player to achieve the specified victory condition.
PlayerScore = Score by the player, regardless of how the game was ended.
HighestScore = Highest score submitted by any player in the division.
MapSize
at 80% WaterLevel
at 70% WaterLevel
at 60% WaterLevel
Tiny
1.00
1.50
2.00
Small
1.33
2.00
2.66
Standard
2.77
4.16
5.55
Explaination
The idea is to reward both early finishes and high scores without requiring the game to be milked to do well. The two main parts of the equation are percentages of turns played and score. These are represented by the TurnsPercentage and ScorePercentage equations. The fastest finish becomes the standard, as does the highest score. The standards are used to deterimine a percentage representing the efficiency that each player achieved in both categories. These 2 percentages are weighted, added together, and then divided by 1 + the weight given to determine the OverallPercentage. All percentages will be 3 digits for more accuracy.
MapSize and WaterLevel are taken into account when determining how the percentages are weighted. The amount of land tiles directly affects the maximum score attainable by milking. To keep milking in check, the more land tiles on the map the higher the modifier.
Tiles per map size
width * height / 2
Tiny: 60 * 60 / 2 = 1800 tiles
Small: 80 * 80 / 2 = 2400 tiles
Standard: 100 * 100 / 2 = 5000 tiles
The tile numbers are reduced to 18, 24, and 50 respectively, then each multiplied by the land percentages for each given water level. 80% water means 20% land, ect. So the multipliers are 0.2, 0.3, and 0.4.
18 * 0.2 = 3.6
18 * 0.3 = 5.4
18 * 0.4 = 7.2
24 * 0.2 = 4.8
24 * 0.3 = 7.2
24 * 0.4 = 9.6
50 * 0.2 = 10
50 * 0.3 = 15
50 * 0.4 = 20
All of these numbers are then divided by the lowest result, 3.6, to give us the MapSize multipliers. These multipliers weight the TurnsPercentage in relation to the ScorePercentage, making milking less viable.
Missing the target victory condition
When a player doesn't achieve the given victory condition, their TurnsPercentage will be 0%. In this case, the player's OverallPercentage will be entirely dependant on their score.
If a player is to lose the game, then it is dealt with the same way. By losing, the player won't have achieved the target victory condition, and so will only recieve a percentage based on their score.