 |
|  |
 |
|
Prince
New Zealand
|
Mar 2001 time: 14:18
| |
|
|
This new thread is intended to pull together some of the terrain specific matters which have been spread around the ecology thread, the military movement thread, the map AI thread and the map graphics thread. I am concerned here with specific terrain issues, and in particular how they are classified and coded for D5.
In the ecology thread (which is reaching the maximum number of posts) I tried to extend Simon's model to cover the bits required. My terrain list (slightly modified here) was:
1. Landform. This is the physical shape of the land. The categories I propose are: flat, rolling, broken, massif. Visible on map.
2. Material. What the land is made of: soil, sand, rock. Visible on map, unless covered.
3. Altitude. In metres, rounded to 100.
4. Landcover. None, crops, pasture, scrub, forest, jungle. Visible on map.
5. Climate. As specified by Simon. Not visible on map.
6. Watertable. Ocean, sea, mudflats, swamp, arid. The arid category covers the various types of desert.
Linear features can be superimposed. Natural ones:
7. Rivers.
8. Passes.
Human generated linear features:
9. Roads, including causeways.
10. Railroads.
11. Canals.
Other human artifacts:
12. Urban areas.
13. Settled areas (mainly affects movements - the area is full of minor roads.)
Considering these in detail, with a heavy focus on D5:
1. Landform.
1.1. Flat. The normal flat land. Standard for D5.
1.2. Rolling. Low hills or downs. Implemented in D5.
1.3. Broken. Rough hills. Not implemented in D5 (only for lack of a terrain tile).
1.4. Massif. Mountains. Implemented in D5.
2. Material.
2.1. Soil. Normal cultivable or pasture land. Implemented in D5.
2.2. Sand. Dune deserts. Not implemented in D5.
2.3. Rock. Mountains, rock deserts. Implemented as mountains in D5.
3. Altitude.
Not included in D5, though mountains can be assumed to be highish.
4. Landcover.
4.1. None. Bare (usually rock or sand). Found on mountains, no real implementation needed.
4.2. Crops. Cropped land, usually combined with settled land. Could be implemented in D5 using one (or more) of Fiera's farm tiles.
4.3. Pasture. Grazing land. May be in D5.
4.4. Scrub. Low vegetation of little commercial value. Not implemented in D5.
4.5. Forest. Wooded areas. Hopefully implemented in D5.
4.6. Jungle. Thick, generally impassible vegetation. Not implemented in D5.
5. Climate.
Not implemented in D5.
6. Watertable.
6.1. Ocean. Blue water. Not implemented in D5.
6.2. Sea. Coastal shallows.
6.3. Mudflats. Not implemented in D5.
6.4. Swamp.
6.5. Arid. Very dry land - deserts of various kinds. Not implemented in D5.
7. Rivers.
As a lone voice crying in the wilderness for rivers to run along square boundaries (which has oh so many advantages including that rivers could then be political boudaries, as the often are in real life), I propose to postpone rivers.
Not implemented in D5.
8. Passes.
Sadly, not implemented in D5.
9. Roads.
Not implemented in D5.
10. Railroads.
Not implemented in D5.
11. Canals.
Not implemented in D5.
12. Urban areas.
An important part of D5. Incidentally they will not affect movement, after all they are only a small part of the 10,000 km2 square.
13. Settled areas.
Could be implemented in D5 if a suitable terrain tile is availbale. Would be quite nice.
Cheers
|
|
|  |
 |
|
Prince
New Zealand
|
Mar 2001 time: 14:18
| |
|
|
Some further thoughts.
Mixed landforms
I didn't really answer Laurent's comments about mixed landforms.
The model I am proposing doesn't have mixed landforms. Each map square as one and only one landform type. However, there is nothing at all to prevent the introduction of a half hill, half flat terrain type, if it was really wanted. This would, in effect, provide for mixed landforms, and any necessary movement parameters could be set as required.
Mixed landcover
In an earlier post I said that I thought mixed landcover would be important. What I had in mind at the time was forest clearance.
I have changed my mind (having hit the coding side of it). It adds considerable complexity without a commensurate gain. If it is really required to have gradual forest clearance, then partial landcover types can be introduced (25% cleared, 50% cleared, 75% cleared, for example), using the same reasoning as for mixed landforms.
Cheers
|
|
|  |
 |
|
King
St. Louis
|
Sep 1999 time: 20:18
| |
|
|
Special Landforms
Special landforms include rare landforms that are virtually unique. These would include rift valleys, trenches, volcanoes (Large ones or particulary active ones), impact craters. These are not essential and may not show up on geologically stable worlds (Class L)
|
|
|  |
 |
