Arrakis.py map script discussion

(Recording this feedback in the appropriate place.)

Quote:
I think this experiment is one *input* to faction balancing, which is the point of this particular thread.
This is a fair point, and I agree. It can help guide us, and evaluate the impact of changes.

Quote:
"Better" may be subjective. Better how?
These are of course subjective.

More decent city spots, fewer useless city spots or islands that are too small to support a city, more connected land that is contested, cultural contesting actually important, more space for resources, larger graben/saltpan "sinks" that actually look like sinks (rather than little 2-3 tile channels).

With regards to small saltpans - this is to do with the shape of the landmasses. Cephalo's code always has a ring of rock surrounding graben surrounding salt, so to get an expanse of salt you need a fairly big island. If you run Arrakis.py and pick the Pangaea style (which uses Cephalo's original noise setting) then you will have more extensive salt flats, but you also get bigger and fewer islands and therefore reduced access to spice. Perhaps reducing the Noise level of the default Islands Style setting might yield a better result, or create a new setting that is a half-way house between Islands Style and Pangaea.

Overall people might want different things from different games so I think a range of options is good. If there is any general problem with the mapscript that we can agree is bad then we should try and fix it.

Quote:
Also, how would the game change if we deleted the size 3 islands?

Fewer junk city spots.
More aesthetically pleasing look; I think the small 1 and 2 tile islands look bad.
Remove worrying about the AI issue of unloading on small islands.
Less human exploit of building forts on the small islands (just inside culture) to expand culture range and capture more spice.

Deleting the small islands sounds OK. We can eventual add more rock features - like the rock arch, pinnacles, etc to give the outlying areas more character.
 
With regards to small saltpans - this is to do with the shape of the landmasses.

Shape and size.
This comment was in regard to changing the default land percent from 22% to 24%; it doesn't change any of the options.

I like how you have a ring of rock with a ring of graben and then saltpan in the middle. I think that looks good.

Overall people might want different things from different games so I think a range of options is good.
Agreed. Overall the maps are good, but they still often have a lot of empty space where no good cities can be built.
 
I am tempted to remove Archipelago map for 1.8. It's a bit ropey these days since it hasn't had any of the city placement logic added or any other refinements. The reason to remove it is that I think Arrakis now offers the best gameplay experience for Dune Wars and I'm concerned a lot of new players will play Archipelago since it is first in the list. I have advocated keeping two mapscripts in the past, but I think I've changed my mind.

changing the default land percent from 22% to 24%

This seems like a good change to make. I might just increase all the available options by 2%.
 
I am tempted to remove Archipelago map for 1.8. It's a bit ropey these days since it hasn't had any of the city placement logic added or any other refinements. The reason to remove it is that I think Arrakis now offers the best gameplay experience for Dune Wars and I'm concerned a lot of new players will play Archipelago since it is first in the list. I have advocated keeping two mapscripts in the past, but I think I've changed my mind.
I actually like Archipelago and play on it most games, but not because of it being first in the list. I do see your point concerning new players though. IMO, maybe Arrakis should be made the first choice in the list, while still keeping Archipelago as a choice for those who like it.
 
From a quick glance, the added mesa to break up big blocks of rock/rugged works pretty well. We might have a tiny bit too much mesa now, I'll have to play more and look at some more maps to see.
 
From a quick glance, the added mesa to break up big blocks of rock/rugged works pretty well. We might have a tiny bit too much mesa now, I'll have to play more and look at some more maps to see.

Locate the file Arrakis.py in your Dune Wars/Public Maps folder. Early on in that file there is some code:
Code:
#How many map squares will be above peak threshold and thus 'peaks'.
        self.PeakPercent = 0.065

0.065 means the 6.5% of the map squares will be Mesa (Peaks as far as the code is concerned).

If you change the 0.065 to 0.06 or 0.0625 then you can reduce the overall amount of Mesa slightly to compensate for the extra Mesa tiles that are being added. If you find a nice value for that setting then I can include in 1.8 which I'll probably try to assemble this weekend.

Jester Fool said:
I actually like Archipelago and play on it most games, but not because of it being first in the list. I do see your point concerning new players though. IMO, maybe Arrakis should be made the first choice in the list, while still keeping Archipelago as a choice for those who like it.

Ok then, I'll keep it, but rename it in 1.8 so that it isn't first in the list.
Archipelago does need some work so improve it:
1. You get Sink tiles that aren't Graben which I've tried to resolve with no success in the past. I tried to fix this using the new TLOTag RequiresFlatland for Rock/Rugged terrain. This works for Archipelago, but causing CTDs for Arrakis so this needs more investigation.
2. I think we need a band of Desert Waste between the Polar Desert Waste and Land otherwise you get graphical glitches. So it would go:

