Caveman 2 Cosmos (ideas/discussions thread)

I should keep the BuildingClass for such use. The other methods will involve too many mechanisms. I should keep this building class, kill others, and reserve for future use of BuildingClasses.
The better way is to make BuildingClass an optional value to Buildings.
The native culture buildings need to be implemented another way. A new tag to set the Native culture building directly could be added to CivilizationInfo.
 
The native culture buildings need to be implemented another way. A new tag to set the Native culture building directly could be added to CivilizationInfo.
Yes, I've suggested something similar before and was about to do it again before I noticed it's already been said by alberts here.

Anyhow, I suggested before that it be a simple integer tag for civInfo that enumerates the different base cultures and that python or dll implements the cultures for each civ based on what integer the civ got in this tag.
There may be better ways to go about it, but that's one way at least.

The goal is to remove buildingclasses as much as possible, to accomplish it we have to think of alternative, outside the box, solutions that may seem strange at first.

Another idea is to make the base culture a leader trait... Traits can already give promotions to all units and could be made to be used as a prereq factor for buildings/units.
The problem here lies in assimilation, it may seem dumb for a leader to have many different culture traits...

Any idea should be contemplated. ^^
 
Last edited:
No, I'm considering to keep the BuildingClass xml with this particular entry, not to embed this info in the Building.
Ultimately the point is to completely eliminate this whole class object for massive memory and processing time savings.
It should be easy enough to establish a tag on the Civilization infos that designates the underlying base culture type.
 
any plans for native cultures for the nomadic start idea? Or dynamic culture idea? Maybe have them built after the start, on a tech or something. Have it go off of terrain and feature around capitol, or use city coord / position on map, or myths or resources or w/e. All on option for now ofc.
 
any plans for native cultures for the nomadic start idea? Or dynamic culture idea? Maybe have them built after the start, on a tech or something. Have it go off of terrain and feature around capitol, or use city coord / position on map, or myths or resources or w/e. All on option for now ofc.
Yes but nothing manifest enough to replace the current method right away. We'd need to add a tag to CivillizationInfos for it to perform as it has so far at the moment at least.

You should check out: https://forums.civfanatics.com/threads/c2c-ideas-project-development-thread.562018/
 
