i haven't read the complete thread, but i do have a questions since the title seems to point in the right direction.
for my AI testgames i like to add one or two additional players and often these extra players end up starting on tiny little islands.
i use the fractal map script most often but i think i've seen wildly uneven starting position also on other map types.
is there somebody who knows why this is happening and how the distribution could be made more fair?
Player distribution is based on land fertility, not land size. The assignation roughly works this way for continental maps (see AssignStartingPlots.lua, GenerateRegions function):
0. Sort all areas (landmass) in decreasing order of fertility. Only take the first (number of civs) areas in consideration when assigning civs.
1. One player gets assigned to the area (landmass) with the highest fertility, unless the area already has max(total number of civs - 2, 2) civs.
2. Fertility of the assigned area is reduced by 80% x total fertility of the map / total number of civs. This number is balanced on the assumption that 80% of the fertility is in relevant land (habitable land).
3. Repeat 1. and 2. until each player are assigned to an area.
There are two things you can change to prevent players from starting on tiny islands:
1. Decrease the percentage of assumed relevant land.
2. Add a check to remove all islands less than a certain number of tiles from the table.