[Map Script] SmartMap

I played around with the settings, and got some really interesting maps. I'm looking forward to trying one for my next game.

Thanks, really good work! :goodjob:
 
I'm practically only playing on Smartmap these days. One little feature request, even though I'm afraid it's silly: add bonus "many clump both"? As in, a clumped version, but with more stuff than in the normal clumped version.
 
Excellent map generator surt :goodjob:

However, I do have one request...

By setting Sea Level to low, continents may be connected by coast, and may even merge. Is there any way to prevent the merging of continents, while still allowing them to be connected by coast?
 
Angus Khan said:
Excellent map generator surt :goodjob:

However, I do have one request...

By setting Sea Level to low, continents may be connected by coast, and may even merge. Is there any way to prevent the merging of continents, while still allowing them to be connected by coast?

Since I only have 3 options there, it's challenging to pick the best 3. I wish they had let mapmakers override those options.

The best current work around is probably to use medium sea level. That will at least some of the time connect continents by coast (mainly because of a civiv bug that allows galleys to jump ocean squares once in a while).

The next best workaround is to edit this in your local copy of smartmap, because it isn't hard. Find this:

PHP:
	# Sea Level adjustment (from user input), transformed into width of sea separating continents
	sea = gc.getSeaLevelInfo(cymap.getSeaLevel()).getSeaLevelChange()
	seaWidth = 4 #default width for ocean separation of continents
	if (sea > 0):
		seaWidth = 7 #high sea level means extra separation
	if (sea < 0):
		seaWidth = 0 #low sea level means continents are permitted to merge
	print "    seawidth",seaWidth

And set the sea levels to however many tiles you want. For example, you might change medium from 4 to 3, which would keep continents very distinct, but frequently allow coasts to touch.

I will consider adding an override to do the same thing since it would be trivial to do (but I'm not sure if it is worth adding yet another option to the long list of options we have already).
 
Yes! This is exactly what I have been hoping for. I'd say this is the very best enhancement to the game so far.
 
Bringa said:
I'm practically only playing on Smartmap these days. One little feature request, even though I'm afraid it's silly: add bonus "many clump both"? As in, a clumped version, but with more stuff than in the normal clumped version.

Unfortunately, this proves difficult. I'm relying on civ code to generate the clumped resources, and unfortunately, there's no control available there. I can probably write my own version, but that's a more substantial undertaking, so you won't see such an option soon I'm afraid.
 
surt said:
Unfortunately, this proves difficult. I'm relying on civ code to generate the clumped resources, and unfortunately, there's no control available there. I can probably write my own version, but that's a more substantial undertaking, so you won't see such an option soon I'm afraid.

I'm curious, is the Civ4 resource placement algorithm surfaced to the modder? Or is it in their compiled code? I'd check myself but I'm travelling atm (plus, if I couldn't find it, I know it very well may still be there!). I've noticed another difference between SmartMap's and Civ4's resource placement: Civ4 tends to have more rules for where certain resources occur. For example, Civ4 seems to place crab and whale only near tundra or ice, but SmartMap will allow them near the equator. On the other hand, both SmartMap and Civ4 tend to place incense only in desert and deer/beaver only near tundra.

Anyway, it's neat to have choices to "place resources strictly according to terrain" vs. the more lenient/balanced/varied placement.
 
jray said:
I'm curious, is the Civ4 resource placement algorithm surfaced to the modder? Or is it in their compiled code? I'd check myself but I'm travelling atm (plus, if I couldn't find it, I know it very well may still be there!). I've noticed another difference between SmartMap's and Civ4's resource placement: Civ4 tends to have more rules for where certain resources occur. For example, Civ4 seems to place crab and whale only near tundra or ice, but SmartMap will allow them near the equator. On the other hand, both SmartMap and Civ4 tend to place incense only in desert and deer/beaver only near tundra.

Anyway, it's neat to have choices to "place resources strictly according to terrain" vs. the more lenient/balanced/varied placement.

It's a little bit of both. The amount and placement of resources is based on values that are tweakable in the civ4bonusinfo.xml (and thus can be modified in a mod but not a map script), but the actual algorithm that reads and uses these values is in compiled code (or maybe 'pseudo-compiled' python .pyc files).

Crab has a min and max latitude that are enforced by this compiled code, and that is why they tend to be found closer to ice with the standard generator. Smartmap placement only requires that bonuses be placed 'legally', and apparently the min and max latitude are not considered a 'legal' requirement, but rather more of a 'suggestion'.

