1.18 Civilizations - Brainstorming

ShinobiHus92

Chieftain
Joined
Aug 3, 2019
Messages
82
I'm actually quite surprised Israel, South Africa and Australia aren't on the list. I still think it's a good list don't get me wrong especially by adding the Celts, Hittites, Nubians, Assyrians, Vietnamese and the Swahili civ into the mod. Having the Swedes, Malays and the Kievan Rus as different entities is also a very great idea, and finally some more love for the pre columbians civ by adding the Toltecs. However wouldn't it be a better idea by introducing important civilizations that made historical impact, but also gameplay wise first, and then 'fan favorite' like civs as second? Like how is this list created in the first place? Is this based on what Leoreth prefers? Or are those civs crucial for gameplay purposes? Or more from a historical lens and impact? Or a combination of both? Or are they chosen by the fans through a poll by voting?

For example the Kushans can be easly replaced by the Israelites instead. Not only will it then be the first Jewish civilization into the game, it will most certainly create an interesting dynamic in the Middle East during the Ancient and Modern era, heck it can even be a short lived crusader state in the Medieval era. Same goes for Australia who then can finally take the whole continent for themselves, and be a potential superpower in the Oceania region during the Modern era.

Even though the Kushans can be an awesome addition since they can be a 'middle man' kinda civ between India and Persia, and it was the Kushans after all that made Buddhism more mainstream in Central Asia, which thanks to it's spread came all the way in China. They also heavily contributed with the Silk Road so there's that. However in the wider world history they are a short lived civilization. I rather see them later in the mod, and instead implement Israel and Australia first, but that's my opinion. Nevertheless I'm very interested to see where it all goes. :)
 

Publicola

King
Joined
Apr 26, 2014
Messages
691
However wouldn't it be a better idea by introducing important civilizations that made historical impact, but also gameplay wise first, and then 'fan favorite' like civs as second? Like how is this list created in the first place? Is this based on what Leoreth prefers? Or are those civs crucial for gameplay purposes? Or more from a historical lens and impact? Or a combination of both? Or are they chosen by the fans through a poll by voting?
You really should read Leoreth's original post, 'Plans for DOC 1.18'. It answers most of your questions.
But beyond that, I have also decided that the initial playable version of the new map will already come with 12 additional civilizations that are not part of the current mod. Part of the goal for the bigger map is to have the space to accomodate new civilizations that are historically relevant and would provide an interesting playing experience. Some of these civilizations would have never fit into the current map. Others might have fit, but with the same rationale as above I decided the work spent accomodating them is most effectively spent on the new map, rather than balancing them for the current map first and then later again for the new map.

The reason that I decided to include them right from the start instead of adding them in bit by bit is that the existence of a civilization also affects balance, most importantly by the space they occupy and how they serve as an opponent and counterweight to neighbouring civilizations. I selected these initially added 12 civilizations based on exactly that aspect: which civilizations impact the development and balance of the game significantly and should be factored in when designing and balancing the map. It is not a list of all civilizations that might ever be included, nor are these the "most relevant" or "most important" civilizations from a historical point of view necessarily. To avoid speculation, here is the current (but always subject to change) list of civilizations I would include for this purpose:
TL,DR: the 12 civs listed will have the most impact on how other civs are balanced. Leoreth has ruled out Israel (ancient or modern) from consideration or inclusion, along with Venice and Papal States. Australia is an important post-colonial civ like South Africa, but (like South Africa) it would have minimal direct impact on other civ's balance since its core is on a separate continent.

There are also a whole bunch of suggested 'nomadic civs' like Huns and Lakota, but as much as I'm looking forward to seeing those civs it will have to wait until after 1.18 since the core 'nomadic civ' idea needs to developed first.
 

Xfactor

Warlord
Joined
Aug 1, 2014
Messages
115
Location
On a blue rock
a bit off topic , but isn't the new map also considered for 1.18 ? I am kind of out of loop , wouldnt this update be huge to make with the new civs , balancing, bugs and new map?

