Arrakis.py map script discussion

Ahriman, you didn't mentioned which terrains are h0 = ocean in your proposal - it sounds like everything is "as current".

What are you talking about? Look at the post! What do you mean, I just edited it right now? Nonsense! :-)
It might look "different" to have all the habitation in low terrain areas. But, does this really make sense geologically? Why don't the low areas fill in with blown sand?

I think it makes plenty of sense geologically.
a) Not all desert is necessarily sandy.
b) the settled areas are those that are sheltered from the sands by high ground, so the depressions won't be filled in.
c) its established at the books that people live mostly in the sinks and graben; depressions.

But I would be happy to see it go either way; I suggested this alternative just to see how it looks.
We could also keep the status quo, and have sinks, and/or graben like inland lakes (but land tiles): standard flatlands at h1, deserts at h0, and then sinks/graben at h0 but only inland (like lakes). And h2/h3 peaks rising above.

Very death-valley-ish, inland sinks below sealevel (ie at desert floor level).
 
In the book Dune, the shield wall is breached with atomics and sand pours into the basin around Arrakeen. That suggests the level of the main sand sea is above the level of the basins.
 
Are the AI transports pathing on land at all? Where do they choose to disembark? On the coast or do they drive up to the city?

They are built and loaded on land, so they can path on land.

I do not recall where the AI drops off the cargo during an assault. Probably at the coast. The key point is that we have not made any specific AI changes for this; the AI thinks it is executing an amphibious assault. As TheLadysOgre learned painfully in the recent land transport thread, amphibious assault AI is complicated and it is not clear exactly what *should* happen for correct use of land or all terrain transport.

The human player could drive the transport right up to the target city before unloading, although we have done some tuning to make this more risky. We have decreased the strength of the transport units and given defenders more move points. So it is safer to drop off the cargo some distance away.
 
In the book Dune, the shield wall is breached with atomics and sand pours into the basin around Arrakeen. That suggests the level of the main sand sea is above the level of the basins.

I don't have my book handy, but I thought whatever sand was driven in by a huge storm, which could now travel through the breach.
 
I don't have my book handy, but I thought whatever sand was driven in by a huge storm, which could now travel through the breach.

Yes, this is true; some sand pours in, but mostly the issue is just that the mountain has been destroyed and so the storm can enter the basin.

But Arakeen *is* built in a basin.
 
That's a pretty clever installer david! The only problem is that I'm at work and I don't have BtS installed here, so your installer won't let me extract. Any suggestions?
 
It is a standard installer contributed by phungus420 and others to the civfanatics download database. I had not tried on a system without civ installed, but it apparently checks for some file, and will not accept an install directory unless that file exists.

As a workaround, do you have 7-zip installed on your local machine? I was able to do the following. Right click on the dune-wars-1-5.exe file in Windows Explorer, and select 7-zip => Extract files. This brings up a dialog to enter the destination path, and then all the files get installed there.

EDIT: I looked through the text of their install script. The script lets you select any directory which contains a file, Civ4BeyondSword.exe. So just put an empty file with that name into any directory, and you should be able to install into that directory.
 
This post explains why only four heightmaps are available. I am not exactly clear on how Plot Types and Terrain Types are connected. If we were to try using a habitable land terrain with PLOT_OCEAN how do you even set that up seeing as no XML is involved? I presume that TERRAIN_OCEAN is hard-coded to use PLOT_OCEAN, TERRAIN_PEAK is hard-coded to use PLOT_PEAK and so on. Or are plot types completely independent of terrain types and determined by the mapscript?
 
This post explains why only four heightmaps are available. I am not exactly clear on how Plot Types and Terrain Types are connected. If we were to try using a habitable land terrain with PLOT_OCEAN how do you even set that up seeing as no XML is involved? I presume that TERRAIN_OCEAN is hard-coded to use PLOT_OCEAN, TERRAIN_PEAK is hard-coded to use PLOT_PEAK and so on. Or are plot types completely independent of terrain types and determined by the mapscript?

There is some slapdash interdependency between TERRAIN_OCEAN and PLOT_OCEAN, but in most cases they are independant. In general, the plot type is the geometry and the terrain type is the skin. Remember I was trying to make it so that we could use ocean as land, but I abandoned it because I was having some thorny issues, one of which would have required editing the L systems for every single building to allow it to be placed on ocean.

Another thing about this plot type geometry that I learned is that you can in fact place hills and peaks in the water. There is not a distinct geometry for the four types. Flat, hills and peaks can be at land height or water height.
 
Getting all city stuff to work at ocean level might be more trouble that it's worth. Turning Hills into the plot that adjusts the terrain down, and keeping Peaks as the plot that adjusts terrain up might be easier.

Another thing I found in that old Song of the Moon thread was a custom heightmap for hills by matthewv (see screenshot). I've been thinking of making peaks into something more jagged like this, although perhaps not quite as extreme as this.
 
I'd actually prefer to see hills as flat-topped "mesas", like Planetfall highlands. Look at the pictures: http://en.wikipedia.org/wiki/Mesa

You don't really get normal hills in the same kind of way in deserts; hills are formed by steady water erosion from rainfall over time; mesas you get from wind and occasional floods of groundwater.
 
