[MapScript] Erebus Continent

looking forward to the next version. Any chance to add some MP option or version? With the 2.0 mapscript starts were not really balanced (jungle starts vs floodplain starts for example), resources clustered IIRC, although that might have been the double bonus gameoption, not sure. Also some civs started of very isolated which is fun and flavorful, but quite boring in MP.
 
clustered resources were caused by flavourmod adding food to starts... when using this mapscript, you should turn off "add marsh" and "normalize starts" in flavourmod settings cuz they are pretty redundant. ;)

I'm hoping Seven05 will use the FM criteria for choosing civs' starting spots, and also add in fortifications on chokepoints and flavourful positioning of unique features... that would mean you could safely turn flavourstarts off and still have all the benefits of it :D
 
When I played the Mapscript in MP I had not even merged in flavourstart gameoption ;) so it must have been something different.

I take it from your post that this issue doesn't exist anymore (or maybe it only happened with a specific option combo), great!
 
well the clustered resources issue can still happen with flavourful normalization on, but I haven't seen it much with versions after 2.0 ... it might be only chance though :lol:
 
looking forward to the next version. Any chance to add some MP option or version? With the 2.0 mapscript starts were not really balanced (jungle starts vs floodplain starts for example), resources clustered IIRC, although that might have been the double bonus gameoption, not sure. Also some civs started of very isolated which is fun and flavorful, but quite boring in MP.

I'm not sure I can ever really get truely balanced starts. I try, but it eludes me :) I evaluate every potential start, ignoring flavor entirely, for food, production and commerce using values from XML and including the bonuses already placed. I actually start with every possible city plot on the whole map, fliter out all of the ones that are too close and then delete the worst half of them. Once I have that list of decent city locations the civs run through those and pick the one they like most based on their flavor preferences. Each time a civ picks a start location they effectively delete all of potential starting plots around them (modified by their neighbor value). This last step can potentially remove some very good starting locations but since proximity is so important I want to make sure everybody has enough room to expand at least a little.

The bonus placement follows most of the rules in your XML files. When you see clusters of a bonus it's just following your rules :)

Dye in the Wild Mana CIV4BonusInfos.xml:
Code:
            <iGroupRange>1</iGroupRange>
            <iGroupRand>50</iGroupRand>
If you change those value to zero it won't cluster at all (like corn and wheat for example). If you reduce iGroupRand you'll get smaller clusters.

When placing players, I don't do anything with bonuses. I leave them alone if they're already in the plot and I don't add more.

Anyway, I can adjust civ placement in MP games to allow everybody to start closer, not sure if I can really force it though.
 
could you introduce a routine that, after all selecting of starting spots is said and done, evalutes the final product and improves subpar starts by adding what you lack ( be it food, hammers, commerce or a bit of all three ) ? ;)

basically something similar to FM's normalization, but subtler and bundled in the mapscript so that it's not redundant, and not only limited to food. should be great for making sure starts are as balanced as possible :)
 
The bonus placement follows most of the rules in your XML files. When you see clusters of a bonus it's just following your rules :)

Dye in the Wild Mana CIV4BonusInfos.xml:
Code:
            <iGroupRange>1</iGroupRange>
            <iGroupRand>50</iGroupRand>
If you change those value to zero it won't cluster at all (like corn and wheat for example). If you reduce iGroupRand you'll get smaller clusters.
thanks for the explanation, will take a look at it :)
 
I'm pretty sure the "weird" clusters are cause by flavourmod adding food, dye is supposed to clump like that in jungles ;) ( although I think in WM Stone currently can clump but it should probably behave like marble, being a strategic resource? )
 
I have some questions regarding resources. How mapscript is generating them, especially near staring positions ? To be more specific:

1. I heard resources have different value ? For example food is 1, commerce is 0.75 and seafood is 0.5 ? It this true ?

2. If above is true, does strategic resources have value ?

3. I heard that when resources are placed some free space is required between them ? Is it between same group, same resources or any resource ?

4. How is decided which one is common and which is rare ? And where I can find it ?

5. Does general 'richness' of given area affect placing resource ? For example, if there are already rice and wheat in given area, are chances for reagents lower ?

I hope it's right place to post those questions :) Thanks in advance !
 
