historical colonization micromod

zinedine

Warlord
Joined
Mar 18, 2015
Messages
118
Note: added v23 in attachments.
Important: the mod is designed for the latest stable version of RFCDOC: https://github.com/dguenms/Dawn-of-Civilization/releases/tag/v1.16.4

Hi all,
I've been enjoying this mod for years but I always thought that colonization (ancient / renaissance / early modern / late modern) 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.

Important: this mod spawns a lot of cities, so the game is slower. Good single-thread CPU is recommended.
Also the AI and the player can both cancel colonies if they colonize within a 1x1 region around a colony spot (before the colony is founded), so while the determinism is increased, it is not guaranteed,


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.
- heavy map changes (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:
- ancient colonization for greeks, carthagineans, romans, and persians, and a more expanded ancient china and india.
- 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 1550ad= the columbian exchange.

- optional colonization rules where colony size depends on technology, region, disease resistance (disabled by default because it increases turn time by ~25%, but can be enabled by setting constMicromodAdjustmentsForColonies = True in Barbs.py).

- scientific and social dark ages where research/gp/culture drops by percentages which depend on tech groups (e.g. north europe, central europe south europe, anatolian, east asia, subsaharan, etc). Very much like EU4. This guarantees a more realistic game, where Europe starts slowly and explodes during the renaissance and where the Indian/Chinese giants start to heavily slow down in the Renaissance. This makes the game very hard for some civs. (can be disabled by setting constMicromodAdjustmentsForTech = False in Barbs.py) and probably makes some UHVs impossible.
northern europe : Feudalism->Patronage or Companies
central europe : Feudalism ->Academia or Firearms
south europe: Feudalism ->Patronage or Gunpowder + Economics->MachineTools or Chemistry
east europe: Feudalism ->Patronage or Gunpowder + Economics->MachineTools or Chemistry
mena: ScientificMethod -> Nationalism or Chemistry
china/korea: Statecraft -> Nationalism or Chemistry
japan: Exploration-> ReplaceableParts or Physics
india: Exploration-> Chemistry or Thermodynamics
hordes: Exploration-> Chemistry or Thermodynamics
subsaharan: Exploration-> Chemistry or Thermodynamics
new world: Exploration-> Chemistry or Thermodynamics
Dark age strength varies by tech group and period. E.g south europe has a minor dark age at the end of the renaissance while central europe starts in a deep dark age due to lack of centralization and religious issues.

- a northern or central european civ will crusade for the holy land if the holy city is owned by a non northern/central european civ. (can be disabled by setting constMicromodCrusadeEnabled = False in Barbs.py)

- more conqueror events (Barbarossa, Japan->China, African France, etc)
For more details see posts: https://forums.civfanatics.com/threads/historical-colonization-micromod.674869/page-3#post-16248759 and https://forums.civfanatics.com/threads/historical-colonization-micromod.674869/page-3#post-16248983

- all options can be controlled by going to Barbs.py and modifying these constants:
constMicromodColonizeForHumanPlayer = False # default=False....Also colonizes for the human player.
constMicromodAdjustmentsForColonies = False # default=False....Colony sizes depend on tech, climate, previous civ, etc. (unfortunately it slows the game down by about 50%)
constMicromodAdjustmentsForTech = True # default=True.....Dark ages for different tech groups
constMicromodCrusadeEnabled = True # default=True.....Northern and central euros get a historical crusade on the orthodox holy city.
constMicromodConquerorsForHumanPlayer = True # default=True.....Historical conquerors (e.g. us on mexico, japan on korea, etc)


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 :





More pics (and version details) in these posts:
https://forums.civfanatics.com/threads/historical-colonization-micromod.674869/#post-16209306 (colonialism)
https://forums.civfanatics.com/threads/historical-colonization-micromod.674869/#post-16210401 (1700AD scenario)
https://forums.civfanatics.com/threads/historical-colonization-micromod.674869/page-2#post-16212731 (3000BC scenario)
 

Attachments

  • micromod.zip
    36.8 KB · Views: 33
  • micromod v5.zip
    38.2 KB · Views: 23
  • micromod v8.zip
    40.5 KB · Views: 22
  • Micromodv10.zip
    41 KB · Views: 19
  • MicromodV20.zip
    44.3 KB · Views: 15
  • Micromodv21.zip
    44.6 KB · Views: 16
  • MicromodV22.zip
    45.3 KB · Views: 15
  • MicromodV23.zip
    46.2 KB · Views: 46
Last edited:

freethink

Prince
Joined
Dec 17, 2011
Messages
528
Location
Bamboo Palace
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.
 

zinedine

Warlord
Joined
Mar 18, 2015
Messages
118
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.

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

What is the version of Dawn of Civilization? I constantly have errors and funny units, such as panzers from the thais.
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.
 

zinedine

Warlord
Joined
Mar 18, 2015
Messages
118
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:

zinedine

Warlord
Joined
Mar 18, 2015
Messages
118
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.
 

Leoreth

Blue Period
Moderator
Joined
Aug 23, 2009
Messages
36,256
Location
東京藝術大学
Please put your screenshots into spoiler tags, they load everytime you open the thread.
 

zinedine

Warlord
Joined
Mar 18, 2015
Messages
118
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.

Please put your screenshots into spoiler tags, they load everytime you open the thread.
done.
 

black213

Emperor
Joined
Mar 12, 2010
Messages
1,679
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.
 

civcivcivcivciv

Warlord
Joined
Feb 6, 2013
Messages
273
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
 

zinedine

Warlord
Joined
Mar 18, 2015
Messages
118
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

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

....
 

zinedine

Warlord
Joined
Mar 18, 2015
Messages
118
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 :






 

Logoncal

Prince
Joined
Apr 25, 2016
Messages
407
It sounds incredibly cool, but i can already feel my CPU usage going thru the roof with the ammount of cities.
 

Peter84

Chieftain
Joined
Oct 22, 2008
Messages
16
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.
 

Gritzeldrei

Warlord
Joined
Mar 15, 2020
Messages
152
Does this work with the Varietas Delectact and ethnic city design addon?
 

Gritzeldrei

Warlord
Joined
Mar 15, 2020
Messages
152
Also wanna ask how is the stability of the AI with the additional amount of cities? Do they collapse more often?
 

zinedine

Warlord
Joined
Mar 18, 2015
Messages
118
It sounds incredibly cool, but i can already feel my CPU usage going thru the roof with the ammount of cities.
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.

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

Also wanna ask how is the stability of the AI with the additional amount of cities? Do they collapse more often?
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.

Does this work with the Varietas Delectact and ethnic city design addon?
I have no idea, if these mods do not touch the 4 files in the submod then it should work.
 
Last edited:

zinedine

Warlord
Joined
Mar 18, 2015
Messages
118
It sounds incredibly cool, but i can already feel my CPU usage going thru the roof with the ammount of cities.
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.
 
Top Bottom