Map Resources Ideas and Discussion

Which is a good thing - it helps make each game different. That is part of the point of having animals have ranges. The fact that those ranges may not be in the game at all and that how your nation evolves does depend on the animals and plants available to it.

The ranges shoud not be based on hardcoded latitude and longitude distances though, they should be based on what the climate is like somewhere, possibly with area restrictions as 0100010 suggested.
 
The ranges shoud not be based on hardcoded latitude and longitude distances though, they should be based on what the climate is like somewhere, possibly with area restrictions as 0100010 suggested.

No such thing in Civ IV or C2C as climate. All we have is resources, terrains, terrain features and latitude and longitude. If we had access to "region" in away that allowed us to have 'evolution' groups that would be nice but we don't.
 
No such thing in Civ IV or C2C as climate. All we have is resources, terrains, terrain features and latitude and longitude. If we had access to "region" in away that allowed us to have 'evolution' groups that would be nice but we don't.

I believe we do have 'Areas' but I know that there are some possible bugs in that structure that Koshling says still need to be sorted out. Areas being 'landmasses', thus being continents thus being a perfect way to isolate 'evolution' groups.
 
I believe we do have 'Areas' but I know that there are some possible bugs in that structure that Koshling says still need to be sorted out. Areas being 'landmasses', thus being continents thus being a perfect way to isolate 'evolution' groups.
The problem is only with changing terrain in a way that changes areas after you have started the game.
Areas is what bonuses rely on when you set bArea to 1 (the bonus is then restricted to one area).
 
So theoretically we can assume Areas to be continents for the purposes of establishing the various biomes for animals right?
Some areas are continents, but even single tile islands are an area and oceans and lakes are areas as well. An area is a continuously connected area of one domain (water or land).
But you can check for area size and domain and that way get continents.
 
Then randomly assign an animal biome by continent group to each existing continent in the game and violla... kangaroos in the north but only in their continent and hanging out in their terrain regions. Buffalo roaming the great plains of some random southern continent... but all of it staying entirely more consistent in their perspective ecosystems than the method we employ now. From what you just said we could have some Arctic, Temperate and Tropical island biomes for those smaller 'areas' too. Unfortunately, I don't even have a handle on current animal spawn coding or I might consider finally splitting animals and barbarians into differing 'player' types.
 
Unfortunately, I don't even have a handle on current animal spawn coding or I might consider finally splitting animals and barbarians into differing 'player' types.
The animal spawn code is the least problem when it gets to splitting that into different players. Unfortunately there is some code that refers to barbarians as just player X, not by some method on the player.
If you want to go that way, a good deed would be to go through all code that references barbarians and split it into some categories with different methods on the player object. That way it would be possible to have some different special players like a neutral one.
 
The animal spawn code is the least problem when it gets to splitting that into different players. Unfortunately there is some code that refers to barbarians as just player X, not by some method on the player.
If you want to go that way, a good deed would be to go through all code that references barbarians and split it into some categories with different methods on the player object. That way it would be possible to have some different special players like a neutral one.

that would actually (i believe be a good thing) maybe even help me a little, cause i am working on Barbarians but cant get anything done till i get that Mongol/Barbarian Camp working.
 
Then randomly assign an animal biome by continent group to each existing continent in the game and violla... kangaroos in the north but only in their continent and hanging out in their terrain regions. Buffalo roaming the great plains of some random southern continent... but all of it staying entirely more consistent in their perspective ecosystems than the method we employ now. From what you just said we could have some Arctic, Temperate and Tropical island biomes for those smaller 'areas' too. Unfortunately, I don't even have a handle on current animal spawn coding or I might consider finally splitting animals and barbarians into differing 'player' types.

Unfortunately continent=land region does not work since if applied to Earth we would have region1 = Europe,Asia and Africa; region 2 = North and South America.; region 3 = Oceania. We currently have area1 = North America, area 2=Europe and North Africa, area 3= Asia, area 4=South America; area 5= Africa and area 6=Oceania. Which fits the animal distribution better.
 
Where exactly is the code which decides whether or not a bonus is allowed to be placed on a particular plot? (via evaluation of the terrain and feature boolean lists)

Also looking at a few map scripts they don't seem to be doing nearly as much as I was expecting them to, how reliant are they on the DLL for map creation, primarily regarding plot placement rules?

I am trying to answer or someone make this statement: "It is OK to place this bonus on ALL features, or no feature that might exist on this specific terrain." Is this supposed to be the default if no featureterrain are specificed? Randomly creating maps does not bear this out so far.

In an example of usage, I want it to be OK for mineral resources to show up on any terrain I specific regardless of feature(s) sitting above them. Or to specify exclusion rather than additions (all features except Oasis, etc.) I just need to know exacly how the code is using the lists and the <TerrainBoolean/FeatureBoolean/FeatureTerrainBoolean>1<.../> flag. Does using a zero there allow exclusion?

When taking a look at redoing the BonusInfo list to update it, to make all possible value usable that is alot of cut and pasting to add things like all rock form types to each bonus which can sit in a bare terrain that rock form types can be placed on. Make all seafood resouces capable of showing up underneath kelp, coral, storms, etc. At present you wont see combos like this because they never got individually added. Getting all this cleaned up could help in making more realistically legal places for bonuses to be placed.
 
I'm presently of the opinion that it would be faster for me to make a 3rd party map creator which randomly creates a Scenario compatiable map, of the same data structure style as the worldbuilder saves.

Question though, its been said elsewhere that multiple features per plot work but have not been enabled in the map scripts. Does not work in WB either for v29 that I've seen, but has changes been made to make a scenario load support them if the plot data contains multiple feature listings?
 
