Arrakis.py map script discussion

I think the best way forward is if I put together a more polished patch which we can then playtest and fix issues before merging into the main mod.

I'll polish the graphics some more in terms of the textures, detail layers and heightmap TGA files. I'm also going to see if we can use TERRAIN_PEAK instead of TERRAIN_HILL as the new Sink level as this might lead to less XML work tidying up all the gameplay aspects.

Anyway, one way or another we'll have Mesa and Sink instead of Hills and Peaks. (I'm using these terms to save on typing - we can change the terms used)

This means you'll have terrains like Rock, Rock/Sink, Rock/Mesa instead of vanilla Grassland, Grassland/Hills, Grassland/Peak.

I don't think there's a way to stop certain terrains being used with certain elevations in the XML. So, for example, if we make a Saltpan terrain, there wouldn't be anything to stop Saltpan/Mesa which would be odd. Anyway you look at it, we'll need some more mapscript work to get the result we want.

So to put together a more polished and playtestable patch I need some pointers on what the effects of Mesa or Sink elevations should be.

There are a bunch of considerations:
1) Which bonuses/improvements should appear where?
2) If we have Saltpan is it going to be another yieldless deadzone like Dunes?
3) We need to make TERRAIN_PEAK fully settle-able, and improve-able for this idea to work - I think this can be done but need to confirm.
4) This change will impact on Promotions - should promotions applying to Hills/Peaks apply to both of Sink/Mesa?
5) Any thoughts on what to do with the current Mesa terrain? Mesa/Mesa doesn't make much sense. We could cull some terrains that aren't really distinctive, since every terrain will have an elevated and sunken variant.
6) What yield adjustments should Sink/Mesa supply? As God-Emperor pointed out it would perhaps be more appropriate for the +1 water currently assigned to Hills to go to the Sink elevation. Mesa should probably provide no additional yield bonuses.

There'll be lots of other things to refine and fix as we go, but it would be good to get some thoughts so I can at least have a vague stab at changing the necessary XML.
 
I think the idea of higher water yields on hills is that at higher altitudes, temperature is cooler (because atmospheric pressure is lower) and so its easier to condense out the water in the air; you get more dew and such because the air can't hold the moisture.
People live in the depressions because they're sheltered from the winds, and because they get shade from the hills.

The +1 water yield needs to be on the same terrain type as windtraps can be built, to try to indicate to the AI's city placement algorithm that these are places with higher potential water yields.

So, for example, if we make a Saltpan terrain, there wouldn't be anything to stop Saltpan/Mesa which would be odd.

Hmm, this is a problem. If we can fix this, how about:

H0: desert waste, deep desert
H1-x: saltpan, sink-rock, sink-rugged
H1: rock, rugged
H1+y, rock-mesa, rugged-mesa

and remove dunes.

With yields:
desert, desert waste as current.
saltpan = 0
sink-rock = 1 hammer, 1 commerce
sink-rugged = 1 hammer, 1 commerce, 30% longer improvement construction time.
rock = 1 hammer
rugged = 1 hammer, 30% longer improvement time.
mesa-rock = 1 water, 1 hammer
mesa-rugged = 1 water, 1 hammer, 30% longer improvement time.

All the plantation, dew collector, desert insects, etc resources can spawn on rock, rugged (including sinks). Stone, nitrates, diamonds etc, can spawn anywhere (except desert/deep desert).

