[MapScript] Erebus Continent

I don't get it. What are the rules I have to keep in mind for setting valid grid sizes?

I tried to generate some giant maps with 48x30 and 45x28 (this is the aspect ration you mentioned earlier in the thread yourself) for example, but everything I tried resulted in this python exception:
Code:
Traceback (most recent call last):

  File "ErebusContinent", line 3388, in generatePlotTypes

  File "ErebusContinent", line 2044, in initialize

  File "ErebusContinent", line 2143, in createPlotMap

IndexError: array index out of range

That's the last map script I have problems generating larger than huge maps with and instead of trying to figure out the reason for the exception myself I thought I ask the creator/modifier, if he has an hunch. :)
 
Hard to guess while I'm at work :)

Try removing the custom grid sizes from the map script, assuming that you're using an XML change for the oversize map, and see if it works. I doubt it, but it's easier than sending you back-tracking through the plot generation code into the map resize code to see if it's not properly calculating the size for your larger map.

I can try to take a look at that tonight for you. Actually... you know it might be tied to the way Cephalo was pulling the world size out of the gridsize and storing that value. Since this was designed for Colonization and the grid is different there (1 grid = 1 tile in Colonization, 1 grid = 4 tiles in Civ4).

To bad it's working on all the other scripts or I could just blame it on your method :)
 
Im just curious why you don't like wrapping on this kind of maps??

I only play cylinder shaped maps.

Great mapscript, could become a favorite of mine.
 
I like to play on a different scale where the map represents a part of the world but not the entire world. Thats the main reason that I changed the climate code in this one and adjusted the latitude ranges and then finally added the ability to control climate specific terrain (tundra, desert and jungle) individually.
 
1.4 is uploaded.

Maps with wrap enabled will look exactly like the flat maps (water on all edges).

Maps with y-wrap enabled can have ice in the water along what would normally be the poles, it's sparse enough to allow multiple passages through it so it's mainly there for flavor since the land in that area is frozen as well. The exact amount of ice is haevily influenced by the tundra settings.

You have the option of forcing all of your starting units to appear on the same tile.

Still no idea why Jean's oversized map doesn't work. I'll have to spend some more time digging around in there.
 
great job on 1.4. the only serious issue I notice is that it seems like on default mountain setting there are way too many hills. they definitely outnumber flatland tiles by more than 2/1 , maybe even 3/1 ( maybe even more??? I'm not very good at extimating proportions :lol: ), which hampers growth ( it's already hard enough on 100% grasslands/hills areas, and it gets even worse with any other terrain... nobody likes to be forced to spam windmills :lol: ) . I noticed some areas and islands that were 100% hills. so I suggest to tone down the percentage of hills significantly. aside from that, desert is still very rare on default setting ( like, 5 tiles on the whole map? admittedly these were all duel size though, so it may be more abundant on bigger maps, I don't know. if that's the case, maybe desert amount could be tweaked to better scale with mapsize? ) . even increased desert doesn't give A LOT of desert, it gives about 20 tiles on a duel map. which would be fair for the default amount imho. besides, these duel maps are not as tiny as one would expect :D ice OTOH could use a slight decrease at default imho. about 70 tiles of ice at default setting, which means a lot of crappy terrain. basically, around 30% of the map is going to have a climate that will cause land tiles to be ice . this seems a bit over the top, but maybe I'm just an ice hater :lol: good thing is that I've never had a civ spawn in there so far, all starts have been good. don't know if you changed something in the starting spot selection code, but it's giving great results :goodjob:

aside from all the suggestions I posted earlier in the thread, I'd like to elaborate a couple more:

1) to make sure that it's impossible for a civ to start imprisoned in a tiny area due to peaks, maybe peaks could be removed from the starting BFC? it's rough I know but it might work. besides, peaks are as bad as it gets as fas as terrain is concerned. unworkable, unimprovable terrain :D

