Saharan desertification mod-scenario

Baldyr

"Hit It"
Joined
Dec 5, 2009
Messages
5,530
Location
Sweden
NOTE: This mod-scenario has not been updated to beta version 2 of the PyScenario utility. It still works a stand-alone mod-mod for the official version of RFC.

Features
  • This mod only affects the 3000 BC scenario.
  • Sahara isn't a full-fledged desert at 3000 BC anymore. Instead you get a randomly generated mixture of various terrain types. The North African coast is also forested ("Mediterranean shrub").
  • Desertification follows random patterns and gives a unique (not historical, but believable) results every time.
  • The desert will occasionally swallow up improvements and roads.
  • Deforestation can cause desertification, so beware!
  • Ancient Saharan settlements are present from start. Later city states and nomadic tribes are represented by city and unit spawns. (These also have random elements to them yielding different results from game to game.)
  • Terrain features and special resources spread dynamically through out the Sahara - and are later swallowed up by the desert once again...
Installation

Download the zip archive available from the link at the bottom of this post and unpack its contents into your \Sid Meier's Civilization 4\Beyond the Sword\Mods\Rhye's and Fall of Civilization\Assets\Python\ folder. You will need to overwrite the original CvRFCEventHandler.py file in order to successfully complete the installation!

Note that this mod-scenario is done with the PyScenario utility and installing it will also add the current version of the PyScenario application as a part of your main mod installation. In order to uninstall the scenario you only have to delete (or rename) the Scenario.py file though. (A complete uninstall would require to replace the CvRFCEventHandler.py file with Rhye's original version. Only then should the PyScenario.py file be deleted!)


Instructions

Playing as the Egyptians now features a growing desert around the Nile. This should have little impact on the game since the Floodplains are not affected. There are minor Civs to the west to butt heads with, but if anything the added production from Plains tiles early on makes the game easier.

Playing as the Carthaginians now makes settling the Libyan coast more precarious, as chopping down forests can have catastrophic consequences! The Numidian desert tribes need to be kept in check and there are also cities to conquer in the south.

Playing as the Malinese has gotten more interesting, as the player no longer can rely on Floodplains along the Niger banks. The inland delta is still represented though, and the Niger basin is no longer a barren desert, but the Sahel drought is a real concern - and there is no way to predict where or when it will strike! The Saharan nomadic tribes are a minor nuisance in comparison.

Scenario maker's notes
Spoiler :
This mod-scenario can easily be merged with another PyScenario script or be used as the basis for a larger scenario. Note however that if your own scenario includes an altered WBS file (map) then it would be a good idea to set it up with all the pre-existing 3000 BC terrain already in place. In that case all the Triggers marked with "preset cities" and "setup base terrain" can be deleted! This will have a positive effect on loading times and waiting time in between game turns.

If someone would like to expand this concept into other areas of the world affected by climate change in historical - or modern - times, the way to achieve this effect is to utilize the degrade() Action. (See the PyScenario Trigger API for complete documentation.) Note that in order to turn a area of the map covered with Grassland tiles into 100% Desert it is safest to use the degrade() method about 10 times over the course of the time period involved. This can be setup with one single Trigger however, utilizing the features built into the turn() Condition. (You could have it fire every 10 turns over the course of 100 game turns. Note however that most of the tiles would already be desert by the fifth or sixth iteration, but probably not every single tile.)

In this particular script I've enhanced historical development by forcing desertification in some areas after only 2-3 iterations of the degrade() method. This is easily achieved by having the terrain() and possibly also the erase() Actions fire at a set historical date.
 

Attachments

  • Sahara3000BC.JPG
    Sahara3000BC.JPG
    155.3 KB · Views: 584
  • Sahara2000BC.JPG
    Sahara2000BC.JPG
    160.3 KB · Views: 465
  • Sahara1000BC.JPG
    Sahara1000BC.JPG
    168.3 KB · Views: 451
  • SaharaAD5.JPG
    SaharaAD5.JPG
    180.5 KB · Views: 422
  • SaharaAD500.JPG
    SaharaAD500.JPG
    184.3 KB · Views: 437
  • SaharaAD1000.JPG
    SaharaAD1000.JPG
    195.5 KB · Views: 492
  • Sahara.zip
    30.9 KB · Views: 105
Really interesting. Makes Africa less of a Pre-determined wasteland.
 
Really interesting. Makes Africa less of a Pre-determined wasteland.
Well, the Sahara is predetermined to become a wasteland, but it won't cover nearly as much of Africa from start - so it does make a difference no matter which African Civ you play.

I think I forgot to mention that I believe that Rhye's interpretation of Sahara is kinda severe, so the end result with this mod-mod is somewhat less so. (The Sahel plains aren't really desert, and it used to be a savanna. But the desertification is an ongoing process...)