Chang guerilla promotion to just give mesa bonuses. We'd also need to remove can't enter mesa for vehicle class units (their pathing might get messed up too much if they can't get through large mesa areas), and maybe just give them a mesa-strength penalty.

* * *

And maybe, if you wanted more color variation, add a graben terrain type at heights h1 and h1-x to use the mesa coloring.
 
Inverting the peaks works equally well as inverting the hills from a heightmap perspective, but there's a snag.

There seems to be something to do with the LSYSTEM that won't place the city buildings on the PEAK tile even though city building is enabled. The buildings appear at the corners of the tile the city is actually on.

Spoiler :
attachment.php


Here's a normal city for comparison:

Spoiler :
attachment.php


This is probably another hard-coded thing - any ideas?

You can try it using the patch uploaded - just change the values in CIV4TerrainSettings.xml to:

<fPeakScale>-0.26</fPeakScale>
<fHillScale>0.30</fHillScale>
 
It seems to be one of those annoying game limitations you come up against. With the changes I've made, cities now display fine on Ocean, Coast, Hills, Flatland, but with Peaks all the buildings appear around the edge - see Wallach IX.

Improvements display OK on the Peak tiles - it's just cities that don't work.

May need a rethink. Would it be OK to have no cities on the Mesa level? That would be pretty inhospitable anyway I guess.
 
May need a rethink. Would it be OK to have no cities on the Mesa level? That would be pretty inhospitable anyway I guess.

It might be ok. In fact it might help the AI; if windtraps go on mesa (and mesa have the +1 water) then being unable to build cities on mesa tiles means that the AI won't take up once if its valuable windtrap slots by building a city on it.

In Planetfall you can't build cities on ridges, and ridges are much more common than mesas would be here. However, in Planetfall the city placement is more forgiving, in Dune Wars there are only a few spots that are actually good city locations; you have to plan carefully to maximize the water tiles and bonus tiles you get, becaues bonus tile yields are *so* much higher than basic tile yields.
 
It seems to be one of those annoying game limitations you come up against. With the changes I've made, cities now display fine on Ocean, Coast, Hills, Flatland, but with Peaks all the buildings appear around the edge - see Wallach IX.

Improvements display OK on the Peak tiles - it's just cities that don't work.

May need a rethink. Would it be OK to have no cities on the Mesa level? That would be pretty inhospitable anyway I guess.

Heeey you got cities and their buildings to place on ocean? That's what I couldn't do with my SDK change to make ocean usable as land. (See the early posts on this thread).
 
Heeey you got cities and their buildings to place on ocean?

Yes, it seems that all you have to do make that work is to set iWaterHeight to 0 in CIV4TerrainSettings.xml.

It would be possible (although much more work) to make to make ocean into our sink terrain, but that would involve swapping around all our terrains and lots of custom code. Plus the sinks would have a ring of coast around them so I'm not sure it would be a satisfactory solution.

I'll go for the Hills->Sinks, Peaks->Mesa approach for now and we can see how that plays.
 
Yes, it seems that all you have to do make that work is to set iWaterHeight to 0 in CIV4TerrainSettings.xml.

It would be possible (although much more work) to make to make ocean into our sink terrain, but that would involve swapping around all our terrains and lots of custom code. Plus the sinks would have a ring of coast around them so I'm not sure it would be a satisfactory solution.

I'll go for the Hills->Sinks, Peaks->Mesa approach for now and we can see how that plays.

Actually, I had already done all that custom code part. It's not a big deal if you feel the need to do that later. Coast is optional. WB will automatically place coast but map scripts do not.
 
Well, the ideal would be to use the inverted PLOT_PEAK as the sand sea since cities don't work on it, then we can have three settle-able elavations for Sink, Flatland and Mesa.

How exactly did you switch around the plots and terrains? Do you still have the code?

Edit: Re-read the first few pages of this thread:

cephalo said:
Alright, I'm not ready to give up just yet. The problem I mentioned is purely graphical. If I make a different xml tag on the terrain infos to denote land other than the existing one, we can still have 'land' in the ocean basin that will be recognized as land be the AI. The old bWater tag will be used by the graphics engine as normal, while the new tag will decide if the map plot is water or land. That should work! That way we can have salt basins that are actually basins instead of plateaus.

cephalo said:
Ah it's no good. I succesfully made it so that units and improvements could use the low land, but there's alot of important stuff that's not happening when you try to place a city on the lowlands. The city buildings don't show up and none of the tiles are workable. I may have to just make do with what we have.

Given that we've solved the cities appearing on ocean issue - can we go back to trying your original solution? If I understand your solution, some of the ocean would be considered ocean by the AI and some would be considered land?
 
Given that we've solved the cities appearing on ocean issue - can we go back to trying your original solution? If I understand your solution, some of the ocean would be considered ocean by the AI and some would be considered land?

That was the intent yes. There might be some more issues with that I didn't find though, but we can try it again. Right now though, I'm neck deep in the AI code trying decide what to do about land transport.
 
I think the Hills->Sinks, Peaks->Mesa approach will work OK - I'll implement and we'll see how it goes.
 
I've made a custom detail layer for the salt flats. Hopefully, this looks much closer to the real thing. I'm going to make a couple more custom detail layers because I think they really help the map look more interesting.

Spoiler :
attachment.php
 
That is exactly the picture I had in my head for salt! Great! How closely is that tied into the whole "Rewrite altitude" project? Can you separate out that bit so we could put it into a small patch? For example, if it needs lakes to come back, I can change the lake removal part of the archipelago mapscript to force salt as a terrain in lake plots.
 
I've made a custom detail layer for the salt flats. Hopefully, this looks much closer to the real thing. I'm going to make a couple more custom detail layers because I think they really help the map look more interesting.

Spoiler :
attachment.php

Looks great, but usually salt flats look alot more dirty. Instead of snow, think urine on snow.
 
Looks great, but usually salt flats look alot more dirty. Instead of snow, think urine on snow.

Er, no yellow snow please. I like these. There are salt flats which are this pure, and I think it adds graphic interest. Also we need to make sure it can be easily differentiated from the polar terrain, which is kind of grey and lumpy.
 
:) I'm going to go with the current colour for now. I did originally set out to make them a bit more yellowy/browny but these'll do for now.