2) an option to tell the mapscript to get rid of islands that are less than 10 tiles would be nice. they look good, but towers/lairs/unique features spawn there and sometimes AI settle them crippling their economy. 10 tiles is arbitrary, but it's the same as the max number of tiles at which a lake is considered freshwater so it seems kinda fair. besides, a 10-tile island allows a decent city on it, which is great imho. Colonies! :D
also, you could tell the mapscript, if many tiny islands are close together, to merge them together into a bigger island instead of getting rid of them altogether. not sure how hard that would be to code, but would be nice :)

thanx for providing us with an ever-improving mapscript and being always willing to listen to suggestions :goodjob:

edit: yep, the hills/flatland ratio definitely seems way off. a 45-tile island had 4! tiles of flatlands ( and no peaks, so it shouldn't have been the hilliest place on earth :lol: ). the areas with lots of flatlands are fine ( i.e. many flatland tiles, some hills ), but the hill heavy ones should definitely get a lot less hills imho ( currently they have a ratio of hills over flatland that borders 90% . ouch! highly inhospitable :lol: ) . rivers could also use a slight decrease, I love them but having so many of them makes them feel less special :)
 
umh, after re-reading my last post I think it sounds harsher than it should... it's just that I'm a perfectionist and this one has the potential to be the Ultimate Mapscript, it just needs a couple finishing touchs :D

anyway, I've generated a few more maps with various settings ( all duel size. sorry, but my cpu is kinda crappy and I hate to wait lots of time between turns, so I have to settle for that :lol: ) . the "fewer mountains" setting definitely improves the hills/flatlands ratio imho, so I suggest that the "default mountain" setting should give the amount of hills that "fewer mountains" currently gives. similar for tundra, the default setting should give the amount currently given by "decreased tundra" imho. while default desert amount should give the amount of desert currently given by "increased desert" , again imho. there is another problem with deserts though: even "increased desert" behaviour seems very unconsistent. sometimes it gives a nice amount of desert, 20 tiles or so. sometimes it gives a lonely, single tile of desert in the whole map. weird. the amount of jungle looks fine as it is.

on a side note: you might want to set the option to have all units start on the same tile ON by default. nothing major, but it does prevent having units on different continents, while the default civ behaviour's only strength seems to be "I'm used to it being this way" imho :lol:

another idea/suggestion: what about having the icy area be somewhat circular instead of a "strip" of land? a semicircle on the middle north part on the map and another on the middle southern side of the map to be more precise, so that it gives the illusion of a pole ( and in toroidal maps it would REALLY be a pole. sure, having only 1 pole instead of 2 is a bit weird, but less then the "icy strip" is right now imho, and anyway there's only so much one can do with the current way Civ handles maps and wraps :D ) . I hope you get the point I'm trying to make since english is not my mother language :lol:

edit: I hope I didn't forget something I previously wanted to mention. I guess not though. if something else comes to mind, I'll post again later :D
 
[to_xp]Gekko;7732324 said:
... good thing is that I've never had a civ spawn in there so far, all starts have been good. don't know if you changed something in the starting spot selection code, but it's giving great results :goodjob:
Ice hater!!!!!! :)
I run all my test on standard size so yeah, I neglect the little ones. On a standard map it's all but impossible to found a city somewhere that has either all hills or all flat lands. I put some code in for that specifically but it looks like resizing it to smaller than standard maps distorts the underlying detail map too much to make a difference, I'll see if I can scale that better.

I did make one minor change to starting plots, on high cohesion maps I force all civs to start on the same landmass. I was going to tweak some of the other code but I need to dig around and see what functions FalvorMod overrides.

[to_xp]Gekko;7732324 said:
1) to make sure that it's impossible for a civ to start imprisoned in a tiny area due to peaks, maybe peaks could be removed from the starting BFC? it's rough I know but it might work. besides, peaks are as bad as it gets as fas as terrain is concerned. unworkable, unimprovable terrain :D
Play on bigger maps! I could do that easily enough but I think Flavormod will override the normilization functions so it may only work when that's off. Or perhaps I can sneak it in before the normilization so he can't mess with it :)

