I hope I can contribute to a recent discussion and also bring up some new ideas.
I like Mediterranean-style maps. The Mediterranean is one example. Here are other examples of maps with a central sea and land masses bleeding off the sides.
http://www.dodgenet.com/~moonblossom/Elric/ykmanag.jpg
http://www.nysalor.net/runequest/kartat/glorantha/glo1.png
The first one is a better example. Also, my personal preference would be to have more land bridges around the edges than these maps have. But you get the idea. Maps like this have partly a continents flavor, but partly an archipelago flavor, and a central naval highway that provides interesting connections. Well, I believe no map script does anything like this. So it would be cool if you wanted Smartmap to do it.
I also like is predesigned maps. To me they have more character and a more compelling sense of place and story.
Check out the maps that come with The Ancient Mediterranean mod. The Magna Graecia and Fertile Crescent maps have a distinct style that makes for interesting play. But I'd like to focus on the "TAM Mediterranean Normal" map as a challenge target for how a map can be interesting in ways not currently implemented by any map script. This will be easiest to follow if you can look at the map itself, but:
One thing I like is the "soft partitioning" of the map into seas, subcontinents, penninsulas, and islands, connected and blocked in different ways by channels, isthmuses, and mountains. The partitioning partly arises from the way the mountains and hills form ridgelines.
The partitioning suggests subregions. Even if the content within each subregion was completely random, if you were playing the map, you'd still attribute some identity to the different subregions.
But the rest of the content is not completely random. Terrain and features give a distinct flavor to various subregions. I want to argue that even the limited elements that maps have can be combined into interesting patterns.
Along the West African coast there's a flat, fertile strip at the coast, then a fertile, wooded ridgeline, then an arid valley, then a very arid ridgeline, then a flat desert.
Farther east along the African coast, there's a strip of plains before you hit the desert farther inland. Yet it's practical to settle the coast because of resources, and because of oases that provide fresh water to some of the plains tiles.
In Turkey there's a fertile region in the West, a wooded, hilly region in the North, an arid plateau or valley in the middle, and an arid, hilly, peaky region in the south.
The Caucasus is peaky, fertile, and wooded.
North of the Caucasus is a flat, uniform plain. Very distinct from the region next door! Despite the uniformity, it can be settled because of resources, which aren't uniform, and because it's not that large an area, so it bleeds into other subregions at the edges.
West into the Crimea it's similar, but fertile.
The Tigris and Euphrates flow through what is very clearly a flood plain. To the northeast, it’s rocky and arid. To the west, plains. To the south, desert. The east coast of the Mediterranean is fertile, then gets arid as it goes over the ridgeline.
Resources also add flavor. Opium is only in the east. Elephants are only in West Africa. Wine is only in an arc from Spain through southern France into Italy.
You could get fancier. "Horses only occur in open areas, with open tiles surrounding." "Clams and Clay only occur near the mouths of rivers". “Cows only occur on grasslands or plains rivers”.
Some properties of resources can be read from the XML. It’s conceivable that some could be invented: for example if it is not clear that resource X is a critical military resource that must be distributed across the map for balance, a run of a map script could invent constraints on the distribution of X for the current map. Some things would only be practical with richer XML for the resources.
A related issue is what the scale of the map is supposed to be. Imagining that the map represents different amounts of real area causes you to think differently about things in subtle ways. For example the Magna Graecia map in The Ancient Mediterranean is at a small scale, and it’s geared to an ancient economy. So you get distributed, struggling cities near scarce resources, and you get a lot of poorly-inhabitable barbarian regions. It’s pretty cool.
I’ve considered trying to program some of this, starting with Mediterranean-style land outlines. If SmartMap did it, I might not try. But I got to Hello World, and can I ask... Can you get a map script to reload without restarting the Civ application? Also it appears that to generate the underlying fractals, the Python code calls CvFractal, which is in the SDK, through a layer CyFractal that is not in the SDK. Is that right? Does anything significant happen in CyFractal, or is all the action in CvFractal?