[MapScript] Erebus Continent

Increasing the bonus value tilts the starting plot preference away from flavorful and towards balanced. It's the same net effect as reducing the various terrain and feature values, just easier to do with a single value than with a bunch of different ones. So much like those settings change a few specific terrain values for a couple of civs (e.g. Doviello) this works to lessen them all across the board.

The fun part is when you make a change and test it and it looks great in the first nine tests and then does something wacky in the tenth :)
 
nine times out of them good seems good enough. everything should be fine, I don't plan to use any outrageous values as I know the default ones were put there by someone who clearly knew what he was doing way more than I do :lol: just a little tweaking to make it more the way I like you know :D

thank you very much! I'll now go home and see what I can do with this knowledge I gained. I'll let you know how my evil experiments worked out :D
 
it was a half success!

I've tweaked a bit some of those values you mentioned and the results seem excellent. problem is, it throws a python exception complaining that Edgemod gets called before it's defined or something.

I thought that was caused by setting the edgevalue to +1 instead of -1 like you suggested to try, but when I get rid of the +1 it still gave me the same error.

I'll probably end up using it without the +1 anyway since with it it seemed to force civs on the edge TOO much, the spacing between them is still fine even without it.

any idea what's wrong here? I edited it for Limited flavour so if you do test it out choose that option. thank you very much in advance :)
 

Attachments

  • ErebusContinent.rar
    46 KB · Views: 131
Change:
Code:
					if plotRules > 0:
						northMod = 1
						westMod = 1 + shuffledPlots[m].westValue * westFlip
						if plotRules > 1:
							value += shuffledPlots[m].bonusValue * 2
							edgeMod = 1 + shuffledPlots[m].edgeValue * civPref.edgeValue
					else:
						northMod = 1 + shuffledPlots[m].northValue * civPref.northValue
						westMod = 1 + shuffledPlots[m].westValue * civPref.westValue
						edgeMod = 1 + shuffledPlots[m].edgeValue * civPref.edgeValue
To:
Code:
					edgeMod = 1 + shuffledPlots[m].edgeValue * civPref.edgeValue
					if plotRules > 0:
						northMod = 1
						westMod = 1 + shuffledPlots[m].westValue * westFlip
						if plotRules > 1:
							value += shuffledPlots[m].bonusValue * 2
					else:
						northMod = 1 + shuffledPlots[m].northValue * civPref.northValue
						westMod = 1 + shuffledPlots[m].westValue * civPref.westValue

You found the exception others had pointed out that I didn't notice, so now I have to upload a fix :)
 
always glad to help :lol:

I also had another, non repeatable python exception a short while ago, too bad I forgot to take a screenshot. it was complaining about unable to find new world or something like that O.o
 
umh, is this code right in 2.71?

Code:
					if plotRules > 0:
						northMod = 1
						westMod = 1 + shuffledPlots[m].westValue * westFlip
						if plotRules > 1:
							value += shuffledPlots[m].bonusValue * 2
							edgeMod = 1 + shuffledPlots[m].edgeValue * (civPref.edgeValue - 1)

unless I'm mistaken, this means that only minimal flavor gets the "resources are worth more" effect and the "civs start closer to the middle of the map" effect. isn't it supposed to apply both to limited AND minimal?

I'm also not sure what
Code:
						northMod = 1
						westMod = 1 + shuffledPlots[m].westValue * westFlip
does, could you clarify? :)

it looks like it would apply to both limited and minimal. or does > actually mean >= in the code? if so, than that plotrules > 0 is kinda pointless since it applies to everyone, and also setting northmod and westmod before and changing it to something else immediatly afterwards seems pointless.

but most likely I'm missing something obvious here :lol:
 
going on with my experiments, so far the tweak that gives the best results consistently seems to be doubling the minimum space between civs to 16.

I have another questiong though: would it be possible to change smart climate override settings so that instead of completely removing a terrain from the map, the most it can do is set it to "low" , or whatever the stage right above "none" is? that would a lot better imho. the effect on the amount of settable land would be very similar, but it would not remove some resources from the map altogether.