[to_xp]Gekko;7732324 said:
2) an option to tell the mapscript to get rid of islands that are less than 10 tiles would be nice. they look good, but towers/lairs/unique features spawn there and sometimes AI settle them crippling their economy. 10 tiles is arbitrary, but it's the same as the max number of tiles at which a lake is considered freshwater so it seems kinda fair. besides, a 10-tile island allows a decent city on it, which is great imho. Colonies! :D
also, you could tell the mapscript, if many tiny islands are close together, to merge them together into a bigger island instead of getting rid of them altogether. not sure how hard that would be to code, but would be nice :)
Funny thing is... I added code specifically to create some additional tiny islands because on standard sized maps I never saw any and I like a few scattered around.

[to_xp]Gekko;7732324 said:
thanx for providing us with an ever-improving mapscript and being always willing to listen to suggestions :goodjob:

edit: yep, the hills/flatland ratio definitely seems way off. a 45-tile island had 4! tiles of flatlands ( and no peaks, so it shouldn't have been the hilliest place on earth :lol: ). the areas with lots of flatlands are fine ( i.e. many flatland tiles, some hills ), but the hill heavy ones should definitely get a lot less hills imho ( currently they have a ratio of hills over flatland that borders 90% . ouch! highly inhospitable :lol: ) . rivers could also use a slight decrease, I love them but having so many of them makes them feel less special :)
I'll have to find a way to scale it better. With reduced deserts on standard sized maps I can get some large deserts, increased deserts can cover a substantial portion of the continent. My guess is that the climate code doesn't have enough tiles to work with on smaller maps, since it simulates four seasons of weather the main effect is no deserts within 2-3 tiles of the coast and any large lakes, on a small map that probably excludes 90% of the map. Then again, maybe you're just unlucky and all your deserts are in the cold region and getting covered in snow :)

Thanks for looking into it anyway, I'll set Giant == Huge for now.
Later this week, or this weekend when I have more time I'll send you a PM so you can send me your current method of expanding the maps and I can run some tests at my end for you. I'm sure it's something simple that I just haven't thought of, it normally is :)
 
[to_xp]Gekko;7733127 said:
umh, after re-reading my last post I think it sounds harsher than it should... it's just that I'm a perfectionist and this one has the potential to be the Ultimate Mapscript, it just needs a couple finishing touchs :D
Nah, you used lots of smileys... so maybe somewhat psychotic but definately not harsh :)

[to_xp]Gekko;7733127 said:
... the "fewer mountains" setting definitely improves the hills/flatlands ratio imho, so I suggest that the "default mountain" setting should give the amount of hills that "fewer mountains" currently gives. similar for tundra, the default setting should give the amount currently given by "decreased tundra" imho. while default desert amount should give the amount of desert currently given by "increased desert" , again imho.

on a side note: you might want to set the option to have all units start on the same tile ON by default. nothing major, but it does prevent having units on different continents, while the default civ behaviour's only strength seems to be "I'm used to it being this way" imho :lol:
That the reason I let you control those yourself :)

If it'll help, I can add a few more levels of control to each setting. Also, if you have a set of options you prefer I can show you how to change the defults on your own, it's just a few numbers near the end of the file, nothing too scarey.

[to_xp]Gekko;7733127 said:
another idea/suggestion: what about having the icy area be somewhat circular instead of a "strip" of land? a semicircle on the middle north part on the map and another on the middle southern side of the map to be more precise, so that it gives the illusion of a pole ( and in toroidal maps it would REALLY be a pole. sure, having only 1 pole instead of 2 is a bit weird, but less then the "icy strip" is right now imho, and anyway there's only so much one can do with the current way Civ handles maps and wraps :D ) . I hope you get the point I'm trying to make since english is not my mother language :lol:

edit: I hope I didn't forget something I previously wanted to mention. I guess not though. if something else comes to mind, I'll post again later :D

I can do that, I'll have it weigh the ice chance based on it's x and y position rather than just using the y position. Not really 'semi-circular' but the net effect should be what you're looking for.
 
Funny thing is... I added code specifically to create some additional tiny islands because on standard sized maps I never saw any and I like a few scattered around.

yeah, of course that idea about merging small islands together would only be valid if that option about "getting rid of small islands" would be added in the mapscript, and enabled by the player ;)