Please try it out yourself and report back what you thought. :goodjob: You could try out several runs of autoplay also, to see how the process differs from game to game.

I tested the script myself by watching the autoplay unfold as the Americans (well into the 17th century) - see the screen shots. To do this you need to activate cheat mode and hit ctrl + z in order to reveal the whole map (and to do this before the pop-up window disables your user interface).
 
Now if only there was some way to reclaim desert in the late game
 
Now if only there was some way to reclaim desert in the late game
Like being able to build improvements or work it? Because that sounds like a XML mod to me. :D (Supposedly the easy kind to make.)
 
either convert it to plains/grasslands or add floodplains
 
Reclaim Desert
Unlocked with Environmentalism
Converts Desert tile to Plain
Takes 50% longer for a worker to do than build a fort.

Flood Area
Unlocked with Steam Power
Converts Riverside Desert to Flood plain
Takes 50% longer for a worker to do than build a fort.
 
What if Carthage or Egypt founds a city on a plain that later turns into desert (without fresh water), will the city be destroyed?
 
It's very powerful because first you do that and later change the floodplain into plain-floodplain (4 breads+hammer+improvements).

Actually floodplain is a type that can be added to any tile, and in this case it would just be applied to the Riverside Desert, improving it from 1 C to 3B + 1C + Unhealth + Improvement

Still Strong, but in most games riverside Desert is converted to Floodplain to compensate for how weak the surrounding Desert/Plains are.
 
What if Carthage or Egypt founds a city on a plain that later turns into desert (without fresh water), will the city be destroyed?
No, only the terrain type changes. Potentially the city could starve to extinction, though... :rolleyes:

I think the lesson here is that Egypt should keep to the Nile and Carthage to the coast. :p Note that there are Oasis spawning at 1000 BC, by the way.
 
Luckily city itself produces enough food to survive (I remember civ2 times when I starved a city wanting them to work on gold tile).

[EDIT]: Great scenario! I played as an Egypt and it was fantastic. Though, some messages about desertification would be welcome.

PS. Egyptian UHV became very easy.
 
[EDIT]: Great scenario! I played as an Egypt and it was fantastic. Though, some messages about desertification would be welcome.

PS. Egyptian UHV became very easy.
Glad to hear you liked it! :king: Did you make any screen shots?

What messages would you add, you mean? (Well, you could just add those yourself and the rest of us would be able to see them ourselves! :D)

Maybe a welcome screen (popup) that explains what the scenario does - without giving up any specifics? I could add that in a future version. :king:

About the Egyptian UHV - was it all the extra early production from Plains tiles that broke the UHVs? :p Or were you able to settle Sahara early to get an edge? :confused:

If you got the time and stamina, try out more African Civs! :D
 
It would be nice when player get notified when tile within his borders became desert.
Extra food and extra hammers= getting most of wonders. Additionally the new independent city on the great spot is easily conquerable.
Two thing I didn't like: destroying improvements along with desertification (quarries, cottages) despite new spot could fit them perfectly. And too fast process of desertification despite not deforesting.
 