for example, if I'm playing the Ljosalfar with that setting on a map with no illian or doviello, I will never be able to build fyrdwells because there's not gonna be any deer, which sucks. also taking out all jungle resources unless the clan is in the game is pretty sad.

imho this small tweak would make the override settings a lot better, since it would take out the big drawback without changing the overall effect too much.
 
[to_xp]Gekko;9477553 said:
it looks like it would apply to both limited and minimal. or does > actually mean >= in the code? if so, than that plotrules > 0 is kinda pointless since it applies to everyone, and also setting northmod and westmod before and changing it to something else immediatly afterwards seems pointless.
You have to think of counting starting at zero, not one, then everything starts to make sense :)

So the plot rules are 0 (full), 1 (limited) and 2 (minimal). You can step through the code pretty easily from there as long as you pay attention to the indents. And yes, in that portion fo the code minimal flavor is the only one getting the doubled bonus value.

The reason you'll see variabled defined and then changed is because of that 'if statement' which is something that won't always happen. Funny that you don't understand that bit when that is what caused the exception you pointed out for me :)

Unfortunately, I haven't done anything with this script in so long that I can't remember if I was testing things in 2.65 or found that something wasn't working as desired and tried a different approach. So the code that is there now is NOT flipping starts between east & west except in minimal flavor. I use the check against that option in a few places though, not just in that step so it has some other effects.

[to_xp]Gekko;9479916 said:
going on with my experiments, so far the tweak that gives the best results consistently seems to be doubling the minimum space between civs to 16.
You may want to double the neighbor values too, well if you want it to be noticeable when a civ wants to start close to or away from other civs.

[to_xp]Gekko;9479916 said:
I have another questiong though: would it be possible to change smart climate override settings so that instead of completely removing a terrain from the map, the most it can do is set it to "low" , or whatever the stage right above "none" is? that would a lot better imho. the effect on the amount of settable land would be very similar, but it would not remove some resources from the map altogether.
Yes it's possible, but I'm at work so I can't tell you exactly what the code is. The code you will want will be up nead the top of the file, just past all of the basic definitions. If you start up top and search for "JungleTemp" it will be at the second or third occurance of that.

Personally, I never used 'Override' because that defeats the purpose of having all of those climate controls in the first place.
 
The reason you'll see variabled defined and then changed is because of that 'if statement' which is something that won't always happen. Funny that you don't understand that bit when that is what caused the exception you pointed out for me :).

right, silly me :D I see what you mean, if somebody changes that code it might cause python exception saying that the variable gets used before it's defined, just what happened to me :lol:

Unfortunately, I haven't done anything with this script in so long that I can't remember if I was testing things in 2.65 or found that something wasn't working as desired and tried a different approach. So the code that is there now is NOT flipping starts between east & west except in minimal flavor. I use the check against that option in a few places though, not just in that step so it has some other effects.

if I read it right, it flips east/west on both limited and minimal but not on full flavor. northmod = 1 means that everyone prefers to start in the north, right? that doesn't look good imho, my guess is that you were testing something. methinks the northmod should get removed and the westflip should apply to all flavors. I'll test that and report back :lol:


You may want to double the neighbor values too, well if you want it to be noticeable when a civ wants to start close to or away from other civs..
good point, I'll consider it. I still have to see if I want to keep it or remove it, same thing with the AIsettlermove value in Wild Mana actually.


Yes it's possible, but I'm at work so I can't tell you exactly what the code is. The code you will want will be up nead the top of the file, just past all of the basic definitions. If you start up top and search for "JungleTemp" it will be at the second or third occurance of that.

Personally, I never used 'Override' because that defeats the purpose of having all of those climate controls in the first place.


I'll take a look at it later then. how does it defeate the purpose of the climate controls? what it does is actually set them based on what civs are in the game, I love that :lol:
 