to stay on topic: i would suggest:
Sweden - gives Norway a bit more of a challenge since their gameplay gets stale after 1200s - you just declare wars and pillage cities. Negative relations would be great!
Iroqouis - Simply due to NA being very empty till USA's spawn - will give more dynamic to England/France/Spain settling up the continent. Only issue i forsee here is that the AI is pretty dumb and won't interact much with that part of the continent when there are civs there.
Lakota (or Central NA indian condeferation) - A civ that would fill the gap in Central North America - giving more challenge to the player/AI's collonization there + Would give a Challenge to USA's gameplay as currently that land is free to settle without any pushback (except natives that spawn occasionally)
Something for South America(Brazil region especially) - need to check my history which were the civs there between 500s-1450s~ - Basically the same as above - giving the Spanish/Portuguese some challenge to handle.
Kievian Rus - already plenty of arguments on them here.
Zulu -> South Africa - Would give more dynamic to South Africa especially for English and Dutch , since very often this region stays colonial till modern day.
Mamluks - as much as i want them , this is already another challenge for Arabs + the seljuk conqs that spawn in the 1000s - would make the first goal of territories quite harder , and already on higher difficulties it is ... Perhaps a conditional spawn ? - unhappiness + alot of :mad: due to whipping + stability below 15 or something ? Would give another thing to play around.
Manchu - i think its definetely needed since currently i always settle their historical territories as China/Russia/Mongols/Japan, as they are pretty good land - something more to play around for a Chinese player and Russian Player, even Japanese for their UHV.


Overall though i am a bit worried on the Mod's turn load times once we start adding more and more civs. Something to consider perhaps? I remember that i read somewhere that CIV4 uses only one Core of the PC's processing power which leads to alot of loading on late-game turns.
 
Last edited:

Publicola

King
Joined
Apr 26, 2014
Messages
691
a bit off topic , but isn't the new map also considered for 1.18 ? I am kind of out of loop , wouldnt this update be huge to make with the new civs , balancing, bugs and new map?
<sighs> You really should read Leoreth's original post, 'Plans for DOC 1.18'. It answers most of your questions.
Sweden - gives Norway a bit more of a challenge since their gameplay gets stale after 1200s - you just declare wars and pillage cities. Negative relations would be great!
...
Kievian Rus
- already plenty of arguments on them here.
Both of these are on the list to be included in 1.18.
Lakota (or Central NA indian condeferation) - A civ that would fill the gap in Central North America - giving more challenge to the player/AI's collonization there + Would give a Challenge to USA's gameplay as currently that land is free to settle without any pushback (except natives that spawn occasionally)
This civ would be one of the 'nomadic' civ types that will hopefully be developed later, after the big map.
Iroqouis - Simply due to NA being very empty till USA's spawn - will give more dynamic to England/France/Spain settling up the continent. Only issue i forsee here is that the AI is pretty dumb and won't interact much with that part of the continent when there are civs there.
I personally agree that this civ should be included, though it is halfway between 'sedentary' (standard) and nomadic so that might explain why it may not happen in 1.18
Something for South America(Brazil region especially) - need to check my history which were the civs there between 500s-1450s~ - Basically the same as above - giving the Spanish/Portuguese some challenge to handle.
Good suggestion! Unfortunately, while there are indicators that the Amazon river basin was heavily populated and cultivated pre-Columbus, the etire area was so comprehensively wiped out by disease that there are basically no records of what civilization existed in that Brazil region. There are plnety of ancient civs in the Andean mountain region, but those tend to be isolated so they don't qualify as 'affecting game balance' in the same way as the civs on Leoreth's list.
Zulu -> South Africa - Would give more dynamic to South Africa especially for English and Dutch , since very often this region stays colonial till modern day.
Is addressed above: a Zulu civ would be primarily nomadic, while a South African civ would be sufficiently distant and isolated that it's not a 'needed for game balance' type that will be developed as part of 1.18.
Mamluks - as much as i want them , this is already another challenge for Arabs + the seljuk conqs that spawn in the 1000s - would make the first goal of territories quite harder , and already on higher difficulties it is ... Perhaps a conditional spawn ? - unhappiness + alot of :mad: due to whipping + stability below 15 or something ? Would give another thing to play around.
Manchu - i think its definetely needed since currently i always settle their historical territories as China/Russia/Mongols/Japan, as they are pretty good land - something more to play around for a Chinese player and Russian Player, even Japanese for their UHV.
Personally I agree that these civs should be included, but for now, Leoreth considers them coterminous with existing ancient civs (Egypt and China) so it's not as urgent that they be developed to address balance concerns with their neighbors.
 