It would be nice when player get notified when tile within his borders became desert.
Oh, I see. That is actually not as easy to do dynamically as it would seem...

Extra food and extra hammers= getting most of wonders. Additionally the new independent city on the great spot is easily conquerable.
Ah, the coastal one? Yeah, there isn't even a garrison at start... :rolleyes: Cut it out entirely or perhaps develop it further?

Two thing I didn't like: destroying improvements along with desertification (quarries, cottages) despite new spot could fit them perfectly.
Could you explain what you mean in a little more detail? There should be some of that, yes, but I'm not quite recognizing what you're saying... What happened in your game, as you experienced it?

And too fast process of desertification despite not deforesting.
There should be no desertification at all on the coast - until someone deforests it. The pace of desertification can of course always be discussed, but its more a question of climate change than just deforestation. That is just a safeguard against desertification.

Thanks for the feedback! :goodjob:
 
Ah, the coastal one? Yeah, there isn't even a garrison at start... Cut it out entirely or perhaps develop it further?

I didn't capture it at first (I still don't know, when city (pop 1) gets autorazed with conquer so I waited till pop 2). But then it had an archer and warrior. So it's a boost but not spectacular one (build axeman instead of settler).

Could you explain what you mean in a little more detail? There should be some of that, yes, but I'm not quite recognizing what you're saying... What happened in your game, as you experienced it?

I've build quarries on Egyptian stone and marble and they got "eaten" by desert (I had to rebuild them). Cottages next to the Nile disappeared as well. Even road between capital and copper wasn't safe.

There should be no desertification at all on the coast - until someone deforests it. The pace of desertification can of course always be discussed, but its more a question of climate change than just deforestation. That is just a safeguard against desertification.

Oh, I though that the less deforestation means slower desertification at whole Sahara.
 
I didn't capture it at first (I still don't know, when city (pop 1) gets autorazed with conquer so I waited till pop 2). But then it had an archer and warrior. So it's a boost but not spectacular one (build axeman instead of settler).
Ok, not game breaking then. :p

I've build quarries on Egyptian stone and marble and they got "eaten" by desert (I had to rebuild them). Cottages next to the Nile disappeared as well. Even road between capital and copper wasn't safe.
Only a portion of this was actually intentional, so I'll have to take a closer look at my script for any future version.
Spoiler :
bImprovementSafe is the argument you need to change to a True value in the degrade() Action in order to change this yourself. Just locate the right Trigger first - the one degrading the terrain in Egypt. (I have divided this process into several spawn with their own areas.) Look at the coordinates supplied to the target() method.
Oh, I though that the less deforestation means slower desertification at whole Sahara.
Yeah, I thought so. Its nothing like the global warming feature in the game, where pollution equals climate change.
Spoiler :
The degrade() Action is actually described in detail in the API.
 
Is this compatible with dawn of Civilization?
 
Is this compatible with dawn of Civilization?
PyScenario and Dawn of Civilization are basically two different mod-mods of Rhye's and Fall of Civilization. They would have to be merged in order to work together, but I can't see anything preventing that from being done.

Note that the Saharan desertification mod-scenario is a script for PyScenario and requires the PyScenario application to work.

The reason why this hasn't been done yet, is first and foremost that neither mod-mod is completed. But anyone with some knowledge of Python could probably achieve this themselves.
Spoiler :
What you do is you copy-paste all bits of code that begins with the line #PyScenario in the CvRFCEventHandler.py file from the PyScenario application - to the corresponding file in the Dawn of Civilization modmod. I haven't tried this myself though and I don't have time to help out with any merging right now.
 
Sounds cool :)

Maybe you should include the Arabian desert in this too, since even when Rome spawns it is an un-productive box of sand. In Babylonian days, there were more plains, but desertification has since taken place.

Or maybe you could even make Spain have more grasslands, but they will turn to plains as time goes on.
 
Top Bottom