[to_xp]Gekko;9480044 said:
if I read it right, it flips east/west on both limited and minimal but not on full flavor. northmod = 1 means that everyone prefers to start in the north, right? that doesn't look good imho, my guess is that you were testing something. methinks the northmod should get removed and the westflip should apply to all flavors. I'll test that and report back :lol:
No, since ???Mod variables are multipliers setting it to 1 makes it do nothing. If you look at their use you'll see they are set to 1+ something (something can be negative, adding a negative is the same as subtracting). So NorthMod = 1 is telling the code to ignore the tiles north value because in the end the value will be multiplied by the NorthMod, or Value * 1 which means nothing changes :)

[to_xp]Gekko;9480044 said:
I'll take a look at it later then. how does it defeate the purpose of the climate controls? what it does is actually set them based on what civs are in the game, I love that :lol:
It completely overrides them, hense the name. So you can set them to whatever you want and it will make no difference, in other words it defeats the purpose of having them in the first place. I just added that setting so you could have world climates defined entirely by what civs were in the game. If you just want a world climate that is adjusted based on what civs are in the game you'll want to modify the selections, not override them.

[to_xp]Gekko;9480100 said:
ouch, that override climate thingie is more complicated than I thought. not sure how it works :D
Well, it's not too complicated :)

Each setting for each climate options replaces one of the defines. When overriding them it calculates the value. So let's say you're looking and the TundraTemp and the default is 0.30, the minimum is 0.20 and the max is 0.50. Since the default would be used if half of the civs in the game had a preference for tundra/snow more civs will adjust it upwards to a max of 0.50 and fewer will adjust it downwards to 0.20 unless there are none in which case it will use 0.0.

What you'll see is that there is first a check to see if tundra (or desert or jungles) is needed and if so it calculates how much, if not is turns them off. So what you can do is change the 'off' value to match the values used for the minimal settings. The statement should be something like- if not JungleNeeded:
 
See, it's not as hard as you thought, just takes a little getting used to :)

So you'll be making map scripts for Civ 5?
 
are you open to suggestions about the flavor values you gave to the various civs? I'm curious to hear your opinion about some things:

1) with default civs values, plains is worth 1 and grassland/jungle is worth 1. this seems wrong. plains may not be the best thing ever, but at least you can do something useful with them even before bronzeworking. jungles are nasty. also, marsh have -1 and tundra have -2 but they are equally bad. snow could get -3 since it's even worse than tundra.

2) most civs have 0 for peaks, while peaks are actually something you don't want in your BFC and should have a negative value imho.

3) dwarves have 2 value for peaks. this only makes sense for RIFE and possibly Orbis. in base FFH2, dwarves dislike peaks just like anyone else, so this seems wrong.

4) Lanun have edgevalue 1, northmod= -1 and 0 value for jungles. this means they very often start right in the middle of a whole bunch of nasty jungle.

5) full flavour values are devastating for the clan of embers on base FFH2. they should start on the edge of the jungle, not in the middle of it. it's the same for doviello and illian really. in Rife and/or Orbis, their full flavor values make sense as they can do just fine in tundra. in base FFH2, they will consistently get crappy starts that will consistently make them pushovers.

6) Illians have only -1 for deserts, whereas Doviello have -2, which seems wrong.

7) this is more of a suggestion: you could add a floodplainsvalue. this would allow to set desert to a larger negative value since it really sucks, and have floodplains with a positive value to correctly offset that when present. similarly, a coastvalue, oceanvalue and kelpvalue would be nice to tell the script that coast is better than ocean, and kelp makes water better. could also be useful for the Kurios that would rather be inland than on the coast, but that could also be done with a edgemod = -1 value I guess.

8) another suggestion: some civs lack flavourvalues, but they could get some. bannor could get a positive neighbour value since they are militaristic. elohim and grigori could get a negative neighbour value since they're pacifists. and calabim could get a flavour for high food output which is excellent for feasting... greedy vampires :D