North Pole
Polar strip
Polar Desert Waste strip
Desert Waste strip
...
Desert Waste strip
Polar Desert Waste strip
Polar strip
South Pole
3. We need to add the same city placement logic that was done for Arrakis. Stop civs starting on Polar.
4. Sink/Graben adjacent to Desert Waste looks strange. Fix this. Probably need to add more Sink/Graben in the middle of land masses.
5. Proably we need a bit more Mesa.
 
From a quick glance, the added mesa to break up big blocks of rock/rugged works pretty well. We might have a tiny bit too much mesa now, I'll have to play more and look at some more maps to see.

Locate the file Arrakis.py in your Dune Wars/Public Maps folder. Early on in that file there is some code:
Code:
#How many map squares will be above peak threshold and thus 'peaks'.
        self.PeakPercent = 0.065

0.065 means the 6.5% of the map squares will be Mesa (Peaks as far as the code is concerned).

If you change the 0.065 to 0.06 or 0.0625 then you can reduce the overall amount of Mesa slightly to compensate for the extra Mesa tiles that are being added. If you find a nice value for that setting then I can include in 1.8 which I'll probably try to assemble this weekend.

Jester Fool said:
I actually like Archipelago and play on it most games, but not because of it being first in the list. I do see your point concerning new players though. IMO, maybe Arrakis should be made the first choice in the list, while still keeping Archipelago as a choice for those who like it.

Ok then, I'll keep it, but rename it in 1.8 so that it isn't first in the list.
Archipelago does need some work so improve it:
1. You get Sink tiles that aren't Graben which I've tried to resolve with no success in the past. I tried to fix this using the new TLOTag RequiresFlatland for Rock/Rugged terrain. This works for Archipelago, but causing CTDs for Arrakis so this needs more investigation.
2. I think we need a band of Desert Waste between the Polar Desert Waste and Land otherwise you get graphical glitches. So it would go:

North Pole
Polar strip
Polar Desert Waste strip
Desert Waste strip
...
Desert Waste strip
Polar Desert Waste strip
Polar strip
South Pole
3. We need to add the same city placement logic that was done for Arrakis. Stop civs starting on Polar.
4. Sink/Graben adjacent to Desert Waste looks strange. Fix this. Probably need to add more Sink/Graben in the middle of land masses.
5. Proably we need a bit more Mesa.
 
From a quick glance, the added mesa to break up big blocks of rock/rugged works pretty well. We might have a tiny bit too much mesa now, I'll have to play more and look at some more maps to see.

Locate the file Arrakis.py in your Dune Wars/Public Maps folder. Early on in that file there is some code:
Code:
#How many map squares will be above peak threshold and thus 'peaks'.
        self.PeakPercent = 0.065

0.065 means the 6.5% of the map squares will be Mesa (Peaks as far as the code is concerned).

If you change the 0.065 to 0.06 or 0.0625 then you can reduce the overall amount of Mesa slightly to compensate for the extra Mesa tiles that are being added. If you find a nice value for that setting then I can include in 1.8 which I'll probably try to assemble this weekend.

Jester Fool said:
I actually like Archipelago and play on it most games, but not because of it being first in the list. I do see your point concerning new players though. IMO, maybe Arrakis should be made the first choice in the list, while still keeping Archipelago as a choice for those who like it.

Ok then, I'll keep it, but rename it in 1.8 so that it isn't first in the list.
Archipelago does need some work so improve it:
1. You get Sink tiles that aren't Graben which I've tried to resolve with no success in the past. I tried to fix this using the new TLOTag RequiresFlatland for Rock/Rugged terrain. This works for Archipelago, but causing CTDs for Arrakis so this needs more investigation.
2. I think we need a band of Desert Waste between the Polar Desert Waste and Land otherwise you get graphical glitches. So it would go:

North Pole
Polar strip
Polar Desert Waste strip
Desert Waste strip
...
Desert Waste strip
Polar Desert Waste strip
Polar strip
South Pole
3. We need to add the same city placement logic that was done for Arrakis. Stop civs starting on Polar.
4. Sink/Graben adjacent to Desert Waste looks strange. Fix this. Probably need to add more Sink/Graben in the middle of land masses.
5. Proably we need a bit more Mesa.
 
Locate the file Arrakis.py in your Dune Wars/Public Maps folder. Early on in that file there is some code:
Code:
#How many map squares will be above peak threshold and thus 'peaks'.
self.PeakPercent = 0.065
0.065 means the 6.5% of the map squares will be Mesa (Peaks as far as the code is concerned).

If you change the 0.065 to 0.06 or 0.0625 then you can reduce the overall amount of Mesa slightly to compensate for the extra Mesa tiles that are being added. If you find a nice value for that setting then I can include in 1.8 which I'll probably try to assemble this weekend.