I actually have quite a few changes to the startplot code coming in the next version. To answer your questions though...

1. Commerce is 20, food is 10 and production is 40 however food is factored against consumption using the defined FOOD_CONSUMPTION_PER_POPULATION, from your global defines xml file, which is normally 2 and that determined the number of potentially workable plots so the commerce and production values won't be skewed (buy a start surrounded by desert hills for example). 'Seafood' is weighed no differently than any other food.

2. Resources are used in calculating the food, commerce and production of a city location as if they have their improvement on them but no special weight is given to strategic resources. Mostly because it's impossible to accurately quantify the value of a strategic resource beyond the yield bonus you get when working it.

3. Resource placement mirrors default civ4 resource placement and obeys the rules defined in the xml files with two exceptions. First, when placing resource any features on the plot are ignored for resources that can't co-exist with them, a perfect example is allowing copper to be placed in a forested tile. The second is that the bUnique value is effectively ignored since I allow any resource to be placed on no fewer than 3 areas (continents/islands), this prevents certain important resources such as Mythril from only being placed on a small island but not on the mainland. Finally, although not exactly breaking any rules, I ensure that any bonus that can be placed is placed to try to get every possible resource in the game. Obviously, if you have no jungles you won't see any dye but in most cases each resource will exist somewhere at the start of the game. There is a minimum range by bonus class (so health, happiness or strategic) that Civ4 gives me, btu I don't actually remember where in the xml that is defined.

4. CIV4BonusInfos.xml

5. It looks for bonuses of the same class first and then bonuses of the same type and prevents placing them too close. Stone and Rice, for example, could appear very close as they are neither the same class nor the same type.

Now, for your question about resource placement with regards to player starting plots, I add none. The resources are placed first, then city plot potential values are calculated and then the civs pick their starting plot from that (large) list of potential city plots. How large is large? On a large map it can be over 2000 potential plots to evaluate depending on the landmass shape, peaks, etc. You can easily turn on the default civ normilization but the results may not be exactly what you're looking for. Just find these lines and remove them:
Code:
def normalizeAddFoodBonuses():
	return
Code:
def normalizeAddExtras():
	return

In the next version I've changed the way civs evaluate starting plots. They now get three tries to find a good starting plot. The first try gives flavor a higher weight than yields, the second gives yields about the same weight as flavor and ignores coastal start requirements, and by the third pass I've given up and you get a random one from the list of remaining, unassigned plots. The results are a lot better than in the current version available in this thread.
 
Wow, great answer :) Thanks for all time it took to write it :)

Just a one question, if you don't mind. Not exactly about mapscript - on pregenerated map, with cities/starting locations already set, there are high chances for not very good starting locations, right ? Because existence of cities is not taken into account when placing resources ?
 
You're welcome.

For a static map with random resources I don't believe Civ looks for cities, I don't recall seeing that in there anywhere but I wasn't actually looking for it. It would make sense for Civ to call the normilization functions in that case, but again I don't really know if it does or not.
 
Just a quick update...

Now the 'Advanced Terrain Generation' option has a number of controls over the final map. It controls the ability for ancient forests and city ruins to be placed on the map, it adds an extra pass to the plate tectonics to simulate some ancient natural disasters (ok, really it just tries to create some more areas of interest on the map) and it substantially increase the amount of plots available for the civs to pick from when selectiong their starting plot. On my PC the average time to build a large sized map (9 civs) with the advanced features enables is about a minute, with the advanced features disabled it drops to about 45 seconds.

The 'smart climate' option is up and running as well, as explained previously. I did expand it to also evaluate the number of land tiles to the far north so it will automatically adjust the tundra and snow temperature if needed. This effect is only active when one of the three smart climate options are enabled and it will not make tundra appear if you selected none, nor will it cause tundra to disappear if you had it enabled. It's still set by temperature to maintain natural placement so certain rare cases can still potentially result in too many or not enough tundra/snow on the map.

I've attached a screenshot showing pre-placed ruins and ancient forest if you're curious how it will look in the end.
 

Attachments

  • erebus2_50.jpg
    erebus2_50.jpg
    305 KB · Views: 117
that's awesome, although I wouldn't clump ruins like that... after all you can only place cities within 2 tiles of each other ;)

