1. We have added a Gift Upgrades feature that allows you to gift an account upgrade to another member, just in time for the holiday season. You can see the gift option when going to the Account Upgrades screen, or on any user profile screen.
    Dismiss Notice

Saharan desertification mod-scenario

Discussion in 'Rhye's and Fall Modmods' started by Baldyr, Jun 25, 2010.

  1. Baldyr

    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.
     

    Attached Files:

  2. ICNP

    ICNP The Third Superpower

    Joined:
    Aug 17, 2007
    Messages:
    772
    Location:
    Missile Silo
    Really interesting. Makes Africa less of a Pre-determined wasteland.
     
  3. Baldyr

    Baldyr "Hit It"

    Joined:
    Dec 5, 2009
    Messages:
    5,530
    Location:
    Sweden
    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).
     
  4. civ_king

    civ_king Deus Caritas Est

    Joined:
    Mar 9, 2006
    Messages:
    16,368
    Now if only there was some way to reclaim desert in the late game
     
  5. Baldyr

    Baldyr "Hit It"

    Joined:
    Dec 5, 2009
    Messages:
    5,530
    Location:
    Sweden
    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.)
     
  6. civ_king

    civ_king Deus Caritas Est

    Joined:
    Mar 9, 2006
    Messages:
    16,368
    either convert it to plains/grasslands or add floodplains
     
  7. ICNP

    ICNP The Third Superpower

    Joined:
    Aug 17, 2007
    Messages:
    772
    Location:
    Missile Silo
    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.
     
  8. nody

    nody Emperor

    Joined:
    Nov 28, 2004
    Messages:
    1,168
    Location:
    Noviomagus, Batavia
    What if Carthage or Egypt founds a city on a plain that later turns into desert (without fresh water), will the city be destroyed?
     
  9. LuKo

    LuKo The Royal Guard

    Joined:
    Aug 28, 2006
    Messages:
    1,501
    Location:
    Poland
    It's very powerful because first you do that and later change the floodplain into plain-floodplain (4 breads+hammer+improvements).
     
  10. ICNP

    ICNP The Third Superpower

    Joined:
    Aug 17, 2007
    Messages:
    772
    Location:
    Missile Silo
    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.
     
  11. Baldyr

    Baldyr "Hit It"

    Joined:
    Dec 5, 2009
    Messages:
    5,530
    Location:
    Sweden
    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.
     
  12. LuKo

    LuKo The Royal Guard

    Joined:
    Aug 28, 2006
    Messages:
    1,501
    Location:
    Poland
    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.
     
  13. Baldyr

    Baldyr "Hit It"

    Joined:
    Dec 5, 2009
    Messages:
    5,530
    Location:
    Sweden
    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
     
  14. LuKo

    LuKo The Royal Guard

    Joined:
    Aug 28, 2006
    Messages:
    1,501
    Location:
    Poland
    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.
     
  15. Baldyr

    Baldyr "Hit It"

    Joined:
    Dec 5, 2009
    Messages:
    5,530
    Location:
    Sweden
    Oh, I see. That is actually not as easy to do dynamically as it would seem...

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

    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?

    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:
     
  16. LuKo

    LuKo The Royal Guard

    Joined:
    Aug 28, 2006
    Messages:
    1,501
    Location:
    Poland
    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).

    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.

    Oh, I though that the less deforestation means slower desertification at whole Sahara.
     
  17. Baldyr

    Baldyr "Hit It"

    Joined:
    Dec 5, 2009
    Messages:
    5,530
    Location:
    Sweden
    Ok, not game breaking then. :p

    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.
    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.
     
  18. civ_king

    civ_king Deus Caritas Est

    Joined:
    Mar 9, 2006
    Messages:
    16,368
    Is this compatible with dawn of Civilization?
     
  19. Baldyr

    Baldyr "Hit It"

    Joined:
    Dec 5, 2009
    Messages:
    5,530
    Location:
    Sweden
    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.
     
  20. fdgsgds

    fdgsgds Mustard Enthusiast

    Joined:
    Feb 16, 2009
    Messages:
    558
    Location:
    The Empire State
    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.
     

Share This Page