|
|
We can certainly forget mixed landcover for now... But I suspect it could be a problem at some point. But there are more important fish to fry at this point. I'm just warning you I may put in a bid for it at a later date.
What is the big issue on the coding side BTW?
My big reason for wanting it is that gradual economic development of a forested area without sizable outside resources will be almost impossible your way. "C'mon lads, lets start spending our hard-earned resources now so that in 350 years all of a sudden we'll get gobs 'o' farmland". This means nobody would ever do it! For a big civ its no problem 'cause you can get the same general effect by investing in one square after another. But for areas without centralized government it could make economic development ridiculously hard IMO.
|
|
|  |
 |
|
Prince
New Zealand
|
Mar 2001 time: 14:18
| |
|
|
The problem is that it requires maintenance of a weighting vector and an algorithm to calculate movement rates for mixed cover.
How about a compromise?
Two types only, one a forest type (natural cover) and one a cultivated or pasture type (agricultural cover) with a single parameter (0 to 100%) giving the proportion of the natural cover left. Movement times would be weighted similarly.
This wouldn't be too difficult to maintain.
It would need a minor mechansim to shift the parameter (presumably from 100 toward 0, though in a collapsed civilization situation it might go the other way).
In exchange, do I get edge rivers?
Cheers
|
|
|  |
 |
|
Prince
New Zealand
|
Mar 2001 time: 14:18
| |
|
|
quote: Your compromise sounds reasonable to me. The swamp-to-dry land transition is also important. Watertable handles that in your proposal I guess. Do you have that transition covered, or do we need something similar to forest/farm for drainage? |
Forgot about that one. I wonder if the distinction between land cover and water table serves any purpose. They seem to be aspects of the same thing. If I combined them, the present model (which I have actually coded) would have it available already.
The only thing that would be lost is the possibility of forested swamp, as distinct from unforested swamp, and, frankly, I do not feel that will have any reasonable impact on the game. The cover/water table combinations are:
- ocean or sea with anything
- mudflats with anything
- swamp with anything except forest
- arid tends to imply little or no cover
- crops implies no water
- pasture implies no water
- scrub could (like forest) combine with swamp
- forest could combine with swamp
- jungle, adding swamp wouldn't have much effect
- and, of course, no cover - essentially not different from arid
So I think I will use the following combined list:
- ocean
- sea
- mudflats
- swamp (a sort of generic swamp)
- nothing (equivalent to arid)
- ice (forgot this in my previous posts)
- crops
- pasture
- scrub
- forest
- jungle
Any step in the direction of simplicity is bound to get me enthusiastic.
Cheers
|
|
|  |
 |
|
Prince
New Zealand
|
Mar 2001 time: 14:18
| |
|
|
While I am on the simplifying kick, why not add the material as well. After all of the types I just listed, except "none", imply soil or no specific material (ocean for example) as the material. Adding the sand and rock options gives:
- ocean
- sea
- mudflats
- swamp (a sort of generic swamp)
- nothing (equivalent to arid)
- ice (forgot this in my previous posts)
- crops
- pasture
- scrub
- forest
- jungle
- dunes
- stony desert
Have I missed anything?
Cheers
|
|
|  |
 |
|
King
St. Louis
|
Sep 1999 time: 20:18
| |
|
|
Savana/Plains
Tundra (differs from Ice)
|
|
|  |
 |
|
|
Simplification is fine by me. But you need to get together with Simon and find an approach that seems to work out. I'll contribute to any discussion you two and others may have when I get a chance. Hopefully I'll be able to check in at least a few time while I'm on vacation.
|
|
|  |
 |
|
Prince
New Zealand
|
Mar 2001 time: 14:18
| |
|
|
quote: Simplification is fine by me. But you need to get together with Simon and find an approach that seems to work out. I'll contribute to any discussion you two and others may have when I get a chance. |
I would dearly love to get Simon's input, but he is lying low lately (apart from a quick message a week ago saying that he is back).
It is important to realize that the terrain factors I have been talking about are for the immediate purpose (D5). There is nothing in this system that prevents a more detailed breakdown, along the lines of:
- mudflates = soil, no cover, high water table
- swamp = soil, scrub cover, high water table
- dunes = sand, no cover, arid water table
quote: Savana/Plains
Tundra (differs from Ice) |
I suspect that savannah/plains is the same as pasture cover and tundra is the same as flat with no cover, but a cold climate.
Cheers
|
|
|  |
 |