Getting all city stuff to work at ocean level might be more trouble that it's worth. Turning Hills into the plot that adjusts the terrain down, and keeping Peaks as the plot that adjusts terrain up might be easier.

Another thing I found in that old Song of the Moon thread was a custom heightmap for hills by matthewv (see screenshot). I've been thinking of making peaks into something more jagged like this, although perhaps not quite as extreme as this.

Keep in mind that my dunes are also made of hills. ;)

So the height map you are editing is actually just the hills and peaks correct? You can't actually reverse land and water?

If I remember correctly, it's actually the terrain that determines the base altitude level. If you set a terrain to water, it will actually use the lower altitude even if you decouple the plotTypes from that in the SDK. If you could change the relevant geometry somewhere though, it might be possible without having to mess with the L system.
 
Exciting breakthroughs! :band:

I started by taking the Planetfall heightmaps for hills and peaks. They basically turn these plot types into level plateaus.

In CIV4TerrainSettings.xml there are two parameters fPeakScale and fHillScale. These basically scale the heights of the two plot types as you'd expect. This is what I set them to:
Code:
<fPeakScale>0.36</fPeakScale>
<fHillScale>-0.30</fHillScale>

That minus sign makes all the difference. So instead of the hill heightmap adding to the height of the flatland terrain, it is subtracting from it. Together with the plateau Planetfall heightmap TGAs this means I can create level sinks in the terrain like so:
Spoiler :
attachment.php

attachment.php


That's a ring of normal flatland surround a square of the inverted Planetfall hills.

I had scare when I found that none of the buildings were appearing in my sink cities, but this was resolved by setting iWaterHeight to 0 in CIV4TerrainSettings.xml:
Spoiler :
attachment.php

Obviously, the next thing to do was to build a shield wall setup:
Spoiler :
attachment.php

You should be able to see that the depression/sink is slightly lower than the desert surface.

Quite a nice feature of this is that if you put the inverted hill terrain next to a desert tile you get a nice little lip of raised land between the two. You can see some of that here:
Spoiler :
attachment.php

If you're worried that the changes in height are too extreme, reducing them is as simple as moving the fPeakScale and fHillScale values closer to zero.

You may also have noticed the substance of my other breakthrough which is that we are really not using the terrain detail layers very well. The detail layers work like normals adding more texture over the flat 2d textures. In the screenshots I have updated Desert Waste and Deep Desert to use the Desert vanilla detail layer and pretty much all the other terrains to use the Peak vanilla detail, which seems the most rocky looking. The underlying terrain textures haven't changed so you can see how much of a different the detail layers can make.

I also had a rough stab at doing a salt pan:
Spoiler :
attachment.php


If we wanted to implement this then I think the best way would be to turn Peaks into everything Hills are in gameplay terms, and then Hills can be renamed Sink or Depression. The reason for this approach is that I don't think that inverting the peak heightmap will work so well.

I can put together an experimental patch with this stuff so that people can get a feel for it.
 
...that's a nice find! I'm impressed! Have you checked out what rivers do? AFAIK, rivers have the height of flatland, hence they should go up, if the surrounding land is lower than flatland. By reskinning rivers, you might even be able to add small wall-like geological formations on land!

Cheers, LT.
 
Very interesting!

So, if I understand it correctly, we can have a height level h0, a height level h1, and a modifier h1-x and a modifier h1+y.

Can you use the hills graphic as the +y map? I think that improvements look much better on the hill graphics than they do on the peaks graphics.

So, we could have:
i) desert waste and deep desert at h0
ii) rock and rugged/badlands and maybe dunes at h1
iii) hills/peaks or mesa at h1+y
iv) saltpan, graben and sinks at hq-x
 
By reskinning rivers, you might even be able to add small wall-like geological formations on land!

Using rivers as a graphical only feature is an interesting idea. Might have to try that.

Ahriman said:
So, if I understand it correctly, we can have a height level h0, a height level h1, and a modifier h1-x and a modifier h1+y.

So, we could have:
i) desert waste and deep desert at h0
ii) rock and rugged/badlands and maybe dunes at h1
iii) hills/peaks or mesa at h1+y
iv) saltpan, graben and sinks at h1-x

Yep.

Ahriman said:
Can you use the hills graphic as the +y map? I think that improvements look much better on the hill graphics than they do on the peaks graphics.

I'm not sure the heightmaps are interchangeable. In any case the "peaks" are the equivalent of the Ridge terrain in Planetfall and much smoother and less pointy. Some of the improvements, etc, might need deep foundations, etc to avoid the hovering in space problem:
Spoiler :
attachment.php


I'd probably reduce the fPeakScale somewhat which would also help.

Anyway, here's an experimental patch if you want to see what all this looks like. Turn all tiles to ocean in WB and take it from there...

Download Link
 
I'm not sure the heightmaps are interchangeable. In any case the "peaks" are the equivalent of the Ridge terrain in Planetfall and much smoother and less pointy. Some of the improvements, etc, might need deep foundations, etc to avoid the hovering in space problem:

That sounds fine. Maybe we could rename this mesa, it looks mesa-ish.
 
Back
Top Bottom