Nah, you used lots of smileys... so maybe somewhat psychotic but definately not harsh :)

hey, after all, what can you expect from someone who has a weird [to_xp] tag in front of his screenname? what does to_xp even MEAN?? :lol:



If it'll help, I can add a few more levels of control to each setting. Also, if you have a set of options you prefer I can show you how to change the defults on your own, it's just a few numbers near the end of the file, nothing too scarey.

well, more control over the settings is ALWAYS good I guess. so if it's easy to do and you're willing to do it, go for it. hopefully everybody will appreciate and benefit :)




I can do that, I'll have it weigh the ice chance based on it's x and y position rather than just using the y position. Not really 'semi-circular' but the net effect should be what you're looking for.

AWESOME! yeah, not precisely semicircular/circular ( Anctartica looks like an elephant's head to me, for some weird reason :lol: ) , but you get the point. more ice in the center of the map, less ice as you get further away from the center, and I guess no ice on the extremes of the map cuz it would look weird? umh, I'm not sure about that. maybe the "polar cap" should only occupy the central 50% of the map. it's not easy to imagine how this should/would work since I don't think anyone has ever done something like this before, but I trust your skills :D I've been wanting something like this for a while, and now I'm really curious to see how it will work out. hopefully others will like it as well. thanx for the reply, now I'm REALLY looking forward to the next version! :goodjob:
 
I could do that easily enough but I think Flavormod will override the normilization functions so it may only work when that's off. Or perhaps I can sneak it in before the normilization so he can't mess with it :)

Grrrrrrr.... *growl* ;)

FlavourMods code for detecting choke points has the nice side effect of telling me, if there are closed up regions. Theoretically I could use this code and add some more to it to break open all these regions ...

Later this week, or this weekend when I have more time I'll send you a PM so you can send me your current method of expanding the maps and I can run some tests at my end for you. I'm sure it's something simple that I just haven't thought of, it normally is :)

You may run some tests yourself already with the version of FlavourMod I released today (2.5.0). The new version includes a slightly modified version of your map script to make it ready for giant maps, if this should become possible in the future. Take a look at the "getGridSize" method. You'll see, that I added an optional entry for giant maps there. The grid size is specified at this location. The problem: It's only working, if I add the same values as for huge maps. Change the values and you'll see.

All I did to make giant maps possible was to add a new world size to the appropriate XML file, add a constant variable to the dll to address this new world size from the dll and via python in a convenient way and last but not least hardcoded the new grid sizes into all map scripts, which change the default values.

I tried to make the generation of giant maps dynamic in the beginning (without having to change map scripts to make them possible), but this caused more trouble, than it was worth. Worst part: Some things connected to the resizing of maps are only accessible via the exe, but unfortunately as you probably know we don't have the source code for it. So I had to write some really ugly workarounds I couldn't live with in the end.
 
I saw your update after I posted that, I'll take a look at it when I have enough time to dig around for a bit longer.

Hopefully I'll have some time to work on the starting plot picker so normalization will be less of an issue.
 
Hey Seven05! Welcome back to Civ modding. I worked hard so that FaireWeather would be versatile enough to make lots of different map styles. I'm glad you were able to get that beast under control.

I'll add a couple of things that might be helpful. The gridsize must be smaller than the initial base heightmap size. The routine that converts it to the final size can only shrink the main map, it will not grow the map. Even if it did it would probably look pretty bad. If you want a gigantic size or whatever, you need to change the original heightmap dimensions to make them bigger, according to the power of 2 (possibly + 1 depending on wrap) rules.