Derdan

Chieftain
Joined
May 23, 2020
Messages
94
Location
New York State
I think a lot of these civs would be fun to play but should only be available to the player. This would save slots and make the game run faster. You could easily have a medieval Egypt civ or even something less impactful like Yemen or Oman without having to deal with them while playing as Arabia, for instance.
 

ShinobiHus92

Chieftain
Joined
Aug 3, 2019
Messages
82
You really should read Leoreth's original post, 'Plans for DOC 1.18'. It answers most of your questions.

TL,DR: the 12 civs listed will have the most impact on how other civs are balanced. Leoreth has ruled out Israel (ancient or modern) from consideration or inclusion, along with Venice and Papal States. Australia is an important post-colonial civ like South Africa, but (like South Africa) it would have minimal direct impact on other civ's balance since its core is on a separate continent.

There are also a whole bunch of suggested 'nomadic civs' like Huns and Lakota, but as much as I'm looking forward to seeing those civs it will have to wait until after 1.18 since the core 'nomadic civ' idea needs to developed first.
My apologies. I should have look into it. Thanks for the heads-up I will continue to monitor this project and see how it develops :)
 

Expansist

Chieftain
Joined
Sep 18, 2022
Messages
9
1. Congo, later Patrice Lumumba;
2. Kilwa, later may be Tanzania with Julius Nyerere;
3. Indonesia, might be several Civs if possible:
3a. Indonesian - Javanese, Majapahit;
3b. Indonesian - Malays, Srivijaya, Melayu (Sumatra);
3c. Indonesian - Bruneian Sultanate;
3d. Sulavesi Sultanate;
4. Oceanians, might be several Civs:
4a. Polynesians, Maori (New Zealand, Kiribati, Tonga, Samoa, Cook, Society, Kermadec Tuvalu, Tokelau, Tuamotu, Pitcairn, Rapa Nui, Hawaii, Gambier, Chatham, Jarvis, Phoenix, Niue, Line, Baker, Marquesas, Palmyra, Wallis, Austral, Mangareva, etc);
4b. Melanesians, (Fiji, Vanuatu, New Caledonia, Santa Cruz, Solomon, Papua, etc.);
4c. Polynesians can be splitted into many Civs - Maori of New Zealand Civ, Hawaiian Civ, Tuamotuan Civ, and more;
5. Zimbabwe / Monomotapa / Mapugwebe / Ndebele (starting much earlier, ancient - this was a great ancient & classical Civ that had libraries with a broad spectrum of scientific knowledge, Great Zimbabwe had tall walls and castle, gold mines, etc.)
6. Zululand as a separate Civ starting later;
7. Merina (Madagaskar);
8. Punt / Somalia;
9. Brazil;
10. Australia;
11. Gran Colombia under Simon Bolivar;
12. Buganda, Rwanda, Malawi - Great African Lakes Bantu Civs;
13. Lunda, Luba, Lozi - jungle African Civs;
14. Ndongo, Matamba, Ngola, SWAPO.
15. Viet Nam;
16. Argentina;
17. Chimor;
18. Aymara;
19. Mapuche;
20. Chile under Salvador Allende, Project Cybersyn might be their late wonder;
21. Tupi;
22. Scythians, Uyghurs, Huns, Kazakhs, Kyrgyz, other nomadic;
23. Cuba under Fidel;
24. Poland;
25. Magyar;
26. Armenia, Georgia, or other Caucasian;
27. Libyan;
28. Kush;
29. Bachwezi (Kitara);
30. Celts, starting in France, and their last cities to be conquered will be Ireland.

