historical colonization micromod

Discussion in 'Rhye's and Fall - Dawn of Civilization' started by zinedine, Jan 9, 2022.

  1. zinedine

    zinedine Chieftain

    Joined:
    Mar 18, 2015
    Messages:
    90
    Note: added v7 in attachments. Mod now works on all scenarios.
    Added ancient colonization for greeks, carthagineans, romans, and persians, and a more expanded ancient china,

    Warning: this mod spawns a lot of cities, so the game is slower. Good single-thread CPU is recommended.

    Hi all,
    I've been enjoying this mod for years but I always thought that colonization was both slow, non-competitive and ahistorical and that europe and china especially should be more dominant to make for a more interesting and deterministic game for the experienced RFC player.

    So i present a micromod (4 files, copy paste in <GAMEPATH\Sid Meier's Civilization 4 Complete\Beyond the Sword\Mods\RFC Dawn of Civilization\Assets\Python>) that:
    - touches nothing of the gameplay or its rules, you can use it with whatever custom modifications you want/have
    - populates the map with lots of minor and independent cities representing all sorts of historical minor/native/migrant(as barb) populations.
    - allows more density in europe, mena, china, east coast, west cost, colombia, brazil, west africa, maghreb and india. Expect very dense city distributions in these historical places.
    A lot of areas in europe, china, east coast, rio-sao paulo, colombia, india, etc are heavily buffed and contain flood plains and extra seafood to historically boost food.
    - has some small touches to the actual map (california, south america, some mountain->hill changes, a lot more jungles and rainforst to heavy nerf brazil and west africa until biology)
    - empowers the colonizers (england, france, spain, portugal, netherlands, usa, russia, japan) with many waves of colonization, sometimes a bit before the historical period:
    - iceland: ~1000 vikings
    - canaries :1400 spain and portugal (+ caravels for ai exploration)
    - mexico: ~1500 spain
    - andes : ~1550 spain
    - carribean ~1500-1600: spain, england, france, netherlands (+caravels for ai exploration)
    - guyana ~1600 france and england
    - brazil ~1550 portugal
    - la plata ~1550-1600 spain
    - east coast ~1600 england
    - quebec~1600 france
    - canada ~1650 france and england
    - interior canada ~1700-1750 england
    - west coast ~1650 spain
    - louisiana: ~1650 - 1700 france
    - australia ~1700-1800 england
    - sub saharan africa : 1700-1800: england, france, germany, netherlands
    - south africa ~1600 netherlands and england
    - new zealand ~1750 netherlands
    - siberia multiple waves ~1600 -> 1650 -> 1700 -> 1800 russia
    - pacific ~1800: germany, japan, france, england, usa
    - continental us: ~1775-1820 blitz colonization by the us.
    This colonization mechanism helps the colonizers by continously growing them, in turn making them more stable and also slowing down the tech of their strengthened cores
    - china is stronger and starts with some independent cities (sorry for river near shanghai, didn't discover how to programmaticly change rivers)
    - japan starts with a manual distribution of cities
    - manchuria, central asia and subsaharn africa are populated by all sorts of tribes (natives and barbarians=migrant pops)
    - resource pop-up simplification: 2 waves:
    - one at 610ad, buffing up certain zones and moving resources in order to favor both historical and modern cities
    - one at 1600ad = the columbian exchange.

    Since the mod is just 4 files of mostly data, it should be trivial to modify it according to personal needs (e.g. colonies, name, time, units, etc).
    Cheers.

    Here are some pictures (no pics of colonization as that is historical):
    Spoiler :



     

    Attached Files:

    Last edited: Jan 20, 2022 at 4:41 PM
  2. freethink

    freethink Prince

    Joined:
    Dec 17, 2011
    Messages:
    439
    Location:
    Great Light House
    I am a bit confused, does your modification generate settlers for Europeans? Are your changes to the 600 AD map? I apologize if I seem dense.
     
  3. zinedine

    zinedine Chieftain

    Joined:
    Mar 18, 2015
    Messages:
    90
    it generates full blown cities (colonies). They work best for the 600AD map. The colonies are hardcoded, thus they can't be easily modifed to work with the 1700AD scenario (game turn passes their spawn), but they should work with -3000BC and 600AD.

    The resource and map modifications can, these defines in the Resources.py file control when they happen, if you change them resource placement will work in any scenario.
    constNativeDate = 610
    constColonizerDate = 1600
    constPlotChangeDate = 600

    latest -> https://github.com/dguenms/Dawn-of-Civilization/releases/tag/v1.16.4
    I'm only adding cities and moving/adding resources. The only changes in consts.py are the number of minor cities and the start location of usa.
    you might be running into a endline issue.
     
  4. zinedine

    zinedine Chieftain

    Joined:
    Mar 18, 2015
    Messages:
    90
    Added version v2. (see 1st post)

    - there's a const in Barbs.py constColonizeForHumanPlayer = false . Setting this to true enables colonization for the human civ.
    - Netherlands colonization improvement -> New Amsterdam, Elmina, Kapp Horn.
    - Some cities weren't spawning.
    - Russia now colonizes Alaska and north Siberia.
    - more jungle to indonesia and brazil
    - shuffled some resources
    - Russia has more gems in northern siberia (historical)
    - colonies come with religions (spain catholic, portugal catholic, netherlands/england/usa 75% protestant 25% catholic, france 25% protestant 75% catholic, russia orthodox, japan buddhist).


    Some pictures of colonialism (at 1825, 3rd turn of Brazil), no player involvment. 99% of the cities shown the following images are (script)spawned as colonies for the colonizers.

    Spoiler :

    Brazil flips the portuguese colonies and also colonizes the Amazon basin (Porto Velho, Manaus, Curitiba)


    Argentina flips some la plata (spanish colonies) and the cape (dutch colonies). Stanley is indy after an england partial collapse.


    maya somehow survived as a vassal, so no colombia. France got conquerors on Inca, but spain still colonized gran colombia. Some remnants of the English partial collapse.


    Mexico and a divided carribean. Netherlands have been kicked out from Europe.


    3-way fight for california. Spain retains san francisco, Mexico flipped most of the west coast. Usa will get conquerors soon (Railroad).


    usa flipped
    New york from Netherlands
    Philadelphia, boston, jamestown (washington) from England
    charleston (St augustine) from Spain
    St Louis through congress.
    Script-settled the rest.


    Us colonies, Russia colonies, England colonizes canada in the late 18th century.


    French Canada and some remnants of an England partial collapse.


    late game (early, in 1800-1820) colonization into the pacific:



    england after partial collapse in australia:


    divided new zealand and tasmania:


    south africa is colonized by:
    - netherlands, germany, indies from partial england collapse, french in madagascar, portuguese through conquerors.


    germans colonize east africa
    french, english, dutch colonize west africa. Some cities went independent/barb.


    1st colonial action of the game is in canaries and cape verde.


    Russia colonization of west siberia (by script ~1600) and arctic ocean shores (~1800)


    siberia gets script colonized around ~1650-1675


    far east gets script colonized in ~1700-1800.
    Here russia conquered the manchuria indepedent Haishenwai and Harbin. In most games china controls these cities.

     
    Last edited: Jan 14, 2022
    Hickman888 and black213 like this.
  5. zinedine

    zinedine Chieftain

    Joined:
    Mar 18, 2015
    Messages:
    90
    added v3, small bugfix.
     
  6. zinedine

    zinedine Chieftain

    Joined:
    Mar 18, 2015
    Messages:
    90
    added v4.
    - fixed constColonizeForHumanPlayer=false still spawning colonies for the human
    - major changes for the arabian peninsula (Hejaz and Asir mountain ranges, medina, fast 630 colonization)
    - some important colonies start with a great statesman. Hopefully the AI will use them for the administrative center building. Colonies with administrative bonus: Toronto(eng), Montreal(fra), Havana(spa), Buenos Aires(spa), Rio de Janeiro(por), Capetown(ned), Sydney(eng).
    - added more forests to north america, europe, russia, china, siberia to better resemble reality.
    - small modifications to west africa
    - alaska changes (anchorage moved, fur)
    - small changes around washington dc
    - mexico minor changes
    - disabled ethiopia (until 1820ad) and maya (until 600ad) respawns.
     
  7. Leoreth

    Leoreth Vampire of the Blue Moon Moderator

    Joined:
    Aug 23, 2009
    Messages:
    35,450
    Gender:
    Male
    Location:
    Paris
    Please put your screenshots into spoiler tags, they load everytime you open the thread.
     
  8. zinedine

    zinedine Chieftain

    Joined:
    Mar 18, 2015
    Messages:
    90
    added v5.
    adds Heraklion (post arab flip) and Cagliari in europe.
    nerfs Indonesia flip by delaying the natives in their flipzone to 700ad.
    minor map tweaks and resource modifications.
    england colonizes ireland in the 1300s instead of native Dublin (ai never DOWs).
    colonies ignore terrain so they should always succed even when tech doesn't allow it. (rainforest, jungle, etc).
    moved panama.
    china sea resource redistribution.

    done.
     
    Leoreth likes this.
  9. black213

    black213 Emperor

    Joined:
    Mar 12, 2010
    Messages:
    1,606
    I like some of the ideas but I didn't like how it plays over all, too many cities packed in for my taste. Performance does also take a noticeable hit with this as noted by OP.
     
  10. civcivcivcivciv

    civcivcivcivciv Warlord

    Joined:
    Feb 6, 2013
    Messages:
    269
    how can i play this mod?
    1. download RFCD1.16
    2. copy and paste micromod v.5 (4 files, copy paste in <GAMEPATH\Sid Meier's Civilization 4 Complete\Beyond the Sword\Mods\RFC Dawn of Civilization\Assets\Python>)
    3. play AD600 scenario
    ?

    i followed this step but i can't see the many cities in the screenshot
     
  11. zinedine

    zinedine Chieftain

    Joined:
    Mar 18, 2015
    Messages:
    90
    Assuming you have this version -> https://github.com/dguenms/Dawn-of-Civilization/releases/tag/v1.16.4.
    I assume that the RFC Dawn of Civilization mod is loaded from GAMEPATH\Sid Meier's Civilization 4 Complete\Beyond the Sword\Mods\RFC Dawn of Civilization\Assets\
    I have the Civ4 Complete version, non-steam, so if you have the game through steam then this might change things, honestly idk i never had steam.

    If all assumptions are correct then just pick a nation and play, cities should spawn normally. E.g. pick Moors, and enter world builder to see the map.
    If you look in Barbs.py you'll see exactly when and who spawns the cities. They are spawned automatically when the date is reached. Sometimes the spawn fails if there is a city within the vicinity of the spawn point (e.g. malaga near valencia)
    It'll look like something like this:


    tMinorCities = (
    (-3000, (73, 38), iIndependent, 'Yerushalayim', 2, iArcher, 3), # Jerusalem
    (-3000, (79, 40), iIndependent2, 'Shushan', 1, iArcher, 1), # Susa
    (-2000, (85, 47), iIndependent, 'Afrasiyab', 1, iArcher, 1), # Samarkand
    (-1600, (90, 40), iIndependent, 'Indraprastha', 1, iMilitia, 1), # Delhi
    (-1000, (102, 47), iIndependent, 'Zhongdu', 2, iSpearman, 1), # Beijing
    (-1000, (72, 44), iIndependent, 'Ankuwash', 2, iArcher, 2), # Ankara
    (-770, (59, 47), iCelts, 'Melpum', 2, iArcher, 2), # Milan
    (-350, (56, 47), iCelts, 'Lugodunon', 2, -1, -1), # Lyon
    (-325, (92, 33), iIndependent, 'Kanchipuram', 2, iArcher, 1), # Madras
    (-300, (105, 49), iBarbarian, 'Simiyan hoton', 2, iChariot, 2), # Shenyang
    (-300, (53, 48), iCelts, 'Burdigala', 2, -1, -1), # Bordeaux
    (-300, (91, 31), iIndependent, 'Tanjapuri', 1, iWarElephant, 1), # Thanjavur
    (-250, (19, 35), iNative, 'Danibaan', 2, iHolkan, 1), # Monte Albán
    (-190, (77, 44), iIndependent2, 'Artashat', 1, -1, -1), # Artaxata
    (-100, (95, 47), iBarbarian, 'Dunhuang', 2, iArcher, 1), # Dunhuang
    (100, (18, 37), iBarbarian, 'Tolan', 2, iJaguar, 2), # Teotihuacan
    (-75, (89, 46), iBarbarian, 'Kashgar', 2, iArcher, 1), # Kashgar
    (-50, (55, 50), iCelts, 'Lutetia', 2, -1, -1), # Paris
    (100, (76, 30), iIndependent, "Sana'a", 2, iArcher, 2), # Sana'a
    (107, (98, 36), iIndependent2, 'Pagan', 2, -1, -1), # Pagan
    (610, (96, 43), iBarbarian, 'Rasa', 2, iKhampa, 1), # Lhasa
    (610, (51, 37), iIndependent, 'Rabat', 2, iCrossbowman, 2), # Rabat, to resist the moors

    # Note: - most of the old world was populated into many small and independent kingdoms, so this list just populates these places
    # - natives/barbarians are used for places where the level of civilization was tribal/migratory
    # - using the most recognizable name (e.g. La Paz)
    # - this mechanism also simulates colonial range and independent elements of the kingdom (many colonists wanted to leave the old world for various reasons)
    # - most cities start at lvl 2 to minimize city razing chances


    # europe - north of alps
    (910, (61, 63), iIndependent2, 'Trondheim', 2, iHuscarl, 1), # Trondheim
    (610, (58, 61), iIndependent2, 'Bergen', 2, iHuscarl, 1),
    (810, (62, 49), iIndependent, 'Vienna', 2, iCrossbowman, 4), # Wien
    (810, (59, 54), iIndependent, 'Hamburg', 2, iCrossbowman, 3), # Hamburg
    (750, (57, 53), iIndependent2, 'Amsterdam', 3, iCrossbowman, 2),# Amsterdam

    ....
     
  12. civcivcivcivciv

    civcivcivcivciv Warlord

    Joined:
    Feb 6, 2013
    Messages:
    269
    Is this works to ad1700 scenario too ?
     
  13. zinedine

    zinedine Chieftain

    Joined:
    Mar 18, 2015
    Messages:
    90
    with micromod v6 it works. Script tries from 1700 -> 1710 to recreate the colonies, if nothing else is in their place. 1st batch of colonies in 1703 i think.
     
  14. zinedine

    zinedine Chieftain

    Joined:
    Mar 18, 2015
    Messages:
    90
    added v6.

    mod works with all scenarios, it retroactively constructs colonies and cities (e.g. in 1700ad it spawns prague, valencia, etc). Ancient cities are left to history = not respawned. CIties/colonies are spawned only if possible , so if another city/colony is a 3x3 vicinity of the the city target then spawning fails.
    it also retroactively modifies the map, the resources, features, etc.
    added some islands (jersey, gotland, etc)
    japan resource fix
    minor east coast tweaks.
    1700ad china spawns tianjin and nanjing
    some of the russia and ottoman spawns spawn as indepedent/barbarian to slow down those AIs and to simulate the time of troubles and the arab revolts.

    The world in 1710, starting with the 1700AD scenario:
    Spoiler :






     
    Gritzeldrei likes this.
  15. Logoncal

    Logoncal Prince

    Joined:
    Apr 25, 2016
    Messages:
    387
    Gender:
    Male
    It sounds incredibly cool, but i can already feel my CPU usage going thru the roof with the ammount of cities.
     
  16. Peter84

    Peter84 Chieftain

    Joined:
    Oct 22, 2008
    Messages:
    12
    Nice mod, but don't you think that the cities are too close to each other? They only work in a few fields. It doesn't matter at the beginning of the game, but later either cities stop growing or they have to take spaces from neighboring cities, causing them to collapse. And one more thing. Does building buildings in such small towns make sense? The mod helps to colonize the entire map and that's good, but probably unnecessarily adds cities where there are a lot of them, e.g. in Europe or China.
     
  17. Gritzeldrei

    Gritzeldrei Warlord

    Joined:
    Mar 15, 2020
    Messages:
    133
    Gender:
    Male
    Does this work with the Varietas Delectact and ethnic city design addon?
     
  18. Gritzeldrei

    Gritzeldrei Warlord

    Joined:
    Mar 15, 2020
    Messages:
    133
    Gender:
    Male
    Also wanna ask how is the stability of the AI with the additional amount of cities? Do they collapse more often?
     
  19. zinedine

    zinedine Chieftain

    Joined:
    Mar 18, 2015
    Messages:
    90
    It's not that horrible honestly. About 50-60% slower.
    Of course, assuming that you have 4GB'd the civ executable (e.g. https://www.ryadel.com/en/increase-memory-limit-32-bit-x86-exe-64-bit-x64-windows/ )
    The density on this micromod leads to about the same number of cities as there'll be on the new map, so this micromod might have faster turns than the new big map in the long run, because the AI search space would be similar in cities and units but drastically smaller in map space.

    no, the map is drastically altered and areas of v. high density have insane food+production resources. This might not be v. visible on the map, because i've used flood plains a lot, but the food is there to reach similar growth as the cities would get in normal RFC. It also encourages specialist economies, which are historical in advanced societies (guilds -> burghers -> craftsmen -> modern workers).
    Also these areas get extra production resources (horses,iron, copper, stone, aluminium, coal, etc) which makes every single city in a high density area a worthy investment target.

    surprisingly no, constant stream of colonies being settled -> constant growth for the colonizers -> increased stability. Don't forget that colonization happens post renaissance so those cities start with a good package of buildings.
    Also most colonizers get more cities and increased food in their cores, so the cores scale well.
    In my playthroughs crashes have been similar to normal RFC.

    I have no idea, if these mods do not touch the 4 files in the submod then it should work.
     
    Last edited: Jan 19, 2022 at 3:49 PM
    Gritzeldrei likes this.
  20. zinedine

    zinedine Chieftain

    Joined:
    Mar 18, 2015
    Messages:
    90
    most modern games use local space search AIs, practically constructing acceleration structures over the AI action spaces (well, the good ones anyway). This makes it possible to run AI on multiple threads, each thread solving a subspace. More intelligent AIs even solve twice per frame: in parallel for pre-turn knowledge, and in serial for in-turn knowledge, e.g. a civ before the ai civ made some moves that change the knowledge state. Anyway, tldr modern games have far more interesting tools to handle AI parallelisation.

    Unfortunately CIV4 was designed wayyyyy before multithreading was a thing in game programming, so not much can be done about it in this case because everything is single core.

    ---

    If you like the mod but not like the density you can easily change it to your liking. Just open barbs.py, search for "tMinorCities = (" and disable any city in the dictionary (big list of entries) with "#".
    E.g.

    # europe - north of alps
    (910, (61, 63), iIndependent2, 'Trondheim', 2, iHuscarl, 1), # Trondheim
    #(610, (58, 61), iIndependent2, 'Bergen', 2, iHuscarl, 1),
    (810, (62, 49), iIndependent, 'Vienna', 2, iCrossbowman, 4), # Wien
    (810, (59, 54), iIndependent, 'Hamburg', 2, iCrossbowman, 3), # Hamburg
    #(750, (57, 53), iIndependent2, 'Amsterdam', 3, iCrossbowman, 2),# Amsterdam
    (840, (65, 48), iIndependent2, 'Buda', 3, iHorseArcher, 5), # Budapest
    #(610, (56, 48), iIndependent, 'Lyon', 4, iCrossbowman, 4), # Lyon
    #(710, (51, 50), iIndependent2, 'Brest', 2, iCrossbowman, 3), # Brest
    #(810, (62, 53), iIndependent2, 'Brandenburg', 1, iCrossbowman, 1), # Brandenburg
    (810, (62, 51), iIndependent, 'Prague', 3, iCrossbowman, 4), # Prague
    #(850, (66, 53), iIndependent, 'Warsaw', 2, iCrossbowman, 3), # Warsaw
    #(850, (65, 55), iIndependent2, 'Koenigsberg', 2, iCrossbowman, 2), # Koenigsberg

    only Trondheim, Vienna, Hamburg, Buda, and Prague will be spawned. With a few minutes you'll get both the density and the colonies you want the ai to get.
    Note: you can even auto-colonize with colonies of the civ you play if you set constColonizeForHumanPlayer to true.
     

Share This Page