9) yet another suggestion: you could add an option for "starting distance from other civs" . some people like crowded starts, some like isolated starts. you could have 3 levels with the current values being default, one level that makes civs start closer to each other ( edgemod = -1 like minimal flavour currently does ) , and one level that makes them start more distant ( double the minimum distance values ) . this one would be an excellent option to allow people to tailor the map to their tastes imho.
 
whoa! this has gotta be the weirdest thing I've seen yet. this is an UNEDITED 2.71 map with limited flavor. I have no idea how the orcs with their northmod= -1 and edgemod = -1 ended up there, especially considering both the doviello and the illians were in the game O.O
 

Attachments

  • ukg.jpg
    ukg.jpg
    467.4 KB · Views: 130
[to_xp]Gekko;9487844 said:
1) with default civs values, plains is worth 1 and grassland/jungle is worth 1. this seems wrong. plains may not be the best thing ever, but at least you can do something useful with them even before bronzeworking. jungles are nasty. also, marsh have -1 and tundra have -2 but they are equally bad. snow could get -3 since it's even worse than tundra.
Don't forget that you have other factors that come in, such as rivers, and that you're looking at 25 tiles at a time, not one at a time. Since plains tend to be near tundra and desert it's highly unlikely that you'll have an area of 25 plains tiles values the same as 25 jungle tiles, even on huge maps, and even in that extreme case the likelyhood of not finding a better 25 tile area with at least a few grassland tiles is pretty slim.

[to_xp]Gekko;9487844 said:
2) most civs have 0 for peaks, while peaks are actually something you don't want in your BFC and should have a negative value imho.
Even on full flavor maps a good portion of surrounding peaks are changed to hills around the starting plots. You can easily change this to a nagative value. In the end it boils down to peaks being in the 'high' areas of the maps so a nagative value for peaks pushes those civs into areas that are more flat.

[to_xp]Gekko;9487844 said:
3) dwarves have 2 value for peaks. this only makes sense for RIFE and possibly Orbis. in base FFH2, dwarves dislike peaks just like anyone else, so this seems wrong.
Again, many of those peaks will be removed when cleaning up the final starting plots, the difference here being that civs with a positive value for peaks (hills work the same way) will clear then the opposite of how other civs do. So a civ with no preference for peaks will remove all peaks adjacent to their starting plot, a good number of them one tile away and a few two tiles away. A civ with a positive value will remove all of the peaks 3 tiles away, a good portion of the ones two tiles away and only a few of the adjacent ones.

[to_xp]Gekko;9487844 said:
4) Lanun have edgevalue 1, northmod= -1 and 0 value for jungles. this means they very often start right in the middle of a whole bunch of nasty jungle.
In the off chance they do start in jungle, they're on the coast so it's pretty easy for them to recover and expand. Any other civ that starts in the jungle is basically done. They still hate marshes so in practice they do not start in the jungle often, if you're using the smart climate they will almost never start in the jungle because the civs that prefer it will already be there. The only time they really start in the jungle is when there is nowhere better to start, all things considered it's substantially better than starting in the tundra.

[to_xp]Gekko;9487844 said:
5) full flavour values are devastating for the clan of embers on base FFH2. they should start on the edge of the jungle, not in the middle of it. it's the same for doviello and illian really. in Rife and/or Orbis, their full flavor values make sense as they can do just fine in tundra. in base FFH2, they will consistently get crappy starts that will consistently make them pushovers.
That was your idea :)

Good luck getting them to start only on the edge of a the jungle even when you know the jungle will be in the southern portion of the map.

[to_xp]Gekko;9487844 said:
6) Illians have only -1 for deserts, whereas Doviello have -2, which seems wrong.
Desert will never appear next to snow and rarely anywhere near tundra. Unlike most civs, the Illians can actually survive a desert start once they spit out a few temples (even easier in RiFE).