Ok, I will try to do some tests when I have time - maybe this weekend.
 
2. I think we need a band of Desert Waste between the Polar Desert Waste and Land otherwise you get graphical glitches.

Maybe you have already looked into the mapscript for this. The way the polar terrain is added is kind of a hack. The routine DuneWarsPole is called with parameter bLand=true for the very north and south row, and then called with bLand=false for the second row (just above/below the edge row). When bLand is true, it converts the terrain to polar, land, and may put ice resources there. When bLand is false, it converts the terrain to polar desert waste, ocean. What it doesn't do is look any further than that. So, your point is that if there is land in the third row, it goes polar land, polar coast, dry land, and the graphics are not right.

I am not sure what to do exactly. If there is land in the third row, I guess your suggestion is to convert it to normal coast. But, that will throw off some of the other calculations about mesa, won't it? If it looks OK to go from polar, to *normal* coast, to normal land, then perhaps the calculation on the second row should "look ahead" to the third row. If there is normal land, put normal coast; otherwise put polar coast.

At some point, the number of hacks piled up on top of each other for this mapscript will start to collapse. I am glad some people voted to maintain it; but it really plays quite differently from canon. Because the polar terrain is spread out all over the north and south edges, it encourages each civ to spread away from the center and reduces conflict, instead of increasing conflict as they fight over the limited, central pole.

3. We need to add the same city placement logic that was done for Arrakis. Stop civs starting on Polar.

There are two points here, related to local placement and global placement. In arrakis, there is a function Score which gives the value of each plot. This is the basis of local placement. This function is a historical prototype of the current sdk code for CvPlayerAI::AI_foundValue. They should be identical. (As a tangent, it would be worthwhile to remove Score from arrakis.py and call AI_foundValue instead, this will remove duplication.)

AI_foundValue is the key routine to give the score for each possible starting plot. In DW, this returns 0 for polar terrain starts. If you are seeing archipelago polar terrain starts, then either, this is not working, or archipelago locally overrides AI_foundValue. I have not traced very far. So, the local placement "should" already prevent polar terrain starts on archipelago.

The majority of the code that I wrote in arrakis.py is for global placement. It divides the square map into pie-shaped slices according to the number of players, and finds a good start location for each civ. None of this code is applicable to archipelago since this map is not "radially symmetric".

So, none of the code in arrakis is applicable for archipelago. For the local placement, use AI_foundValue instead; for global placement, it doesn't apply.
 
I am not sure what to do exactly. If there is land in the third row, I guess your suggestion is to convert it to normal coast. But, that will throw off some of the other calculations about mesa, won't it? If it looks OK to go from polar, to *normal* coast, to normal land, then perhaps the calculation on the second row should "look ahead" to the third row. If there is normal land, put normal coast; otherwise put polar coast.

I don't think this will fix the graphical problem. Polar next to normal Desert Waste will look bad. Normal land next to Polar Desert Waste looks bad. It's to do with the way the terrain textures layer up. In Arrakis.py the polar looks nice because we never have bad-looking combinations of terrain adjacent to each other.

If you are seeing archipelago polar terrain starts, then either, this is not working, or archipelago locally overrides AI_foundValue. I have not traced very far. So, the local placement "should" already prevent polar terrain starts on archipelago.

Archipelago.py has two functions, assignStartingPlots and findStartingPlot with some fairly complex logic in them. I tried removing them for a quick fix, but that didn't really work. I think I would rather focus on other things than figuring this out right now. I don't understand the distinction between local and global placement really.
 
Stop civs starting on Polar
AFAIK they don't, although I have seen the AI, and been able to myself, start with access to the polar terrains (BFC). IMO, this is not a problem but a unique part of playing archipelago maps.
I think I would rather focus on other things than figuring this out right now.
Tweaking the archipelago map should probably be the *last* priority if you ask me.
 
AFAIK they don't, although I have seen the AI, and been able to myself, start with access to the polar terrains (BFC). IMO, this is not a problem but a unique part of playing archipelago maps.Tweaking the archipelago map should probably be the *last* priority if you ask me.

You can get a fairly Archipelago-like map with the Arrakis mapscript anyway. Try Landmass Percentage 20%, Irregular Islands Style and an Outer Radius of 70 degrees.

Also, Larger Islands Style tends to produce maps that are much closer to the book maps than the default settings.

I think probably removing the tiny islands and making a true polar sink are the next things to figure out for Arrakis.py.
 
The Arrakis mapscript is not wraparound; instead it simulates the actual situation from the books where all the activity in the milder/sheltered areas around the north pole. The polar region and icecap is in the middle of the map.

This is normal.

If you want a wraparound map with poles at the north and south, then try the Duneipegalo mapscript.
But the main intention is for the Arrakis script (which doesn't wrap).
 
Back
Top Bottom