Where exactly is the code which decides whether or not a bonus is allowed to be placed on a particular plot? (via evaluation of the terrain and feature boolean lists)

Also looking at a few map scripts they don't seem to be doing nearly as much as I was expecting them to, how reliant are they on the DLL for map creation, primarily regarding plot placement rules?

I am trying to answer or someone make this statement: "It is OK to place this bonus on ALL features, or no feature that might exist on this specific terrain." Is this supposed to be the default if no featureterrain are specificed? Randomly creating maps does not bear this out so far.

In an example of usage, I want it to be OK for mineral resources to show up on any terrain I specific regardless of feature(s) sitting above them. Or to specify exclusion rather than additions (all features except Oasis, etc.) I just need to know exacly how the code is using the lists and the <TerrainBoolean/FeatureBoolean/FeatureTerrainBoolean>1<.../> flag. Does using a zero there allow exclusion?

When taking a look at redoing the BonusInfo list to update it, to make all possible value usable that is alot of cut and pasting to add things like all rock form types to each bonus which can sit in a bare terrain that rock form types can be placed on. Make all seafood resouces capable of showing up underneath kelp, coral, storms, etc. At present you wont see combos like this because they never got individually added. Getting all this cleaned up could help in making more realistically legal places for bonuses to be placed.
There is a default implementation in the DLL in CvMapGenerator which uses canPlaceBonusAt which in turn uses CvPlot::canHaveBonus. But map scripts can override that and some do like PerfectMongoose which has a class BonusPlacer doing the bonus placement.

I'm presently of the opinion that it would be faster for me to make a 3rd party map creator which randomly creates a Scenario compatiable map, of the same data structure style as the worldbuilder saves.

Question though, its been said elsewhere that multiple features per plot work but have not been enabled in the map scripts. Does not work in WB either for v29 that I've seen, but has changes been made to make a scenario load support them if the plot data contains multiple feature listings?
The WorldBuilder format loader is a Python script named CvWBDesc.py which has not been updated to include that support. In fact there have been no changes to it yet compared to base BtS so it is not even added to C2C at the moment (you will find it in the BtS Python Assets).
That script would need to be changed to read in more than one feature description for each plot and then use setHasFeature instead of setFeatureType to apply all secondary ones.
Mind though that not all gameplay mechanics work well for secondary features (nor has there been a lot of testing in that regard) and not all feature art types can be secondary features.
 
The animal spawn code is the least problem when it gets to splitting that into different players. Unfortunately there is some code that refers to barbarians as just player X, not by some method on the player.
If you want to go that way, a good deed would be to go through all code that references barbarians and split it into some categories with different methods on the player object. That way it would be possible to have some different special players like a neutral one.

hmph... I missed this post somehow.

Anyhow, I was aware of the problems you mentioned and did have exactly that sort of thing in mind for resolving them. The reason I brought up the spawning was due to the fact that this was an area I once understood but know we now do so differently to what I had comprehended previously that I'm a bit concerned that would be a tough spot for me.

Nevertheless, you're comment did make for a good reminder of what it was I'd told myself a few years ago that I'd have to do. I HAD somewhat forgotten where I'd have to begin there on that project.

Can't say I'd have this project in development TOO soon but I see the need for it growing, that's for sure.
 
hmph... I missed this post somehow.

Anyhow, I was aware of the problems you mentioned and did have exactly that sort of thing in mind for resolving them. The reason I brought up the spawning was due to the fact that this was an area I once understood but know we now do so differently to what I had comprehended previously that I'm a bit concerned that would be a tough spot for me.

Nevertheless, you're comment did make for a good reminder of what it was I'd told myself a few years ago that I'd have to do. I HAD somewhat forgotten where I'd have to begin there on that project.

Can't say I'd have this project in development TOO soon but I see the need for it growing, that's for sure.
Interesting for several purposes would be to have an XML file that describes special players, their behavior in regards to several categories of game mechanics and their relation with each other.
So you could have a neutral player for units that players are not supposed to be able to attack, an animal player, a barbarian-like player that is not influenced by the great wall and so on.

While making that XML file would not be that difficult, the main effort would be to go through all current code places that reference players and make them do the right things for the special players.
 
the main effort would be to go through all current code places that reference players and make them do the right things for the special players.

Agreed, i think the AI would just stumble and fall over on this. I believe it would need considerable SDK work needed on this:dunno:, Koshling?? What say you
 
That script would need to be changed to read in more than one feature description for each plot and then use setHasFeature instead of setFeatureType to apply all secondary ones.

Mind though that not all gameplay mechanics work well for secondary features (nor has there been a lot of testing in that regard) and not all feature art types can be secondary features.

Changing CvWBDesc.py ought to be easy. How many features per plot are allowed and how are they descriptively displayed in the UI?

What are the known difficulties with multi-feature plots? Which ones (due to art) are known to not be capable of being set as secondary features?
 
I think I recall it being mentioned somewhere of a Sea terrain, what was its intention and how far along was it in implementation?
 
Changing CvWBDesc.py ought to be easy. How many features per plot are allowed and how are they descriptively displayed in the UI?
No limit, the description is just added to where the feature name is now with more /.

What are the known difficulties with multi-feature plots? Which ones (due to art) are known to not be capable of being set as secondary features?
If you check the CIV4ArtDefines_Feature.xml file, any that have TileArtType that is not TILE_ART_TYPE_NONE will not work and any that have bRiverArt set will not work either.
 
Top Bottom