Interestingly enough though, I don't get pangea worlds too often. What I get insted of pangea worlds are several landmasses that are only seperated by coast, not ocean (hense my ocean canyon code). But, just as often as I get them I get nicely dispersed and seperate landmasses with some scattered islands.
Yeah, you're right actually, I still think of those as pangeas, since the gameplay effect is mostly the same. I think the reason is that the reduction of plates in one reagion means the plates in the others grow larger and are more likely to connect. I might experiment a bit with altering the techtonics placement so it chooses 2-4 locations to add clusters of plates, rather than each plate scattering randomly.
Another thing I'd like to work out is shifting players around so their starting position is appropriate for the civ. Ethnic clusters would also be cool to add but I'm not sure I could accomplish both at the same time. Some examples would be ensuring civs like the Vikings, Dutch and Portugese start on costal tiles, the Celts start in hilly areas, etc...
Yeah, I played with the script in the other thread here that does that, and I ultimately didn't like the results. I think it was really along the right track though, and I'd like to alter the PW placement scripts with some of the ideas.
Basically, my thought is to keep the starting plot selection code as it is, but then add extra logic where it assigns them to the players. Each art style would have weighted factors, and a few individual civs would as well, so you could increase the chance of UU and UB relevant positions, and also take into account starting techs (give fishing civs seafood, mining civs hills, etc.).
I think the logic would work something like this:
Code:
Create a set of starting position "buckets" by art style
Iterate through starting locations
Get a relative terrain value for each art style
Place into the bucket with the highest art style
Iterate buckets
Iterate positions in this bucket
Iterate the other items in this bucket
Add to a relative proximity value
Add terrain value to this value
Iterate other buckets
Iterate items in this bucket
Add to a relative proximity value for this bucket
Add terrain value for bucket to this value
Compare values of this bucket to other buckets
If greater, switch buckets
Iterate buckets
Check number of players for this bucket
If too many, take lowest combined value items, and and put them in a "bone pile"
Iterate buckets
If extra spaces, pull greatest value items from bone pile
Iterate players
Iterate positions
Generate values based on terrain for this civ
Assign civ highest valued terrain in their bucket
That's off the top of my head, at least. I'm sure it could be more elegant and efficient. I'd have to make terrain and proximity value functions, since they're done over and over again. It shouldn't be much of a performance hit, since the starting positions pool is already narrowed down.
Ideally, it should group by art style, sort of like culturally linked starts did in Civ3, and then give each civ for that style the most logical start within.
The proximity function would also work better if it took water and mountains into account. For simplicity, it might work well to just draw a straight line, and add a total value based on the terrain (maybe flat=1,hill=1.5,mountain=3,coast=3,ocean=5), which would mostly confine cultures to a single continent, but still allow them on nearby islands or continents to an extent (think Japan).