Civs to merge:
a. Shumeria, Babilonia = same civ;
b. Holy Roman Empire, Germany = same Civ.
c. Vikings, Sweden, Denmark, Iceland, Baltic states, etc. = same civ.
d. Kievan Russia, Belorussia, Moscow Russia, Free Territory by Makhno = same Civ, Russia. Today's war can be referred as a was between Poland, a European Civ, and Russia, a mixed Eurasian Civ.
 
Last edited:

Leoreth

Blue Period
Moderator
Joined
Aug 23, 2009
Messages
36,253
Location
東京藝術大学
Sorry, but wishlists aren't helpful. The purpose of this thread is to collect ideas about what a civilization would look like.
 

BigSchwartzzz

Chieftain
Joined
Jun 15, 2019
Messages
62
Sorry, but wishlists aren't helpful. The purpose of this thread is to collect ideas about what a civilization would look like.
Is there any civ in particular or region of the map you hope would be discussed more? Or do you like just watching this unfold?
 

Leoreth

Blue Period
Moderator
Joined
Aug 23, 2009
Messages
36,253
Location
東京藝術大学
I'm just watching.
 

Dracosolon

Prince
Joined
Aug 21, 2010
Messages
328
Location
France
I think a lot of these civs would be fun to play but should only be available to the player. This would save slots and make the game run faster. You could easily have a medieval Egypt civ or even something less impactful like Yemen or Oman without having to deal with them while playing as Arabia, for instance.
Considering that these civs are discussed now because they'll impact the new map's balance I don't think it makes sense to make them conditional.
 

BaneFire

Warlord
Joined
Jun 6, 2011
Messages
282
Resources

Merijn's All Civs (includes proposals for Burma, Kievan Rus, Swahili, Sweden, and Vietnam)

Steb's Civs (includes proposal for Teotihuacan, which overlaps with Toltec civ)

1SDAN's Community Mod Compilation (includes proposals for Hittite and Assyria)

1SDAN's Civilizations Reborn (includes proposals for Burma, Kievan Rus, Nubia, and Celtia, which overlaps with 'Celt' sedentary civ)


Discussion thread: UHVs, Abilities, UU and UB for New Civs

Discussion thread: I Think I've Nailed the Celts as a Viable Civ

If you know of other threads or individual posts that proposed new civs and their attributes, let me know and I'll add them here.
https://forums.civfanatics.com/threads/africa-and-the-new-map.652579/ here's my swahili proposal
 

Leoreth

Blue Period
Moderator
Joined
Aug 23, 2009
Messages
36,253
Location
東京藝術大学
I have.
 

need my speed

Rex Omnium Imperarium
Joined
Oct 3, 2009
Messages
2,353
Location
European Union (Magna Batavia)
If you ever feel bored, I would be very interested in knowing your rationale behind every civilisation's colour scheme.
 

Dracosolon

Prince
Joined
Aug 21, 2010
Messages
328
Location
France
For reference:
 

Attachments

  • civ colors.png
    civ colors.png
    80.1 KB · Views: 73

need my speed

Rex Omnium Imperarium
Joined
Oct 3, 2009
Messages
2,353
Location
European Union (Magna Batavia)
For reference:
Do you have a tool that generates this? I have sometimes considered making a Python tool that does this for me, but if you have one...?
 

Dracosolon

Prince
Joined
Aug 21, 2010
Messages
328
Location
France
Do you have a tool that generates this? I have sometimes considered making a Python tool that does this for me, but if you have one...?
Sure, here you go:

Python:
import os
import xml
import openpyxl
from openpyxl.styles import Font
from openpyxl.styles.fills import PatternFill
import shutil

doc_folder = os.getcwd()+"\\DoC"
if not os.path.exists(doc_folder):
    os.makedirs(doc_folder)

xml_org = "C:\\GOG Games\\Civilization IV Complete\\Civ4\\Beyond the Sword\\Mods\\RFC Dawn of Civilization\\Assets\\XML\\"