[to_xp]Gekko;9487844 said:
7) this is more of a suggestion: you could add a floodplainsvalue. this would allow to set desert to a larger negative value since it really sucks, and have floodplains with a positive value to correctly offset that when present. similarly, a coastvalue, oceanvalue and kelpvalue would be nice to tell the script that coast is better than ocean, and kelp makes water better. could also be useful for the Kurios that would rather be inland than on the coast, but that could also be done with a edgemod = -1 value I guess.
Rivers are handled differently, this was a problem with the original method uses that worked off tile yields, flood plains are very good so many player starts would be in the desert. Rivers can substantially increase the value of a starting plot but only if the civ has a preference for that plot type to begin with. So if you like deserts the presence of a rive will make you like that plot a LOT but if you don't like desert it means nothing. The same is true for every plot type. Likewise, oceans are handled differently, those values are calculated based on the civs preference for a coastal start.

You really don't want to use large values for any of those values. First, you have to remember that you need to look at 25 tiles at a time, not one. Second, you have to remember that you need to consider the entire map and all civs, not one at a time. It is mostly irrelevant what a single tile is worth, one or two desert tiles in your BFC is not going to ruin a city but making them absolutely forbidden means that you will have fewer starting locations to consider and if you run out then whoever hasn't picked their spot yet is going to get shafted... hard.

Next time look at the map and figure out the value of the start tile and the 24 surrounding tiles, then look around at other places on the map and do the same. What you'll find is that you will have a lot of potential starts with identical values despite their differences, that's a good thing. ;)

[to_xp]Gekko;9487844 said:
8) another suggestion: some civs lack flavourvalues, but they could get some. bannor could get a positive neighbour value since they are militaristic. elohim and grigori could get a negative neighbour value since they're pacifists. and calabim could get a flavour for high food output which is excellent for feasting... greedy vampires :D
No luck for the calabim, yields are not considered. The civs that work of the generic values are civs that work well with the generic values. Yes, I could have made each of them unique, but why? It's doubtful that any minor changes in there will have enough impact to be noticeable.

[to_xp]Gekko;9487844 said:
9) yet another suggestion: you could add an option for "starting distance from other civs" . some people like crowded starts, some like isolated starts. you could have 3 levels with the current values being default, one level that makes civs start closer to each other ( edgemod = -1 like minimal flavour currently does ) , and one level that makes them start more distant ( double the minimum distance values ) . this one would be an excellent option to allow people to tailor the map to their tastes imho.
Too many options already, and y-wrap breaks it.

[to_xp]Gekko;9488617 said:
whoa! this has gotta be the weirdest thing I've seen yet. this is an UNEDITED 2.71 map with limited flavor. I have no idea how the orcs with their northmod= -1 and edgemod = -1 ended up there, especially considering both the doviello and the illians were in the game O.O
Welcome to my world :)

This is the result of you only looking at one civ and not the big picture. If you have logging enabled you can see exactly what happened, in this case it was most likely that they were placed last and couldn't find anything on their first try, maybe not on their second try either in which case they just took something that was open.
 
I don't think they got placed last though. civs with a negative neighbour value choose first, then those with a positive value, then all the others right? if so, the Kurios went first, Doviello second I guess and Clan third. that's why it's so weird :lol:

about the calabim, I know there's no flavour for yields but it wold be pretty easy to do by setting high values for grassland. the sidar values, without the edgemod and the negative neighbour value, would be perfect for them imho.
 
another small suggestion: imho with reduced tundra there should be a tad bit more snow up north ( which in return means a tad less tundra ) to make the ratio between the two more reasonable. right now, with All Unique Features, you often don't get the ring of carcer and/or the letum frigus because there's just a couple tiles of snow on the entire map and they are unable to get placed. sometimes you'll see the letum frigus in the desert for example. the amount of tundra is fine, but snow becomes almost nonexistant. I think they should get removed in the same proportion under reduced tundra, but right now snow gets eradicated while there's stilla fair amount of tundra.

the same is true for marsh and jungle imho, a tad bit more marsh on reduced jungles wouldn't hurt.
 
Top Bottom