Barathor
Emperor
- Joined
- May 7, 2011
- Messages
- 1,202
"A planet script optimized to support better gameplay and enhanced with much greater customizability."
With the exciting announcement of the new expansion, Rising Tide, I feel it's time to announce my own little project to anybody who may be interested. It's called Pandorus and it's a new all-in-one map script I've been working on and testing to further enhance the game.
This actually started as a script for Civ 5, which also lead me to create the More Luxuries mod while I optimized resource distributions; and the Gibraltar, Reef, and Krakatoa mods while I optimized natural wonders in the sea.
Pandorus is still under development and I hope to release it some time this summer. In the mean time, any feedback or ideas are greatly appreciated. I'll create a list of features below that I'll continue to update over time. Some of them will have links to pages within this thread where I'll discuss the feature in greater detail and provide example images and diagrams.
- A greatly expanded Advanced Setup menu. DETAILS
Spoiler :This project is meant to be an all-in-one map script. There are a ton of options to generate a random map just the way one wants it, since we all have different preferences. Also, nearly all options can be randomized as well, if you don't want to know what type of planet you're about to land on.
Also, every single option has a helpful tooltip to explain what it does -- no more guessing. For example, even today, not everybody knows what some of the settings really affect: "The Wet setting under Rainfall decreases deserts, of course!" (wrong.) And players still get confused over the notorious World Age setting, haha. Also, there were other things that may not have been as intuitive to some, such as the Random option under Resources; Strategic Balance and Legendary Start are not included within that random selection.
Some additional options include a new Habitability setting, some new Island settings, and new settings similar to the old resource ones which control the amount of resource pods and expedition sites placed on the map. Other options have been seen before in some of the official map scripts, such as a Landmass Type option. Also, other settings have been split apart and made into their own. Now you can have abundant bonus resources, but sparse strategic resources. But, with those sparse strategic resources, you can also separately change their quantities per tile to abundant!
Like strategic balance? You can now apply that too without losing the option to do so if you choose another resource setting. You're only interested in having titanium at all starts? You can do that too instead. You prefer things random? You can unlock start areas to receive natural random placements of strategics, like in Civ 5 (the standard game restricts random strategic placements in starting areas for Beyond Earth).
On top of all that, you can also apply a Legendary Start option as well since thats now a separate setting too. Legendary too much for you? Well, there are lesser options: Great and Epic! (Though, Legendary is much more legendary in this script, since the existing one was pretty paltry and the standard starts were so desolate.)
There are plenty of ways to get the map that YOU like to play on!
Spoiler :
Pandorus: The Advanced Setup menu so far.
Unmodded game: Wow, what a fantastic start! Good thing we get to work a 3rd ring of tiles in Civ5/BE. Also, remember, strategic resources are normally restricted from start areas, so none of those will pop up in that workable area either (if you settled in place).
- Improved continent generation.
Spoiler :In the standard game, Protean (Pangaea) and Terran (Continents) maps can sometimes generate something thats probably less desired -- especially Terran.
Protean maps require an area of no less than 84% of total land for its biggest landmass. This type of area requirement works well with a fractal grain (density) of 1. But, theres also a 43% chance that the fractal grain is a 2, which can be a bit of a problem. A higher grain spreads the land out more instead of concentrating it. Since these spread out landmasses still need to meet the area requirement, you get snaky continents that are all connected to each other with lots of inland seas. When combined with the ridgebuilder method, which I believe is too strong of a blend, the result probably isnt what you were initially looking for when you chose this map option. Still, it isnt too bad.
Terran is a bit worse. If you chose this option, youre probably looking for a decent pair of continents to make up most of the map. The problem here doesnt have to do with the grain. Terran works best with a grain of 2, with a 43% chance for a grain of 1, which just makes chunkier landmasses and isnt an issue; a grain of 3 would be more problematic. The issue here is with its area requirement. Terran requires an area of no more than 58% of total land for its biggest landmass on the map, to prevent any Protean-like maps. But, theres no floor value! If that biggest landmass happens to be only 35% (a more Atlantean-like map), it still passes. This doesnt happen as often with a fractal grain of 2 or less, but its still too frequent. Also, there isn't any check for the second biggest landmass.
In Pandorus, Protean always uses a fractal grain of 1, Terran is always a 2, and Atlantean is always a 3. Floor and ceiling values for required areas are applied to both Terran (50 - 60%) and Atlantean (30 - 40%). Terran will contain an extra check for the second biggest landmass to ensure that it's of an adequate size (40 - 50%). Also, no artificial rifts are ever created between landmasses, they remain as they were generated. Also, the ridgebuilder has less effect on the main fractal and blends with a ratio of 1:3 instead of 1:2.
If you like that little bit of extra randomness, without extremes, fret not; Ive added a new landmass option called Pandorean which is basically Terran but with a slightly widened area range for more randomness (40 - 70%) and it doesn't check the area of the second biggest landmass. Lastly, Promethean is added which is basically Random and uses a random grain from 1 to 3 and has no floor or ceiling value for its biggest landmass area. I chose to call it Promethean because it goes against the set rules (the other map type settings with their restrictions) and creates a totally random landmasses as its gift to the player -- plus, it sounds a lot cooler, haha.
Spoiler :
Unmodded Game: Protean map which generated at a higher grain. The ridgebuilder really distorted them too and you can easily see the Voronoi ridgelines and where the random nodes are located.
Unmodded Game: Terran map which may have generated with a slightly lower biggest landmass area. Even if it didn't, there's no secondary check for the other landmass anyway.
- Improved mountain generation.
Spoiler :Mountains primarily have a simple role: to block movement (and vision) of nearly all troops. They can make a large, open landmass much more interesting and "seem" bigger as your units need to take more turns to get around them to get anywhere. Since these games have gone to hexes instead of squares, mountains have greatly improved in performing their role.
However, currently, they have a bad tendency to clump-up. I believe that just wastes terrain, and sometimes it even traps terrain, along with its resources. They also can create many "small" choke points. Normally, those chokes would be an interesting feature in a strategic game, but in a game with only one unit allowed on a tile, those small choke points are just no good and too easy to defend -- the scale is off.
I've created a brand new method to generate random mountain ranges intelligently on the map with a width of one hex -- all that's needed to block movement. Also, additional mountains are sprinkled close to the range to "blend" it into the terrain and make it look more natural. Though, this is still all controlled and prevents any type of excessive clumping. Also, hills will help blend the mountains in as well as they transition to flat land.
Spoiler :
Unmodded Game: A big clumpy mess of mountains and canyons! You can also spot a river error in there.
Unmodded Game: More clumps of mountains and canyons, along with horrible starting areas.
- Improved canyon generation.
Spoiler :Canyons are the same as mountains above, though more units are eventually able to traverse over them and they don't hinder vision. So, they're not as solid of a blockade. Also, they can give off yields, so they probably shouldn't clump up too much either. Clumped canyons look especially bad, compared to mountains.
I'm creating a method similar to the mountain generator which will create flowing ranges of canyons intelligently. They'll be smaller than the mountain ranges and, right now, I don't believe I'll be giving them a sprinkle of additional ones. They won't clump with mountains excessively, since they are placed according to the ripple values emitted from the placement impact of all mountains. They'll either be at a random distance range from the mountains (never too close) or sometimes they'll be adjacent to the mountain (since I like the look of the parallel canyon and mountains next to each other -- like Method C and D create in the code).
- Improved river generation.
Spoiler :For now, these methods are left to the default code. The only difference is that I place no canyons until all river generation is complete. In the standard game, canyon method D places canyons during plot generation and it messes up rivers as you can see in the images below. In Pandorus, rivers will be generated before canyons and flow freely without that extra hindrance.
Spoiler :
Unmodded Game: A bunch of river errors where a canyon disrupted their paths.
- Improved island generation.
Spoiler :Like mountain and canyons, Ive created an entirely new island generator. This method doesnt rely on fractals and very accurately produces islands to the desired amount you wish. Also, you can control the sizes of them too.
Personally, I dislike tiny islands, especially single-tile ones. Theyre just not that great in a game with one unit per tile. Well, if you feel the same way, you dont have to deal with them any longer! With the proper setting, all single-tile islands will be removed. Dont like small islands either that consist of only two to four tiles? You can use a setting which deletes all tiny and small islands. Theres even a setting where the map will only generate large islands if you wish for a mini Terra-like experience to explore the seas and colonize them first.
- Improved coast generation.
Spoiler :(Note: this may change once I get to look inside BE: Rising Tide and play it.)
Coasts now only generate a maximum of two tiles from land instead of three and have a 33% chance of occurring each time instead of 25%. I believe it not only looks a little better (less branchy and such), but most importantly, it limits sea resources from being too far out at sea. This makes them a little easier to discover from land and makes settling near them a bit more flexible. Plus, coasts are no longer that important for early naval exploration since all units can now traverse ocean too.
Also, the game's border expansion has a lot of difficulty obtaining sea resources that are three tiles from a city -- you either have to wait forever or purchase them. (I have a fix for this, which works best alongside a few DLL modifications too.) Third ring resources on land aren't too difficult to obtain since they don't have the extra water determent. Plus, you can always settle another city nearby to help pick them up as well. When you're on the coast and opposite of you is just open ocean, you don't have that support (until the expansion). In Civ 4 this was never an issue since your border pop would obtain all workable tiles at once, but the way the new system works, by evaluating tiles and obtaining one at a time, I feel sea resources should be a little closer to land.
- Improved ice generation.
Spoiler :Ice will form a little tighter to the poles and will be more solid. Land will never form in the ice region (I hate when there's land right next to the black edges of the map). Also, resources will never form in the ice region to prevent any wasted placements that are trapped inside it.
An older version I created used to prevent land from touching the ice as well, but I decided to keep things natural and less predictable instead. Though, I still may create a method which checks for ice-trapped seas and opens one side up.
- Improved resource generation.
Spoiler :Just some tweaks here and there to distribute things a little better and get them where theyre needed, especially for strategic resources. Also, default strategic quantities (per tile) may be tweaked. Right now, I believe theyre a little bit too high. Lastly, total resource placements on the map will be a little less random than they currently are and the representation of each resource on the map will be more consistently proportioned with my new placement method. For example, in the standard game, on one map there could be a total of 62 Geothermal and on the next one generated theres 99; on a map there could be 105 Petroleum and another theres 150.
- Improved affinity resource distribution.
Spoiler :The distribution of affinity resources could be much better. They tend to clump far too often and arent dispersed throughout the map enough. Also, they focus too much on certain terrain/feature types. Xenomass tends to spawn in forests frequently, floatstone in deserts, and firaxite in the tundra zones. So, in the standard game, if you start a new game with the desire to go Purity, but youre placed in the tundra, you either have to reroll the map or youre probably going to need to go Supremacy. But thats not the worst part of it. The worst part is that its predictable and you know youll have a strong Supremacy game when you see that you've landed in tundra.
With affinity resources distributed throughout the planet randomly and a bit more evenly, youll need to do a good bit of exploring before you can determine your best affinity choice. Or, maybe your best bet will be a hybrid approach if you have a good mix but no dominant resource (which would be viable in the expansion).
Also, affinity resources wont clump up the way they do now, so you can't just get lucky with a single settlement and grab a ridiculous amount of them. And because of that, you also wont get desolate areas with no affinity resources either. It wont all be absolutely perfect and evenly placed (that would be boring and predictable), but itll be less volatile than it currently is. I have methods which will place them fairly evenly but also make them look random.
Spoiler :
Unmodded Game: Elodie, got any Firaxite?
- Improved start location and wild area placement.
Spoiler :In the standard game, start locations are pretty bad. You get placed in the most infertile areas at times and/or are closely surrounded by wild areas and aliens. Also, factions are sometimes right on top of each other.
I suspect that a big reason for this is because start locations have to work with whatever is leftover from wild areas. I suppose this helps reinforce the idea that the factions made planetfall on an existing planet.
In Pandorus, each faction will be at an adequate distance from each other. The minimum distance is also slightly larger since there's plenty of room on the map.
Also, it may initially sound artificial, but start areas where youll make planetfall are determined first and then wild areas are generated off of them instead -- I've ripped out the old methods and replaced them with brand new ones in different locations of the script. So, all factions will be in fertile areas at a random, adequate distance from each other, and all will have a fair amount of space around them (roughly the width to fit one expansion city) before hitting any type of potentially heavy wild areas. This will also affect sea alien placement and you wont have krakens and gangs of sea dragons on your doorstep.
I believe the improved playability of the game and the strategic fairness to each faction will trump any initial illusion of random planetfall that usually goes unnoticed. Plus, the standard game already performs a few unique things to prep start areas as it is; this just takes it a little further.
Spoiler :
Unmodded game: Some fantastic start areas. (Good thing we'll be able to settle in the ocean in Rising Tide, because the land sucks.)
- Improved resource pod generation.
Spoiler :Just a slightly better distribution which is fairer to all factions. Previously, these could cluster up very much and give a random faction a lot of bonuses. Now, along with the better distribution throughout the map, each start area will receive a controlled amount -- the rest youll need to get out into the map, explore, and find them. So, no starting areas will receive too few or too many at the very beginning.
- Improved expedition site generation.
Spoiler :In the standard game, expedition sites are randomly placed. In Pandorus, the placements will be much more controlled and intelligent. Those valuable Progenitor Ruins will only be found deep within the wild areas of the map away from starting areas, in the snowy uninhabited edges of the map, or in remote islands one has to brave the dangerous seas to find. Alien skeletons will be next and can be found a little closer to civilization than the Progenitor Ruins as well as within the wild areas. Derelict Settlements are the next closest sites to civilized areas and represent the failed cities which stepped a little too far outside and into the wild and werent prepared. Crashed Satellites will be more random, but will still be a little more focused around civilized areas and their starts than the wild areas.
Spoiler :
Unmodded game: These lucky factions received some powerful expedition sites right on their doorstep.
- Improve aesthetics of polar regions.
Spoiler :Along with the improved ice generation and terrain blending methods, I'm also going to have forests diminish as they near closer to the poles where snow and ice are present.
I want the coldest tundra closest to the poles to really look like a desolate tundra neighboring the ice, and as you get further from it the tundra tiles look more like a taiga. For further clarification, Im not increasing forest growth in these taiga areas, itll be as it is now and up to the fractal generator. Just anything that gets created past a certain latitude will gradually diminish until it gets to the latitude where all forests are removed.
I was really disappointed that Firaxis never felt they needed to create a coniferous, cold-weather forests for their maps in Civ 5, even when I created the graphics for it. I just think it looks really bad when you have lush forests right next to snow and/or ice at the edges of the map -- especially a big clump of forests.
Also, snow will form a bit nicer and will be less patchy. I'll explain more about that below.
Spoiler :
Unmodded game: This image shows the forests right next to snow, seas trapped in ice, awkward land right next to the map border, and ugly river conversions.
Unmodded game: A lush forest right next to some polar snow.
- Improved terrain bands.
Spoiler :With ice diminished a bit, theres more room for the terrain bands. That extra room gets placed between the tundra zone and the zone where desert has a chance to generate. This gives a little more separation between the two and helps to avoid the awkward setups where desert is or nearly is touching tundra. Not only does it look a little bad, but its rough to play on with all that infertile terrain clumped together.
Plus, more subtle tweaks.
Spoiler :
Unmodded Game: Tundra adjacent to desert.
- Improved latitude determination.
Spoiler :All maps have an even height value. So, there is no middle row, just a middle border between two halves. Yet, the standard game treats the equator as a single row at a latitude of zero and works its way up and down to the polar edges. If you look at the maps, theres always an extra row of ice on the southern pole compared to the northern one.
My latitudinal calculations use a double row equator, both equal to zero, which make a nicely mirrored top half and lower half of latitudinal values. Okay, big deal, right? Well, its not huge, but what this does is it removes a row of useless, extra ice from the map and replaces it with an extra fertile, green equatorial row. Would you rather have the extra row of ice or another row within the equator filled with workable terrain, features, AND resources?
- Improved blending between terrain bands.
Spoiler :In the standard game, during terrain generation the game uses a blend fractal which helps to randomize what the generator thinks the latitude is on a plot. This is how the terrain bands created have nicely blended borders between each other. Without it, youd have a straight, horizontal stripe of snow, then tundra, etc. The blend basically alters the latitude by -0.1 to +0.1.
In Pandorus, Ive made the blending much more sophisticated so that the terrain comes out nicer. Some terrains utilize a blend which focuses inward and less outward toward the poles, some focus more outward instead of inward.
This is especially evident with the snow terrain. In the standard game, it can look patchy and too broken up since the blend goes both ways. Its too thin of a band. What I do is my blend for snow prevents any outward blending (as in, tundra blending into the snow towards the poles) and only performs inward blending so that the snow only bleeds into tundra. The blend is also slightly stronger but it is restricted as well so that it doesnt penetrate too far into tundra.
Tundra is similar and uses more of an inward blend into the grass/plains region and less of an outward. Desert utilizes an inward for its edge closer to the equator and an outward for its other edge closer to the poles to prevent too much loss of its tiles to the abundant grass/plains.
- Improved map shifting to best center landmass formations on the map.
Spoiler :To avoid any confusion, this doesn't move individual landmass formations to the very center of the map. That would be undesirable.
This simply shifts the entire map, as it is, to make the mini map more appealing to look at by preventing large areas of land from running through the wrapping edges of the map on the left and right. Also, this makes it less awkward when making selections or viewing selections on the minimap.
The default method has difficulties calculating certain landmass formations and wont choose the very best edge. My new method applies more weight to the middle columns/rows and decreases as it gets further out within each group. Also, my groups utilize a double column/row to represent the middle (with the intended map edge between them) instead of just a single one.
(Special thanks goes to whoward69 for the weight method he showed to me a while back while I was making this for Civ 5.)
- Subtle tweaks to the planet depending on the biome thats selected.
Spoiler :This certainly isnt final yet and I still need to think about it -- it's just an idea. Plus, I want to see what the expansion offers first before I design anything around this. The way the expansion makes each biome unique may make this idea unnecessary.
Anyway, what I was thinking was making additional little tweaks to the map depending on the biome thats selected -- nothing drastic. So, Arid would have slightly more desert than usual and slightly less tundra. Frigid would be the opposite. Lush would contain more forests. Primordial may have slightly less mountains, canyons, and hills due to being a young planet with less tectonic shifting which rips apart and pushes piles of land together. Fungal may contain more swamps than usual.
These modifications would be in addition to all the other settings and their modifiers. So, for example, if you were playing within an Arid biome and choose a Cold temperature setting, they would cancel each other out as if you were playing on a Lush map with the Temperate setting (with regards to those settings only). If you choose a Hot temperature in the Arid biome, youll get a lot of desert and very little tundra.
- The entire script is reworked from the ground up.
Spoiler :I'm combing through every single function involved in map generation and making sure everything is tight. Pandorus contains a single, massive data table to hold all methods, tables, and variables that I'm neatly organizing so that it's simple to view and analyze. I'm also cutting out all the unneeded fat that I'm not using and that the standard game isn't using (such as things like jungle, oasis, atoll generation; Y-wrap; city-state and natural wonder methods; etc.). Since I'm a little crazy, I'm even going as far as renaming things, like: AttemptToPlaceStoneAtGrassPlot becomes AttemptToPlaceFiberAtGrassPlot, fish becomes algae, etc.
- I'll be creating addon mods which utilize this script.
Spoiler :After Pandorus is released, I'll be creating additional, optional content for users that are interested. One adds a new affinity resource for Purity: Adamantite. Floatstone becomes Etherium and is assigned to other uses.
Another prevents the terrain conversion of rivers near snow and tundra (which also looks ugly) and instead makes tundra more fertile in the same way desert is -- with the flood plains feature (which is fortunately much more visually discreet in Beyond Earth) (flood plains may get renamed too).
Spoiler :
Unmodded Game: That's so ugly.
Another mod homogenizes the yields of terrains/features even further than Civ 5 intelligently did when it was released, for a more consistent and natural system overall (the role this plays with the script is that these new yields will be taken into consideration instead during normalization methods and such.)
- And more!