I was going to post this as a reply to @crullerdonut's game report Isle of Isabella. Then this idea about having multiple threads sunk in a bit further and ... here we are.
1. Starting position in crullerdonut's game;
2. A starting position produced by the new algorithm;
3. Result of another run of the new algorithm, slightly different outcome because it's randomized, and without swapping starting sites around based on the difficulty level (human handicap) in the end. Omitting that last step makes it easier to read the algorithm's log file.
The algorithm begins with the position computed by the BtS algorithm, i.e. what AdvCiv 0.97 uses too, and moves civs around iteratively. (I've named the algorithm "starting position iteration.") The log file after the final iteration (see below) shows that the position in the third screenshot is considered to be pretty well balanced: The "start values" range between 4186 (Isabella; with two others on the largest continent) and 6100 (Hannibal; alone on the smallest continent). If savemap wasn't involved, then extra resources could narrow that gap a bit further, and, if the log file wasn't enabled, human Isabella would swap her start with Pericles (I guess), the 3rd worst start among 8.
The "volatility" values measure, let's say, how "weird" a start is. None are too bad here. The highest two: Isabella, who is fairly close to two other starting sites; and Hannibal, who is – not really isolated – but alone on his continent. Volatility values can also affect whether the human position gets swapped and with whom; but, in this example, volatility is too low to matter.
Regarding the original positions (first screenshot), the BtS algorithm probably placed Hannibal, Justinian, Gandhi and Pericles in the best spot available (city radius mainly + nearby surroundings) on their respective continents, ultimately and without regard for the other civs still to be placed. This greedy strategy really doesn't work well for continents that have room for only two or three civs.
I think that part of the reason why my Isabella game ended up so difficult came down to having 8 civilizations instead of 7, on a Continents map. This map ended up with 4 main continents, somehow. One AI, Justinian, ended up alone on a huge area of the biggest continent; three AIs were shoved onto a medium-sized island, I and Gandhi ended up on a small food-barren island, and Pericles (!!!) ended up on his own private isle where he could just sit and tech in peace. [...]
The balance of starting positions is the main thing I've been working on (mostly finished now) for the next version. As an experiment/ a demonstration, I've used the savemap function (Alt+Shift+M) to allow the new algorithm to assign starting locations for crullerdonut's map. One caveat: savemap doesn't remove the extra "normalization" resources and features that were placed near the original starting sites. I'm attaching three screenshots for a comparison; I'll mostly talk about the 3rd.[...] it seems to me that having 8 AIs makes Continents even more luck-dependent than it already is, as it can really lead to lop-sided spawns.
1. Starting position in crullerdonut's game;
2. A starting position produced by the new algorithm;
3. Result of another run of the new algorithm, slightly different outcome because it's randomized, and without swapping starting sites around based on the difficulty level (human handicap) in the end. Omitting that last step makes it easier to read the algorithm's log file.
The algorithm begins with the position computed by the BtS algorithm, i.e. what AdvCiv 0.97 uses too, and moves civs around iteratively. (I've named the algorithm "starting position iteration.") The log file after the final iteration (see below) shows that the position in the third screenshot is considered to be pretty well balanced: The "start values" range between 4186 (Isabella; with two others on the largest continent) and 6100 (Hannibal; alone on the smallest continent). If savemap wasn't involved, then extra resources could narrow that gap a bit further, and, if the log file wasn't enabled, human Isabella would swap her start with Pericles (I guess), the 3rd worst start among 8.
Spoiler :
Reduces avg. error to 97 permille (was 167 permille)
Increases start position value to ca. 11426 (was ca. 8523)
New worst outlier: 0 (was 2)
Evaluating starting position ...
Site #0(Isabella)
From found-city value: 3142
From exp. space: ca. 4546
Rival distance factor: 82 percent
Volatility: 15 percent
War factor (2 pot. enemies): 72 percent
Trade factor (2 pot. partners): 92 percent
Start value: ca. 4186
Site #1(Shaka)
From found-city value: 2960
From exp. space: ca. 5122
Rival distance factor: 87 percent
Volatility: 7 percent
War factor (1 pot. enemies): 83 percent
Trade factor (2 pot. partners): 94 percent
Start value: ca. 5525
Site #2(Joao II)
From found-city value: ca. 3082
From exp. space: ca. 4672
Rival distance factor: 84 percent
Volatility: 9 percent
War factor (2 pot. enemies): 72 percent
Trade factor (2 pot. partners): 92 percent
Start value: ca. 4365
Site #3(Justinian)
From found-city value: 3196
From exp. space: ca. 5968
Rival distance factor: 89 percent
Volatility: 5 percent
War factor (1 pot. enemies): 83 percent
Trade factor (1 pot. partners): 81 percent
Start value: ca. 5567
Site #4(Pacal)
From found-city value: 3160
From exp. space: ca. 5245
Rival distance factor: 96 percent
War factor (2 pot. enemies): 72 percent
Trade factor (2 pot. partners): 92 percent
Start value: ca. 5389
Site #5(Gandhi)
From found-city value: 3116
From exp. space: ca. 5190
Rival distance factor: 89 percent
Volatility: 4 percent
War factor (1 pot. enemies): 83 percent
Trade factor (1 pot. partners): 81 percent
Start value: ca. 5046
Site #6(Pericles)
From found-city value: ca. 2917
From exp. space: ca. 5296
Rival distance factor: 88 percent
Volatility: 5 percent
War factor (1 pot. enemies): 83 percent
Trade factor (1 pot. partners): 81 percent
Start value: ca. 4924
Site #7(Hannibal)
[The found-city value, i.e. the city radius around the starting site, is given less weight, and space for expansion is given more weight because Hannibal is alone on his continent. Getting off to a good start isn't so important for him.]
From found-city value: ca. 693 (weight 23 percent)
From exp. space: ca. 5904
Volatility: 15 percent
War factor (0 pot. enemies): 110 percent
Trade factor (1 pot. partners): 84 percent
Start value: ca. 6100
Increases start position value to ca. 11426 (was ca. 8523)
New worst outlier: 0 (was 2)
Evaluating starting position ...
Site #0(Isabella)
From found-city value: 3142
From exp. space: ca. 4546
Rival distance factor: 82 percent
Volatility: 15 percent
War factor (2 pot. enemies): 72 percent
Trade factor (2 pot. partners): 92 percent
Start value: ca. 4186
Site #1(Shaka)
From found-city value: 2960
From exp. space: ca. 5122
Rival distance factor: 87 percent
Volatility: 7 percent
War factor (1 pot. enemies): 83 percent
Trade factor (2 pot. partners): 94 percent
Start value: ca. 5525
Site #2(Joao II)
From found-city value: ca. 3082
From exp. space: ca. 4672
Rival distance factor: 84 percent
Volatility: 9 percent
War factor (2 pot. enemies): 72 percent
Trade factor (2 pot. partners): 92 percent
Start value: ca. 4365
Site #3(Justinian)
From found-city value: 3196
From exp. space: ca. 5968
Rival distance factor: 89 percent
Volatility: 5 percent
War factor (1 pot. enemies): 83 percent
Trade factor (1 pot. partners): 81 percent
Start value: ca. 5567
Site #4(Pacal)
From found-city value: 3160
From exp. space: ca. 5245
Rival distance factor: 96 percent
War factor (2 pot. enemies): 72 percent
Trade factor (2 pot. partners): 92 percent
Start value: ca. 5389
Site #5(Gandhi)
From found-city value: 3116
From exp. space: ca. 5190
Rival distance factor: 89 percent
Volatility: 4 percent
War factor (1 pot. enemies): 83 percent
Trade factor (1 pot. partners): 81 percent
Start value: ca. 5046
Site #6(Pericles)
From found-city value: ca. 2917
From exp. space: ca. 5296
Rival distance factor: 88 percent
Volatility: 5 percent
War factor (1 pot. enemies): 83 percent
Trade factor (1 pot. partners): 81 percent
Start value: ca. 4924
Site #7(Hannibal)
[The found-city value, i.e. the city radius around the starting site, is given less weight, and space for expansion is given more weight because Hannibal is alone on his continent. Getting off to a good start isn't so important for him.]
From found-city value: ca. 693 (weight 23 percent)
From exp. space: ca. 5904
Volatility: 15 percent
War factor (0 pot. enemies): 110 percent
Trade factor (1 pot. partners): 84 percent
Start value: ca. 6100
Regarding the original positions (first screenshot), the BtS algorithm probably placed Hannibal, Justinian, Gandhi and Pericles in the best spot available (city radius mainly + nearby surroundings) on their respective continents, ultimately and without regard for the other civs still to be placed. This greedy strategy really doesn't work well for continents that have room for only two or three civs.