Also in FaireWeather, I didn't have to worry at all about starting locations, which was kinda nice. However, anything based on this kind of map for Civ mods is going to have the same horrendous placement problems that PerfectWorld had. Vast regions of the world are just gonna be harsh. You might check out the placement code in PW to see how I solved many of these issues. That will not by any means prevent complaining, but it will make for fairer starts.

Soon I'm going to upgrade PerfectWorld with the FaireWeather engine, since its better and faster, and if you can wait for it, you might be able to plop that starting code right into your map as well once I've merged it all together.
 
I was wondering if you were going to pop your head in here :)

I have to say that this one was much easier to work with than PerfectWorld as far as adding small refinments and fine-tuning it for the mod specifics, although that's probably because I was so familiar with PerfectWorld and your style that this one made sense as soon as I opened it up. And it was definately faster, by a wide margin. I say was because I added a number of 'post processing' steps to clean up some issues that weren't a problem in Colonization, mostly regarding peaks and hills. The climate routines are vastly superior to the old Perfect World ones and the tectonics with your added 'ripple' effect generates some cool results. The fixed heightmap size also seems to have all but elimited the problem with PerfectWorld generating anything smaller than a standard maps that weren't as richly detailed.

I already had to resize the base heightmap once so doing that again should be easy. I figured it had something to do with the resizing so thanks for confirming that and saving me the hassle of tracking it down :)

As for the starting plot code... I started work on a wierd blend of your code from the old Perfect World and Erebus. Basically using some default rules for values that can be overriden by civ specifc rules if they exist.

As usual, thanks for the excellent starting point with you original map script :)
 
1.5 is up now. Jean, the maximum grid size the script now supports is 48x32, hope that's big enough :)

I made a lot of little adjustments to the way I fine-tune the mountains, it's still not quite perfect but the results are looking very good. In addition to strengthening the effect of reducing peaks to hills along the coastline I added a block to lake growth to prevent large lakes from creeping up against a mountain range and creating an impassable divide on a single continent. I also added a slight chance to skip creating a forest or jungle even when the conditions are perfect for one, the jungles are still very dense but you will see more open land scattered through large forests, hopefully non-elven scouts can actually move more than one tile at a time now. And, I took Gekko's idea for changing the way ice works on maps with y (or x and y) wrap enabled, the ice will be most prominent towards the center of the map and very rare at the east and west edges. And finally, I added two more levels to the desert, tundra and jungle settings to allow for more control.

The biggest change is with the way the sea level and cohesion options work. Both can now control the size of the margin around the map that will always be ocean. Raising the sea level will increase the margin, lowering it will decrease the margin. This was done to keep the cohesion settings in line since raising the sea level increased the chance of breaking up large landmasses by effectively shrinking the available area for land- this shouldn't happen anymore. Likewise, when you reduce cohesion the margins will also shrink giving the land more room to disperse and increasing the likelyhood of multiple landmasses. As a result, high cohesion, high sea level maps will be considerably smaller than low sea level maps. The amount of useful land should now be determined mostly by sea level and less by cohesion, which makes more sense to me :)
 
Thanks!

If nothing else crops up I'm going to put some time into the starting plot selection next which should be... fun :)
 
1.5 is up now. Jean, the maximum grid size the script now supports is 48x32, hope that's big enough :)

Very cool. This will definitely be in the next version of FlavourMod. And "yes" 48x32 is enough, until the request for "Bigger-than-Giant-maps" should come in. Maybe I should think about adding google maps directly as a playable map. ;)

Thanks to you and Cephalo again for working this out. I don't think there will ever be the need for bigger maps than "Giant". We are hitting the MAF threshold on the common 32 bit sytems this way already.
 
Thanks to you and Cephalo again for working this out. I don't think there will ever be the need for bigger maps than "Giant". We are hitting the MAF threshold on the common 32 bit sytems this way already.
Well, I guess I finally have a winning argument for why 64-bit is better that people will understand :)

Although a massive map with low cohesion and high sea level shouldn't really be too bad as it would probably have about the same amount of land as a huge map with medium sea level.
 
Top Bottom