Ang, if u want alot of things to do, try things like the "Nomad Demo" it has never worked, really. . . to have the wondering city build, then it can be even moved AFTER u build it . .(i believe thats the concept . .

been trying for years now to get the Andromeda strain to work . .
one i have been trying for 7 years is to get "Mercenaries" to C2C, but nobody can get it to work properly with C2C . .
i also know DG wanted some kind of "disease" stuff to work also and many many more, also TB has also of ideas . . . that haven't been implemented ..
I read this earlier and wanted to reply to it then but I got busy with work at the time.

The Outbreaks and Afflictions IS implemented in the code (though could still use some further deepening perhaps based on some things DH wanted to see happen.) The main thing is the XML hasn't been designed because there's so many other pressing things happening. I did not feel right developing more content based stuff when we have such memory and processing and AI issues at hand. I strongly anticipate that these things now have a hope of being resolved thanks to the recent reinvigoration of coding efforts on the team. Therefore, I look forward to being able to get to focus on this at some point we're closing in on soon. Without the confidence to expect our memory issues to be resolved at some point, I couldn't be sure it would be worth it to invest further into this project.
 
Ultimately the point is to completely eliminate this whole class object for massive memory and processing time savings.
It should be easy enough to establish a tag on the Civilization infos that designates the underlying base culture type.
I wonder how it could be done, so if you conquer city of civilization with different base culture, then you get their base culture too.
 
I wonder how it could be done, so if you conquer city of civilization with different base culture, then you get their base culture too.
Following Toffer's suggestion, I think we put the native culture enumeration in a mutually-exclusive enum with each bit representing one culture type and store this data in a Player's accomplishments. When one founds a city, the system checks this data to establish one or multiple native cultures in it.

When we acquire a city, it checks for its resident culture type. By chance (based on acquired city's population, cultural level, and some factors to make the game not too easy), we'll be able to keep that new resident culture.

I want to open some discussion here about the design of culture assimilation. There are two ways to do this:

One is to make this new culture available to the whole area under one's control, which is the current way to assimilate cultures, but it's unrealistic for a culture to immediately spread out to the whole empire.

The other is to make the conquered culture stay within its developmental range. This can be done if we make the culture of dead civilizations persist on their historical areas (some other mods implement this feature). Based on their accumulated culture, cities within this range will be able to keep their resident culture, and cities that sat outside the borders may one day establish the conquered culture as well.

If we use the latter system, we may still keep track of a player's conquest accomplishments, but we don't need to use an enumeration to keep track of the types of continental cultures a player gathers.


Think of this scenario:
Player A attacks player B, and he conquers B's two cities.
In these two cities, player A's culture will migrate in, and based on their developmental level, player B's culture may or may not be kept.
After some peaceful time period, now another player C attacks player A, and he takes those two cities too.
In these two cities, player C's culture will migrate in. But based on player A and B's development in them, player C may or may not acquire A or B's culture in them.

Further ideas:
Let's name these two cities P and Q. P is the larger city that A managed to establish his root in. Both cities were lucky to have player B's culture preserved upon player A's invasion.
As player C conquered P and Q, he also got lucky to preserve all of player B's culture. And for the larger city P, player A's culture also made an addition to the cultural mixture.
Now P is a city with all of A, B, and C's cultures, and Q is a city with B and C's cultures.

When player C builds a settler in city P, his settler will bring the cultures of A and B in addition to his own to the newly founded city.
Player C's own native culture, and only his own culture, is auto-built whenever he founds a city.
He needs to gather people in foreign cities, represented as promotions on the settler unit, to found a city with more than his native culture.

This settler may also be used to mix new cultures in old cities (or we can create specific emigrant units to fit this purpose), although there is a chance the old cities reject foreign groups of people, especially when the local population is overcrowded. (Crowdedness being defined by a calculation based on the era and other factors.)

Capturing a settler or an emigrant unit will not be possible. I think the current method of turning captured settlers into civilian captives automatically is the way to go.
 
Last edited:
The other is to make the conquered culture stay within its developmental range. This can be done if we make the culture of dead civilizations persist on their historical areas (some other mods implement this feature). Based on their accumulated culture, cities within this range will be able to keep their resident culture, and cities that sat outside the borders may one day establish the conquered culture as well.
How I did it in MToS is more similar to this, except quite different nonetheless; so I'll try to explain it so we have the third alternative on the table.
It is complicated, so we may not want it in the end, but it offers some nice features that we may want to consider.

The enumeration we want to add to civs would be the basis that always tells a nation what native culture it has that will always autobuild in the capital city of this player throughout the game.
Let's call this building NATIVE.​

The NATIVE building gives another building for free to all owned cities that signifies that this base culture is active (assimilated/integrated/accepted) nationwide.
Let's call this building ACTIVE​

When the game starts the first settler is given a base culture promotion that is used to build a third building in the city it founds that signifies that this culture is present in the local population in this city.
Let's call this building LOCAL​

The LOCAL culture building present in a city awards base culture promotions to settlers trained in that city so that the LOCAL buildings of one city will spread to the next city founded by a settler from the former city.

When a player gets, lets say 3 (scaled by mapsize so the number would differ due to that), foreign LOCAL culture buildings in total, a fourth culture building will autobuild in the capital if there is no equivalent NATIVE culture there.
Let's call this building ADOPTED​
The ADOPTED building gives the ACTIVE building for free to all cities in the nation.
The ADOPTED culture building can be lost if the amount of LOCAL buildings is reduced below the limit mentioned above. LOCAL cultures can perish from a city after conques, I think I set a 25% chance for that to happen in MToS.

The LOCAL building can be built with hammers in any city where the ACTIVE culture is present, but the cost of the LOCAL building will increase (by quite a lot) for each LOCAL building already present in the nation.
The LOCAL building of culture A increase the cost of a LOCAL building of culture B more than it increases the cost of another LOCAL building of culture A. So trying to hoard all cultures locally in all cities is not an easy endeavor, but possible.

The cultural wonders (specific cultures unlocked by techs) require both the LOCAL building and the ACTIVE building of a given base culture to be built.
Units unlocked by the culture bonus awarded by the cultural wonders also require the LOCAL and ACTIVE culture building in a city to be trained/built. So not every city will be able to train them automatically.
Actually, anything that requires a base culture to be built/trained is set to require both the LOCAL and ACTIVE buildings in MToS.

I think that's all the details presented in a concise manner.

A small summary:
NATIVE and ADOPTED are autobuilds that follows the palace building, i.e. the capital.
The two above both gives ACTIVE as a free building to all cites.
LOCAL transmits from one city to a new one through settlers with promotions, promotions awarded to the settler from the LOCAL present in its city of origin.
LOCAL and ACTIVE are together the ones that unlock base culture specific content to the player.
 
Last edited:
I wonder how it could be done, so if you conquer city of civilization with different base culture, then you get their base culture too.
My take on this is until it gets handled by the Ideas Project, assimilation should be completely disabled due to the vast number of cultures we now have making it an overwhelming steamroll source - the more you get access to by conquering, the more heroes and such you can build, the more unstoppable you become. Assimilation is a cool idea but it's imbalancing right now. I gave a link to the Ideas Project thread yesterday somewhere - when I find it I'll post it here,

I also propose that we start calling the base underlying cultures that you start with 'Heritages' just to keep the discussion on them somewhat distinct from the discussion on later developed individual culture types.
 
My take on this is until it gets handled by the Ideas Project, assimilation should be completely disabled due to the vast number of cultures we now have making it an overwhelming steamroll source - the more you get access to by conquering, the more heroes and such you can build, the more unstoppable you become. Assimilation is a cool idea but it's imbalancing right now. I gave a link to the Ideas Project thread yesterday somewhere - when I find it I'll post it here,

I also propose that we start calling the base underlying cultures that you start with 'Heritages' just to keep the discussion on them somewhat distinct from the discussion on later developed individual culture types.
So you won't get able to get North American culture as European culture civ?
Some cultures needs European and other base culture.
 
So you won't get able to get North American culture as European culture civ?
Some cultures needs European and other base culture.
Not until Ideas is implemented and the whole system isn't completely imbalanced as it is now with so many potential cultures to be gained. What Toffer is talking about sounds like it has merit at first glance as well but I need more time to think on it.
 
was the "Garbage" civic the last one always,?
Nope, at first civic categories were placed randomly, then DH sorted them for me before I was part of team.
Then I swapped Agriculture and Garbage categories few month ago.
 
I gave a link to the Ideas Project thread yesterday somewhere - when I find it I'll post it here,
https://forums.civfanatics.com/threads/c2c-ideas-project-development-thread.562018/
My take on this is until it gets handled by the Ideas Project, assimilation should be completely disabled due to the vast number of cultures we now have making it an overwhelming steamroll source - the more you get access to by conquering, the more heroes and such you can build, the more unstoppable you become. Assimilation is a cool idea but it's imbalancing right now.
Not completely disable it, but restrict cultural heritages you can gain to the area of the previous people which you have conquered by war.
The current mechanism of cultural heritage spreading automatically across your empire is too crazy. You can hoard a lot of foreign Unique Cultures in your best cities, and use your best cities' production to steamroll the game. It wouldn't be if the cultural heritages are restricted to the cities you capture and even they have a certain chance to disappear. Using units to spread cultural heritage can be made deliberately harder (like high fail rate for humans, and even higher fail rate for existing best cities, plus national limit of 1 or few such units) to slow down the hoarding maneuver.

Further, you are restricted to produce Cultural Unique Units in those cities that have the base heritage, not anywhere.
Currently we provide nationwide bonuses for all Unique Cultures.
I'm thinking how to remove this middle layer "Unique Cultural Bonuses".
We should do one tag for Cultural UU:
1. Required continental cultural heritage can be referenced through the required wonder info.
2. Required Wonder
Or We can make a new "CultureInfo" "CvCulture" class for proximity stuff.
 
Last edited:
Not completely disable it, but restrict cultural heritages you can gain to the area of the previous people which you have conquered by war.
The current mechanism of cultural heritage spreading automatically across your empire is too crazy. You can hoard a lot of foreign Unique Cultures in your best cities, and use your best cities' production to steamroll the game. It wouldn't be if the cultural heritages are restricted to the cities you capture and even they have a certain chance to disappear. Using units to spread cultural heritage can be made deliberately harder (like high fail rate for humans, and even higher fail rate for existing best cities, plus national limit of 1 or few such units) to slow down the hoarding maneuver.

Further, you are restricted to produce Cultural Unique Units in those cities that have the base heritage, not anywhere.
Currently we provide nationwide bonuses for all Unique Cultures.
I'm thinking how to remove this middle layer "Unique Cultural Bonuses".
We should do one tag for Cultural UU:
1. Required continental cultural heritage can be referenced through the required wonder info.
2. Required Wonder
That would be a good patch for now and perhaps a good idea to manage the system as a core, allowing the Ideas project to potentially be completely optional when it does later get introduced in full.
 
To accompany my last post, we can make a new "CvCulture" class for proximity stuff, for example to cache culture wonder status (which culture is built by whom and controlled by whom), so that the search for a wonder built to enable a Cultural UU can be very fast.

Edit: scratch that. I think this proximity data can be stored as a flat_map<int,int> under CvGame with key type compatible with enum BuildingTypes and value type the owner ID.
 
Last edited:
To accompany my last post, we can make a new "CvCulture" class for proximity stuff, for example to cache culture wonder status (which culture is built by whom and controlled by whom), so that the search for a wonder built to enable a Cultural UU can be very fast.
I spoke with Koshling a few times about ideas like this, creating new Cv objects, and the way he put it to me is that IF we are adding tags to that object, then sure, do it. Otherwise, if it's just used as a list, it can either be an enum list or another method he was trying to point at that I haven't fully sorted out how to establish. The downside of an Enum list alone is that you don't have XML that displays that list so you kinda have to just know what's in it, and it's not as malleable to an XML programmer. But it does make sense that we shouldn't need a whole class if it's JUST a selection list for another tag that we need. So the question here is, would there BE a list of tags for CvCulture? Should it differ from Heritages, which many are calling Base Culture? If not, I'm still shaky on how to setup a list for tag selections alone.
 
I change my mind. I don't need to create a new class like CvProperty. Keeping track of who owns what Unique Culture in a flat_map member under CvGame is the way to go.
This flat_map will be pairs of int/BuildingTypes (ID of the Unique Culture building) to int/PlayerTypes (Owner ID).
 
Top Bottom