I had noticed some slightly claustrophobic starts myself, but it was subtle enough that I thought I might just be having bad luck or noticing minor problems more because I was trying to check a script I was working on. Based on this feedback, I generated some maps, took screenshots of the minimap, and marked down the starting locations. I've attached the results to this post.
My conclusions:
- Clustered starts sometimes happen.
- Mountain ranges sometimes make a start tighter than it would otherwise be.
- The starting location code doesn't handle several continents of varied sizes particularly gracefully.
Planet Simulator uses Civ's default start placement code. The Communitas script technically doesn't quite use the default start placement code, but it is extremely similar. It is possible that when I finish adding the Communitas ASP code these start issues will be addressed, but I doubt it -- it doesn't look like this is what the start location changes in Communitas are trying to accomplish. I think instead the issue is that the start placement algorithm is somewhat poorly tuned for Planet Simulator. Two things in particular jump out at me:
- The start placement code measures the fertility of each continent (meaning "region of contiguous land"). It then tries to create a number of regions equal to the number of players with each region having roughly equal fertility by breaking large continents into multiple regions. This ends up ignoring small continents, which may be close enough to a player to be reasonable for them to colonize as soon as they can embark settlers. This isn't a problem for base Civ, which only has large continents or islands (and in particular doesn't have multiple continents of wildly different sizes). (For maps with many islands like archipelago, Civ has a different start placement algorithm, which I'll discuss below.)
- Civ ignores mountains for start placement, just treating them as infertile land tiles. This means that Civ will be oblivious to whether mountains push Civs toward each other when determining starting locations.
This doesn't leave much in the way of good options. Here's what I've thought of (if someone has other suggestions, let me know):
- Use Civ's archipelago start placement code. This is an easy change to make, but I suspect it will cause more problems than it solves (I believe it breaks the map into rectangles of approximately equal fertility without considering how connected/disconnected the tiles in each rectangle are. This seems problematic for maps that don't have land evenly distributed across the map). I'll give it a try though.
- Try to rewrite the start code to account for mountains and mixed continents. These features do not mesh well with the way the start code currently works, and I fear it might result in a montrous undebuggable mess that doesn't really do what we want.
- Write start placement code from scratch. This is a lot of challenging work.
- Try to rewrite the continent and mountain generation code to make the continents more equally sized and make the mountain ranges less of a barrier. I feel like this would destroy some of the things that make Planet Simulator great, and I don't plan on doing this.
- Decide the problem isn't a big deal and ignore it. Certainly straightforward for me, probably what I will be doing at least for now (unless the archipelago code works better than expected).
- Hope the Communitas code integration fixes it. That would be wonderful! I doubt that's what will happen though.
- Try to mitigate the problem. This means using fewer mountains (i.e. older worlds) and maps with more land per civ (fewer civs for than the default for the map size used and/or lower sea levels).
Given that the current state of affairs seems to be "start placement is sometimes somewhat clustered" rather than "start placement is routinely heavily clustered", I am going to make adjusting the start placement a low priority. If I see an opportunity for improvement I'll certainly take it. But for now, I'm going to treat this as a case of "if you have a script that generates more varied maps, sometimes that variation will cause starts to be unusually challenging". Making bad starts more likely is certainly not my goal with this script, but I don't currently see a way to fix it here without a serious investment of time and energy or a sacrifice of other goals I value more.
-------------
Qualanqui: You should be able to accomplish this with High sea levels on a larger map with fewer civs than default for that map size. If even high sea levels give too little water for your taste, I can definitely add even higher sea levels. (Unfortunately I can't add more map sizes -- as far as I can tell the size categories are not modifiable by map scripts.) If Huge maps are still too small for you, I could probably come up with a workaround ... but also you can adjust this yourself by changing the numbers in the line:
Code:
[GameInfo.Worlds.WORLDSIZE_HUGE.ID] = {128, 80}
to something bigger (make sure to keep them both even, and if you make them too big Civ will start having issues).