|
King
St. Louis
|
Sep 1999 time: 20:18
| |
|
|
quote:
I suspect that savannah/plains is the same as pasture cover and tundra is the same as flat with no cover, but a cold climate.
|
You may be right on the Savana/Plains part (save there are usually trees in a savana and not in pastures/plains), but you are slightly off on tundra. There is cover, but it is sparse, mostly low with a few pine trees.
Last edited by Lord God Jinnai on 22-07-2001 at 19:56
|
|
|  |
 |
|
Prince
New Zealand
|
Mar 2001 time: 14:18
| |
|
|
quote: You may be right on the Savana/Plains part (save there are usually trees in a savana and not in pastures/plains), but you are slightly off on tundra. There is cover, but it is sparse, mostly low with a few pine trees. |
There really isn't a category for low or sparse cover, though scrub might go close. In any case the distinguishing charateristic is the form of cover. I would really like to think that eventually we will have every reasonable type of cover available in the game.
Cheers
|
|
|  |
 |
|
|
Hey Gary:
On getting Simon's input, if he's not available then he loses his chance for input... but you might want to say what you're doing here in the thread "Vegetation, Climate, Ecology, and Pollution" because he may only be checking that one when he does come to the site.
|
|
|  |
 |
|
Prince
New Zealand
|
Mar 2001 time: 14:18
| |
|
|
There isn't any conflict between the display terrain and the ecology model. The classes I have are displayable classes. They actually don't have anything in them right now, and are only used to determine movement. Soon (in the next few days) they will also have a pointer to the image to be used.
Each displayable class can be a composite of the factors I listed (based on Simon's model) in the ecology thread.
On a related topic, how are partial cover (27% forest, 73% crops) situations supposed to be displayed on the map?
Cheers
|
|
|  |
 |
|
Warlord
Tongeren, Belgium
|
Apr 2001 time: 02:18
| |
|
|
Hey, I'm really back, I printed out stuff and I've been working on it before replying.
1. Landform. flat, rolling, broken, massif.
I would add depression/valley/basin also. It can be used for valleys, river valleys, wetlands,coastal submerged lands, ..
2. Material. What the land is made of: soil, sand, rock.
Most areas have multiple layers in their soil. Also, very different material come to the surface on 10000 km².
Just assume : where vegetation is, is soil. Mountains are rocky.
Depressions collect soil.
3. Altitude. In metres, rounded to 100.
4. Landcover. None, crops, pasture, scrub, forest, jungle.
You can display it as no green to totally green (according to the BM classes: W(nothing), D, LC(scrub/ pasture), HC(crops), LF, F(forest) , CF(jungle)
5. Climate.
6. Watertable. Ocean, sea, mudflats, swamp, arid. The arid category covers the various types of desert.
Why not like the eco-model: Ocean (dark blue), Sea (blue), Lake (light blue), Wetland (partially blue) , Ice (white)?
7. Rivers.
8. Passes.
I think passes are better treated as geo-specials. A pass longer than 50 km seems a bit exaggerated.
9. Roads, including causeways.
10. Railroads.
11. Canals.
12. Urban areas.
13. Settled areas
Keep one percentage for terrain use: % natural/ % in human use. The % in human use can be further split up in % farmland and % buildings (depending on existing number of units of infrastructure). The dominating % would be displayed. (Or, if a city is just a partial overlay for the square, draw it on top.)
Aren't we going for composite squares? I mean drawing terrain, vegetation, water and infra independently on top of each other. Would be easier to code I think, but maybe it takes too much time to display... But it allows for hundreds of combinations with only a few overlays.
|
|
|  |
 |
|
Prince
New Zealand
|
Mar 2001 time: 14:18
| |
|
|
Great to have you back!
quote: 1. Landform. flat, rolling, broken, massif.
I would add depression/valley/basin also. It can be used for valleys, river valleys, wetlands,coastal submerged lands, ..
|
My immediate concern was for what is visible. If land is submerged it doesn't make a lot of sense to draw the underlying hills or plain then the sea on top of it.
I would imagine that "depression" is a matter of altitude, as is, say, plateau, though this does raise the question of transition from one altitude to another.
quote: 2. Material. What the land is made of: soil, sand, rock.
Most areas have multiple layers in their soil. Also, very different material come to the surface on 10000 km².
Just assume : where vegetation is, is soil. Mountains are rocky.
Depressions collect soil. |
This could certainly be included in cover, and I have done so in the code. Effectively, everything is soil, except sea, desert and rocks. Just now the only rocks are mountains, but a rocky desert is possible.
quote: 4. Landcover. None, crops, pasture, scrub, forest, jungle.
You can display it as no green to totally green (according to the BM classes: W(nothing), D, LC(scrub/ pasture), HC(crops), LF, F(forest) , CF(jungle) |
These have quite different effects in other ways, so should be made visually distinct.
quote: 6. Watertable. Ocean, sea, mudflats, swamp, arid. The arid category covers the various types of desert.
Why not like the eco-model: Ocean (dark blue), Sea (blue), Lake (light blue), Wetland (partially blue) , Ice (white)? |
The terrain is all done by way of pre-prepared images, not just by colour. So we need a specific image for every terraion type to be displayed.
quote: 13. Settled areas
Keep one percentage for terrain use: % natural/ % in human use. The % in human use can be further split up in % farmland and % buildings (depending on existing number of units of infrastructure). The dominating % would be displayed. (Or, if a city is just a partial overlay for the square, draw it on top.) |
This is already implemented, except for the buildings part. I would not imagine that, in most circumstances, buildings contribute very greatly to covering a 100 km2 area.
quote: Aren't we going for composite squares? I mean drawing terrain, vegetation, water and infra independently on top of each other. Would be easier to code I think, but maybe it takes too much time to display... But it allows for hundreds of combinations with only a few overlays. |
Unfortunately, in many cases this doesn't work. Forest on top of hills is hilly forest, and different in appearence from flat forest. This is true of any kind of vegetation - the underlying land form is visible, so if you just draw flat forest on top of rolling hills, what you will see is flat forest.
The problem, essentially, is that most of these things cover the whole square and are opaque, so you will not see what is undeneath.
Cheers
|
|
|  |
 |
|
King
St. Louis
|
Sep 1999 time: 20:18
| |
|
|
quote: My immediate concern was for what is visible. If land is submerged it doesn't make a lot of sense to draw the underlying hills or plain then the sea on top of it. |
There is such land that is below sea level.
quote: This could certainly be included in cover, and I have done so in the code. Effectively, everything is soil, except sea, desert and rocks. Just now the only rocks are mountains, but a rocky desert is possible. |
desert is soil. Ice however (such as most of antartica) isn't.
|
|
|  |
 |
|
Prince
New Zealand
|
Mar 2001 time: 14:18
| |
|
|
quote: There is such land that is below sea level. |
I didn't say there wasn't, just that it isn't visible and therefore it is pointless drawing it.
quote: desert is soil. Ice however (such as most of antartica) isn't. |
Desert is actually a state of aridity. So you can have a soil desert, a sand desert, a rock desert or (oddly enough) an ice desert.
The commonest kind of desert (by area) is rock.
To avoid confusion I have renamed desert as "dunes".
Cheers
|
|
|  |
 |
|
Warlord
Tongeren, Belgium
|
Apr 2001 time: 02:18
| |
|
|
The building % of a square isn't that important and won't be used that much (and that is why it can be calculated only when needed). I had things in mind like greenhouse gasses absorption and, more importantly, the chance for a infra to be damaged when a minor disaster occurs, be it natural or man-made (eg. meteors or bombs). It's quite easy to bomb eg. Hirosjima, but to bomb the States' nuclear control center, it needs to be found first.
In the ecology model, desert is defined as minimal BM (1-15). So are you going to record the type of soil for every square to display it? Since every square can become desert..
What will be the functions of the main map? It would be appreciated if we made useful distinctions.
Most of the time, forest will not cover the whole square ( with the trees Fiera drew anyway), so you can still see what's underneath. You probably can't distinct between flat and rolling maybe but that's irrelevant anyway since there are trees.
Also, weren't there plans to represent reliëf like SMAC?
|
|
|  |
 |
|
Prince
New Zealand
|
Mar 2001 time: 14:18
| |
|
|
quote: In the ecology model, desert is defined as minimal BM (1-15). So are you going to record the type of soil for every square to display it? Since every square can become desert.. |
There is a distinction between what is in the square, according to the ecology model, and what we show on the screen. The first affects what can happen in other models, the second is what we see. Hopefully there is a close modelling between the two, but in the immediate future (D5) we are constrained by the tile images we have available.
quote: What will be the functions of the main map? It would be appreciated if we made useful distinctions. |
Not sure what you mean here. The map shows the geography, the units and any cities, at present.
quote: Most of the time, forest will not cover the whole square ( with the trees Fiera drew anyway), so you can still see what's underneath. You probably can't distinct between flat and rolling maybe but that's irrelevant anyway since there are trees. |
Fiera's forest tile is opaque. The bits between the trees are still part of the forest.
quote: Also, weren't there plans to represent reliëf like SMAC? |
That is altitude. SMAC has a whole team of artists to produce hundreds of different tile images. We do not have that luxury.
Yet.
Cheers
|
|
|  |
 |
|
Warlord
Tongeren, Belgium
|
Apr 2001 time: 02:18
| |
|
|
With the function of the main map, I mean: what will the map be used for mainly. Military, economic or cultural matters FE. Just keep that in mind when designing the pictures.
You can also use only the trees of Fiera's forest.
But for the demo's it's better if it doesn't get too complex, I agree.
I thought I saw F_Smith mention (to Mark) in another thread that it only took deformations to do altitude, so we don't need any extra tiles.
|
|
|  |
 |
|
Prince
New Zealand
|
Mar 2001 time: 14:18
| |
|
|
quote: I thought I saw F_Smith mention (to Mark) in another thread that it only took deformations to do altitude, so we don't need any extra tiles. |
I hadn't thought of that one. Maybe the same approach will cover the various kind of hills as well.
On the other hand, the problem with lots of tiles is not the code, but drawing the damn things in the first place.
Cheers.
|
|
|  |
 |
|
Prince
New Zealand
|
Mar 2001 time: 14:18
| |
|
|
I want to make it quite clear that this post doesn't relate to D5, or even to D6 (which, I feel, should concentrate on Tech, Government, Diplomacy, an improved GUI and, above all, some AI), but maybe to D7.
I have always felt that 100km squares are too big for some of the things that could add considerably to the game.
In the discussion below "square" means 100km, "minisquare" means 10km, "microsquare" means 1km and "nanosquare" means 100m.
Certainly for combat, I favour 100m squares. This gives a mere 53,000,000,000 (on a quick calculation) for the Earth's surface. Entering the starting data would be quite a job, so, presumably, they will have to be generated automatically.
If they can be generated automatically at the start of the game, why not generate them automatically whenever they are referred to? The important point is that they have to be exactly the same every time they are generated. And the results do not have to be stored.
Here "repeatable pseudo-random number sequences" come in. See "Game Programming Gems", chapter 2.0.
At the start of the game, a normal random integer is generated as a seed for this game. It is saved as one of the parameters for the game. Then, as the map squares are generated, each gets assigned a random integer from a repeatable sequence. These numbers will be regenerated each time the game is loaded.
When a minisquare is referred to it will have x and y coordinates as integers in the range of 0-9.
Another repeatable sequence, seeded by the number for the main square, will run across the x-coordinate. That is, the first (left-most) column of squares will use the first repeatable pseudo-random number from the sequence, the next colum will use the second, up to the ninth. The same system is then used to work down the column to the correct row.
This process is then repeated for the microsquares and then the nanosquares, finally obtaining a random integer which defines the characteristics of the nanosquare.
Now yet another sequence is used to define the contents or characteristics of the nanosquare (which should be completely homogeneous - lets not go to the level of 10m squares). Also, the contents will be modified by the terrain type and any artifacts (city for example) found in the main square.
Generation of pseudo-random integers can be made extremely fast, and this whole sequence will have, on average, 27 numbers, plus one for each square characteristic.
Each time this square is referenced (and this will only happen in a battle, or perhaps during road-building) the above sequence is followed. This means that when we get to the point of displaying a tactical battle map (in the style of CtoP2), the terrain will be realy realistic, and stable.
Road and rail building could be a lot of fun, too. Also, in square rivers can exist and have realistic effects.
I suppose you might have guessed that random terrain generation has been an interest of mine for many years...
The memory, execution time, disk space, and coding requirements for all this will be minimal. You will notice that I did not mention artwork here...
Cheers.
|
|
|  |
 |
|
|
Well, we've discussed this idea before, although not with the wrinkle of not actually saving the mini-squares... which certainly makes implementation more practical. I'm going to follow my self-imposed rule of not discussing in detail things that are quite a ways off. (IMO its more like a Demo 10 topic) Do you mind shelving this discussion 'till much of the required things for the game are in place? It seems your idea could easily be a late-implemented feature if we decide we want it.
I'm with you on your thoughts for what to do on D6, but we should have a dedicated thread for discussion of those issues starting fairly soon.
|
|
|  |
 |
|
Prince
New Zealand
|
Mar 2001 time: 14:18
| |
|
|
Sure.
I just mentioned it at this stage to get it on record.
Cheers
|
|
|  |
|