xml_civs = os.getcwd()+"\\DoC\\CIV4CivilizationInfos.xml"
shutil.copyfile(xml_org+"Civilizations\\CIV4CivilizationInfos.xml", xml_civs)
civs = xml.dom.minidom.parse(xml_civs)

dict_civs = {}
for info in civs.getElementsByTagName("CivilizationInfo"):
    civ = info.getElementsByTagName("Type")[0].firstChild.data
    civ = str(civ)[13:]
    dict_civs[civ] = info.getElementsByTagName("DefaultPlayerColor")[0].firstChild.data
    
xml_pcolors = os.getcwd()+"\\DoC\\CIV4PlayerColorInfos.xml"
shutil.copyfile(xml_org+"Interface\\CIV4PlayerColorInfos.xml", xml_pcolors)
pcolors = xml.dom.minidom.parse(xml_pcolors)

dict_pcolors = {}
for info in pcolors.getElementsByTagName("PlayerColorInfo"):
    type_ = info.getElementsByTagName("Type")[0].firstChild.data
    type_ = str(type_)
    dict_pcolors[type_] = [info.getElementsByTagName("ColorTypePrimary")[0].firstChild.data,
                                info.getElementsByTagName("ColorTypeSecondary")[0].firstChild.data]

xml_colorvals = os.getcwd()+"\\DoC\\CIV4ColorVals.xml"
shutil.copyfile(xml_org+"Interface\\CIV4ColorVals.xml", xml_colorvals)
colorvals = xml.dom.minidom.parse(xml_colorvals)

dict_colorvals = {}
for info in colorvals.getElementsByTagName("ColorVal"):
    type_ = info.getElementsByTagName("Type")[0].firstChild.data
    type_ = str(type_)
    dict_colorvals[type_] = [info.getElementsByTagName("fRed")[0].firstChild.data,
                             info.getElementsByTagName("fGreen")[0].firstChild.data,
                             info.getElementsByTagName("fBlue")[0].firstChild.data]
    
def clamp(x):
  return max(0, min(x, 255))

def rgb_to_hex(rgb):
    r, g, b = rgb
    r = int(float(r)*256)
    g = int(float(g)*256)
    b = int(float(b)*256)
    return "{0:02x}{1:02x}{2:02x}".format(clamp(r), clamp(g), clamp(b))

dict_civ_colorvals = {}
for civ in dict_civs.keys():
    pcolor = dict_civs[civ]
    color1, color2 = dict_pcolors[pcolor]
    colorvals1 = dict_colorvals[color1]
    colorvals2 = dict_colorvals[color2]
    hex1 = rgb_to_hex(colorvals1)
    hex2 = rgb_to_hex(colorvals2)
    dict_civ_colorvals[civ] = [hex1, hex2]
    
workbook = openpyxl.Workbook()
sheet = workbook.active

for i in range(len(dict_civ_colorvals.keys())):
    civ = list(dict_civ_colorvals.keys())[i]
    hex1, hex2 = dict_civ_colorvals[civ]
    hex1_ = str(hex1)
    hex2_ = str(hex2)
    while len(hex1_) < 8:
        hex1_ = "0"+hex1_
    while len(hex2_) < 8:
        hex2_ = "0"+hex2_
    
    cell = sheet["A"+str(i+1)]
    try:
        cell.fill = PatternFill(patternType='solid', fgColor=hex1)
    except:
        cell.fill = PatternFill(patternType='solid', fgColor=hex1_)
    try:
        cell.font = Font(color=hex2)
    except:
        cell.font = Font(color=hex2_)
    cell.value = civ

workbook.save("civ_colors.xlsx")
 

need my speed

Rex Omnium Imperarium
Joined
Oct 3, 2009
Messages
2,353
Location
European Union (Magna Batavia)
Sure, here you go:

Python:
import os
import xml
import openpyxl
from openpyxl.styles import Font
from openpyxl.styles.fills import PatternFill
import shutil