If you give me a couple of hours I'll probably have the whole new terrain thing assembled. I think it's better test that and try and fold the whole thing in, rather than have a temporary solution just for Salt.
 
Ok, I've updated to version 0.5. Basically it's much smaller and currently a pangaea so I could test the land transport changes. Once Deliverator publishes his new map graphics, I'll set about making Arrakis.py very much like Dune, without worrying about the AI! :D
 
Not far off now. Had a weird problem with the spice that I'm just fixing.
 
Ok, here's the terrain patch. I've pretty much changed all the terrain art. I'm hoping someone else can pick up the baton and do the necessary mapwork. There's sure to be a bit of tuning the XML required as my main focus has been the art. Should be playable if a little weird on the current Archipelago.py.

Here's a run down of the terrains in the patch. Dune Wars 1.5 required.

Terrain - (Water/Hammer/Commerce)

Polar Desert Waste (2/1/2)
Polar (2/0/0)
Polar Deep Desert (0/0/0) - this is redundant now I think

Desert Waste - (0/1/2)
Deep Desert - (0/0/0)

Graben (0/1/1) - the idea is this will only appear on Sink plots

Rock (0/1/0)
Badlands (0/1/0) - identical with Rock I think
Rugged (0/1/0) - build modifier 25%

Salt (0/0/0) - again should only appear on Sink
Dunes (0/0/0) - this should only really be used for the outlying Dunes on Arrakis.py, Archipelago.py should not place IMO.

Mesa (+1 water) (TERRAIN_PEAK/PLOT_PEAK) - in effect Mesa is (1/2/0) - I'm still not sure about the water bonus from realism point of view
Sink (no bonus) (TERRAIN_HILLS/PLOT_HILLS) - sink is effectively cosmetic at the moment - the idea is that only Graben, Salt and maybe a couple of other terrains can appear on this

TERRAFORMING TERRAINS
Grass (2/0/0)
Plains (1/1/0)

Other Changes
+ Removed Salt feature
+ Removed Qanat improvement
+ Random bonus - New more sinister Scytale leaderhead
+ I have created two subdirectories of textures - one for blend/grid textures and one for detail textures. This is just to help me - next step release (1.6) the textures folder itself can be cleared out as none of the files there are now used.

DOWNLOAD LINK
 
Back
Top Bottom