That same file says that deer are only allowed on tundra terrains, and apparently that is a part of the 'legal' definition, and so smartmap obeys it.
 
Using Rocky terrain on various islands maps, I'm getting a lot more Stone and Marble than usual and a lot less Gold. I can fix this easy enough in bonusinfo, but thought you might want to know.
 
charleswatkins said:
Using Rocky terrain on various islands maps, I'm getting a lot more Stone and Marble than usual and a lot less Gold. I can fix this easy enough in bonusinfo, but thought you might want to know.

The amounts of resources you get using the smartmap options are independent of the terrain, except to the extent that the terrain does not create legal placement positions for the given resource. For gold, for example, I believe desert hills are required, and if there are not sufficient numbers of desert hills, you will get few gold. Stone and marble, on the other hand, are quite flexible, and can show up on all sorts of locations, and thus you are likely to always get the full amount of those.
 
Is there a way to at least limit the amount of certain resources that appear, then? Most resources are well enough as they are, but there is a definite over-abundance of fish, stone, and marble, consistently. Although you apparently lack any real control over where and how many of these resources are placed (except by tricking the compiled code with a "fake" civ4bonusinfo.xml, maybe; although trying that would probably get nasty), is it possible to remove "excess" instances of any resources with their type occurring more than X number of times?

I guess that's not likely to be a viable solution; of course, I'm not really one to say, seeing as how I'm not the one that's coded Civ 4's best map script.
 
Another observation: there is also an overabundance of Whales.

Just so I could stop bugging you, I took a look at the program and saw that Stone, Marble, and Whales were listed as common resources and that Gold only appears on empty Hills. That explains those. However, I am not getting Oil, either on land or sea, and did not see how that was placed.

I wonder if removing Stone and Marble from the common set and leaving them in the early start set would be a way to get them back into normal frequency of appearance while still giving players access to them.

Would it be a mistake to edit the list of common resources and early important resources to include some of the added resources available in mods like GreenMod? For this I would make a separate version of SmartMap for my own use only. Can I have your permission to do this?

My compliments for writing such well structured and commented code. I am new to Python, but have not had much trouble following it.
 
charleswatkins said:
Another observation: there is also an overabundance of Whales.

Just so I could stop bugging you, I took a look at the program and saw that Stone, Marble, and Whales were listed as common resources and that Gold only appears on empty Hills. That explains those. However, I am not getting Oil, either on land or sea, and did not see how that was placed.

I wonder if removing Stone and Marble from the common set and leaving them in the early start set would be a way to get them back into normal frequency of appearance while still giving players access to them.

Would it be a mistake to edit the list of common resources and early important resources to include some of the added resources available in mods like GreenMod? For this I would make a separate version of SmartMap for my own use only. Can I have your permission to do this?

My compliments for writing such well structured and commented code. I am new to Python, but have not had much trouble following it.

You are welcome to do whatever you'd like for your own use. I would even encourage you to post your version in this thread if it is more compatible with some mod (and I can look into merging the changes and making them compatible with future versions).

I made a special case for certain resources (gold & silver I think) because when evaluating viable map positions for those resources, I would frequently discover no tiles that were marked as legal for gold or silver, in spite of the fact that it appeared those tiles should be legal. So in addition to any 'legal' tiles, I also allow those resources to be placed on an empty hill.

Since a number of people have commented on it, I will take a look at tweaking the resource distribution some more in the next version.
 
Hey Surt,

First of all, great job! I really like the Smart maps. They are more balanced than Terra (which is my next favorite).

Can you make a version of this called SmartMap Terra which uses the same resource distribution system, but places all the civilizations in the Old World?
 
Rabbit_Alex said:
Hey Surt,

First of all, great job! I really like the Smart maps. They are more balanced than Terra (which is my next favorite).

Can you make a version of this called SmartMap Terra which uses the same resource distribution system, but places all the civilizations in the Old World?

I could probably do this, I'll look into this for the next version.
 
What's the best way to increase the proportion of the map that's grassland? I tried playing around with sea levels and climate but didnt seem to have the desired effect (other than setting Temperate of course, but with that there's still an abundance of plains).
 
`DG` said:
What's the best way to increase the proportion of the map that's grassland? I tried playing around with sea levels and climate but didnt seem to have the desired effect (other than setting Temperate of course, but with that there's still an abundance of plains).

You could probably get more grassland by picking tropical and then turning down the jungle level. Tropical is wetter than temperate, and I take grassland to be a wetter version of plains.
 
Back
Top Bottom