doc_folder = os.getcwd()+"\\DoC"
if not os.path.exists(doc_folder):
    os.makedirs(doc_folder)

xml_org = "C:\\GOG Games\\Civilization IV Complete\\Civ4\\Beyond the Sword\\Mods\\RFC Dawn of Civilization\\Assets\\XML\\"

xml_civs = os.getcwd()+"\\DoC\\CIV4CivilizationInfos.xml"
shutil.copyfile(xml_org+"Civilizations\\CIV4CivilizationInfos.xml", xml_civs)
civs = xml.dom.minidom.parse(xml_civs)

dict_civs = {}
for info in civs.getElementsByTagName("CivilizationInfo"):
    civ = info.getElementsByTagName("Type")[0].firstChild.data
    civ = str(civ)[13:]
    dict_civs[civ] = info.getElementsByTagName("DefaultPlayerColor")[0].firstChild.data
   
xml_pcolors = os.getcwd()+"\\DoC\\CIV4PlayerColorInfos.xml"
shutil.copyfile(xml_org+"Interface\\CIV4PlayerColorInfos.xml", xml_pcolors)
pcolors = xml.dom.minidom.parse(xml_pcolors)

dict_pcolors = {}
for info in pcolors.getElementsByTagName("PlayerColorInfo"):
    type_ = info.getElementsByTagName("Type")[0].firstChild.data
    type_ = str(type_)
    dict_pcolors[type_] = [info.getElementsByTagName("ColorTypePrimary")[0].firstChild.data,
                                info.getElementsByTagName("ColorTypeSecondary")[0].firstChild.data]

xml_colorvals = os.getcwd()+"\\DoC\\CIV4ColorVals.xml"
shutil.copyfile(xml_org+"Interface\\CIV4ColorVals.xml", xml_colorvals)
colorvals = xml.dom.minidom.parse(xml_colorvals)

dict_colorvals = {}
for info in colorvals.getElementsByTagName("ColorVal"):
    type_ = info.getElementsByTagName("Type")[0].firstChild.data
    type_ = str(type_)
    dict_colorvals[type_] = [info.getElementsByTagName("fRed")[0].firstChild.data,
                             info.getElementsByTagName("fGreen")[0].firstChild.data,
                             info.getElementsByTagName("fBlue")[0].firstChild.data]
   
def clamp(x):
  return max(0, min(x, 255))

def rgb_to_hex(rgb):
    r, g, b = rgb
    r = int(float(r)*256)
    g = int(float(g)*256)
    b = int(float(b)*256)
    return "{0:02x}{1:02x}{2:02x}".format(clamp(r), clamp(g), clamp(b))

dict_civ_colorvals = {}
for civ in dict_civs.keys():
    pcolor = dict_civs[civ]
    color1, color2 = dict_pcolors[pcolor]
    colorvals1 = dict_colorvals[color1]
    colorvals2 = dict_colorvals[color2]
    hex1 = rgb_to_hex(colorvals1)
    hex2 = rgb_to_hex(colorvals2)
    dict_civ_colorvals[civ] = [hex1, hex2]
   
workbook = openpyxl.Workbook()
sheet = workbook.active

for i in range(len(dict_civ_colorvals.keys())):
    civ = list(dict_civ_colorvals.keys())[i]
    hex1, hex2 = dict_civ_colorvals[civ]
    hex1_ = str(hex1)
    hex2_ = str(hex2)
    while len(hex1_) < 8:
        hex1_ = "0"+hex1_
    while len(hex2_) < 8:
        hex2_ = "0"+hex2_
   
    cell = sheet["A"+str(i+1)]
    try:
        cell.fill = PatternFill(patternType='solid', fgColor=hex1)
    except:
        cell.fill = PatternFill(patternType='solid', fgColor=hex1_)
    try:
        cell.font = Font(color=hex2)
    except:
        cell.font = Font(color=hex2_)
    cell.value = civ

workbook.save("civ_colors.xlsx")
Ha, pretty cool, you're my personal hero of the day, thank you very much!
1669476344065.png
 
Top Bottom