will it also include flavourful placement of unique features and fortifications in strategical spots? please tell me it will :lol:
 
[to_xp]Gekko;8947924 said:
that's awesome, although I wouldn't clump ruins like that... after all you can only place cities within 2 tiles of each other ;)

will it also include flavourful placement of unique features and fortifications in strategical spots? please tell me it will :lol:

Ruins are clumped to show that it was a megacity, spread across several tiles.
 
Like Valk said, it's that way to add to the feel that it was something from before the game you're in now, since you can't build cities like that they stand out from the 'normal' ruins that clutter the map (in my games anyway, because I like to raze cities). Since they're improvements they get wiped out fairly quickly as you expand anyway. I like the effect so you're basically stuck with it :p

Right now I don't have my own code in place to place the unique features and towers. In RifE the game will know you're using my map script and disable portions of the flavor mod functions that are natively supported in ErebusContinent so you'll get the best of both worlds and I don't have to duplicate his work. That code is pretty simple so I'll send a copy of it to the guys from Orbis, Wild Mana and any other mod-mods that want to include my script and flavor mod support.

This way, with flavor mod enabled, you get my civ placement, my resource placement (including things like the added mana nodes and patrian artifacts in the ruins), my placement rules for kelp, marshes, ancient forests, city ruins, roads and haunted forests and my peak and hill normilization while benefiting from FlavorMod's forest & jungle clearing, tower & fort placement and unique FfH feature placement. If you disable Flavor Mod (or play without it such as in base FfH) I handle the tree and jungle clearing and you get default FfH placement of the unique features and towers.
 
Any chance to add some MP option or version? Also some civs started of very isolated which is fun and flavorful, but quite boring in MP.
Sephi, I'll send you a PM on this in a day or two to see if you want to test it. I have redone the starting plot code completely (more on that in a bit) and I now have some possibilities regarding placement in MP games.

The new starting plot selection code is substantially faster than the old version. Previously this process too between 30-50 seconds depending on the map and now it takes about 1 second per player (faster on smaller maps). So even with all of the bells and whistles turned on it's generating large maps with 9 players in about 45 seconds for me, or about twice as fast as before.

What I do now is completely ignore yield values as defined in the XML files since I don't have to worry about supporting a wide range of mods like I would with a base Civ4 map I can make some very safe assumptions about the terrain values. The process now is much less complex, I cycle through every land plot that isn't a peak and record the data for that plot and the 24 surrounding plots (terrain type, plot type, bonuses, etc). This has the advantage of automatically culling low value plots like small islands and plots with too many peaks nearby so I no longer need to check for those cases.

Finally, each player runs through the full list of available plots and assigns a value to them based on their defined preferences compared to the plot's stored data. Once a player picks a plot they mark the surrounding plots as invalid for subsequent players to chose, the distance this covers depends on the civ's defined neighbor value. Anyway, it's fast because I build the surrounding plot data once per plot instead of assigning one value once per plot and then evaluating the surrounding plots again once per player.

The good news is that the results are MUCH better at the same time. For example, in 10 tests as the Malakim every single start was a on riverside plot in the desert, not just near river but actually ON the river.

Now, the fun part is that this allows me to expand starting plot selection rules easily. I can adjust plot values per player based on the physical location in the world for example. So it's possible to define a civ preference for 'north' and they will value plots towards the north end of the map more than otherwise equal plots in the south. So, imagine if you will taking two civs with identical preferences and having one prefer northern placement while the other prefers southern placement. This will work exceptionally well for some civs like the Doviello, I can use this to place them in the northern section of the map without burrying them deep in the tundra. Other possibilities include using the distance from the map center or edge, altitude data or even temperature and rainfall. Since these can all be applied in addition to the normal preferences it means that they'll always have a decent starting location and if possible they can be placed in a specific region of the world, no more cheap hacks using bonus types (which doesn't really work on single continent maps anyway). And, speaking of bonuses, yes I can do the same thing for bonus placement... might be fun to encourage mythril to apear closer to the map's center, iron closer to the edge, bananas in the east, dye in the west, etc.

So, expect 2.50 to be released very soon and with it some new (better) starting locations and less time staring at the 'Initializing' window when you start the game.
 
Back
Top Bottom