[MOD] The Spread of Imperialism

Sounds enticing.. it's the best of Victoria and Imperialism 2! :king:

Do you think you could include an XML tag to enable some FoundingFathers/ techs to work like the regular game? I'd be interested to include your new techsystem in my mod, though not sure I'd want to lose all the existing FFs..:sad:

You mean having both a Founding Father screen and a Technology screen? That's beyond what I can do at the moment... What I could do though would be having some categories of Founding Fathers that behave like technology (can be gotten by everyone, etc.), and other categories behaving like actual Founding Fathers. If you wish I could do that for your mod (though there is still one issue that I haven't solved - I wanted to make the button that indicates to whom the father belongs to indicate which techs the active player already has; as of now, the player can't see the techs he possesses).

One other cool thing to consider for your mod could be re-enabling some Civics choices to be selectable prior to Revolution (though the best ones would be available only after independence).

That has been on my mind for some time... but I don't know yet what calls the civic popup. I'll see if I can find it.

You might also try making natives more challenging, by enabling some buildings etc.

Yes, right now they are too docile, and too weak. My current plan is to make it so the natives will get the standard units, buildings and professions as they research technologies, until they get a technology that makes them stop being natives. These pre-modern techs would start out already researched for European and Colonial players, by using this tag in CivilizationInfos (if the game starts after the date set, the player that controls that civilization gains that technology):

Code:
			<HistoricalTechnologies>
				<HistoricalTechnology>
					<FatherType>FATHER_PRINTING_PRESS</FatherType>
					<iYear>1452</iYear>
				</HistoricalTechnology>
			</HistoricalTechnologies>
 
What I could do though would be having some categories of Founding Fathers that behave like technology (can be gotten by everyone, etc.), and other categories behaving like actual Founding Fathers. If you wish I could do that for your mod
Thanks that would be great, that's just what I was thinking of. It looks like I'd be able to add other Father/tech types for the existing screen using just CIV4FatherCategoryInfos xml.

there is still one issue that I haven't solved - I wanted to make the button that indicates to whom the father belongs to indicate which techs the active player already has; as of now, the player can't see the techs he possesses).
Looks like it's controlled by that block starting on line 250 of screens/CvFoundingFatherScreen.py , it seems to me like it should put flags on the techs appropriately. There's also the "Continental Congress" screen from screens/CvCongressAdvisor.py which displays a table of FF portraits for the active player, but could be converted to show a list of techs.

Yes, right now they are too docile, and too weak. My current plan is to make it so the natives will get the standard units, buildings and professions as they research technologies, until they get a technology that makes them stop being natives. These pre-modern techs would start out already researched for European and Colonial players, by using this tag in CivilizationInfos (if the game starts after the date set, the player that controls that civilization gains that technology):
Awesome, that sounds like a fantastic feature actually. :king: I've tried to make playable natives in my mod and enable some buildings for them. I did it by making a nonplayable parent civ for the natives using <DerivativeCiv> and <bEurope> in Civilizationinfos.xml which restores access to Founding Father screens and Europe trading, but you might know a more elegant way to do it. It works well and is pretty interesting when played by a human player, but when run by the AI they still behave somewhat like the passive natives from Col. Perhaps you could deactivate some of the Native checks in CvPlayerAI.cpp, to make them behave more like normal civs, but starting with the disadvantage in tech.
 
Thanks that would be great, that's just what I was thinking of. It looks like I'd be able to add other Father/tech types for the existing screen using just CIV4FatherCategoryInfos xml.

You can. The only problem is that if you put many more than 5 the names of the categories don't show entirely.

Looks like it's controlled by that block starting on line 250 of screens/CvFoundingFatherScreen.py , it seems to me like it should put flags on the techs appropriately.

It checks which team has that father assigned to it; the way I'm making the game recognize which players have which techs is by checking if they have the corresponding trait, so I'd need to replace the check for father team assignment to one of whether the activeplayer has the father/tech's trait. I tried to do that, but unfortunately I don't know much of python, so it didn't work.

There's also the "Continental Congress" screen from screens/CvCongressAdvisor.py which displays a table of FF portraits for the active player, but could be converted to show a list of techs.

That's a good idea, I'll try changing it and see if it works.

Awesome, that sounds like a fantastic feature actually. :king: I've tried to make playable natives in my mod and enable some buildings for them. I did it by making a nonplayable parent civ for the natives using <DerivativeCiv> and <bEurope> in Civilizationinfos.xml which restores access to Founding Father screens and Europe trading, but you might know a more elegant way to do it. It works well and is pretty interesting when played by a human player, but when run by the AI they still behave somewhat like the passive natives from Col. Perhaps you could deactivate some of the Native checks in CvPlayerAI.cpp, to make them behave more like normal civs, but starting with the disadvantage in tech.

Giving them the possibility of getting Founding Fathers is kind of straightforward, but Europe trading would require a bit more of rework (for instance, it would be necessary for them to check for their own price list, instead of checking their parent's when in Europe).

Reworking their AI is a good idea, do you have any particular suggestions as to how to improve it?
 
Giving them the possibility of getting Founding Fathers is kind of straightforward, but Europe trading would require a bit more of rework (for instance, it would be necessary for them to check for their own price list, instead of checking their parent's when in Europe).
I guess having the dummy "parent" civilization is a quick workaround for this, or maybe its possible to check a separate price list for them as you suggest. Otherwise its very hard for them to get any gold, in my experience they don't actually seem to keep any gold when someone buys their land, no matter what is set in the XML.

In my mod I tried to simulate their internal economy by a market building that automatically sells excess goods at a fraction of their "Europe" price (ie the existing Warehouse Expansion mechanic). One alternate idea is: I think their settlements actually consume certain resources (especially European ones) as set by NativeConsumptionPercent in yieldinfos xml. If you find where that mechanism is coded in SDK, converting a share of that resource consumption to gold and technology points could be a cool way to simulate their internal economy and development. Then the Europeans selling tons of Goods and Tools etc to the natives for a quick profit would be a double-edged sword, since they'd soon be becoming more advanced! :cool:

I like the idea of them developing through the pre-modern technologies and becoming gradually more advanced; it would be satisfying to play as natives and manage to resist the Imperialists! :goodjob:. After gaining some of the pre-modern techs you're making, they could also begin to unlock the ability to import certain specialists from Europe and use those to teach their tribesmen (which was done by many industrializing societies like Japan).

Reworking their AI is a good idea, do you have any particular suggestions as to how to improve it?
Unfortunately I don't really know any C++ :crazyeye:.. TC01 pointed out there's a bunch of native-specific AI code in CVPlayerAI.cpp , but you'd probably understand more from it than me.

Much of the stuff in there looks like it should be fine to keep, like the code making them alarmed by nearby Europeans etc. One thing I can see that might be disadvantaging them is the if (isNative()) block under void CvPlayerAI::AI_manageEconomy() in CVPlayerAI.cpp , which seems to make their production choices somewhat random. (Although, maybe they should stay with some weighting toward emphasizing Food as that's their main source of population growth.) Perhaps removing that block and letting everyone use the if (!isNative()) block in that function could enable more effective resource production.
 
I guess having the dummy "parent" civilization is a quick workaround for this, or maybe its possible to check a separate price list for them as you suggest. Otherwise its very hard for them to get any gold, in my experience they don't actually seem to keep any gold when someone buys their land, no matter what is set in the XML.

In my mod I tried to simulate their internal economy by a market building that automatically sells excess goods at a fraction of their "Europe" price (ie the existing Warehouse Expansion mechanic). One alternate idea is: I think their settlements actually consume certain resources (especially European ones) as set by NativeConsumptionPercent in yieldinfos xml. If you find where that mechanism is coded in SDK, converting a share of that resource consumption to gold and technology points could be a cool way to simulate their internal economy and development. Then the Europeans selling tons of Goods and Tools etc to the natives for a quick profit would be a double-edged sword, since they'd soon be becoming more advanced! :cool:

Each player already has a price list in vanilla Civ4Col, it just isn't used in the game for non-parent civs.

It seems it converts it to gold already, but I'm not sure. NativeConsumptionPercent affects a few things in CvCityAI.cpp and CvPlayerAI.cpp (so I imagine that it only works for AI natives). It is possible to make their settlements consume that fraction and generate technology and gold by changing a few things in CvCity.cpp, yes.

I have just finished today a basic "demand" system for giving other ways to gain income than the Europe screen (important for civs such as Austria), basically whenever the player gains gold, 50% of it is distributed between the player's population (stored in a m_iFunds variable in the unit), the portion received depending on the unit type. Then, in a city, each population unit demands one of each "luxury" commodity (Cloth, Cigars, Coats, Rum and Coffee), and if it is in storage and the unit has enough funds to buy it, it will do so, and for each purchase the player will receive 50% of the gold (the other 50% being distributed between all of that player's population units). If an unit demands a luxury commodity and there is none in storage, that influences the price to rise. If there is a luxury commodity in storage, but not enough demand to buy it, that influences the price to drop. I wonder if you want to test it (along with the tech system)?

I like the idea of them developing through the pre-modern technologies and becoming gradually more advanced; it would be satisfying to play as natives and manage to resist the Imperialists! :goodjob:. After gaining some of the pre-modern techs you're making, they could also begin to unlock the ability to import certain specialists from Europe and use those to teach their tribesmen (which was done by many industrializing societies like Japan).

:D That would be great. I'm making the techs not prohibit the player of having unit specialties; for instance, the tech "Cigar Production"; even if the player doesn't have the tech, the Master Tobacconist isn't prohibited, only the corresponding profession and buildings (and thus, the Master Tobacconist would perform research). I still have to find a way to make the natives be able to gain the specialists though.

Unfortunately I don't really know any C++ :crazyeye:.. TC01 pointed out there's a bunch of native-specific AI code in CVPlayerAI.cpp , but you'd probably understand more from it than me.

I meant, if you have any suggestions based on the native AI behavior you've seen in-game.

Much of the stuff in there looks like it should be fine to keep, like the code making them alarmed by nearby Europeans etc. One thing I can see that might be disadvantaging them is the if (isNative()) block under void CvPlayerAI::AI_manageEconomy() in CVPlayerAI.cpp , which seems to make their production choices somewhat random. (Although, maybe they should stay with some weighting toward emphasizing Food as that's their main source of population growth.) Perhaps removing that block and letting everyone use the if (!isNative()) block in that function could enable more effective resource production.

Ok, I'll take a look at it.
 
I have just finished today a basic "demand" system
Interesting, another cool Victoria feature I never expected in Col.. :king: It sounds intriguing, though one possible issue could be some people might think it too much micromanagement work to need to frequently redistribute goods evenly across all the colonies (eg it could make players fearful of having any goods stored in their colonies because of price depression, move goods to and from ships for price effects, or take advantage of depriving colonists of a certain good to bump up the price for later.)

But it does seem an improvement from the current system where Europe prices will always just decline. You could try to adjust it so that goods sitting in the warehouse have no active effects on price, but selling goods to your population has about the same downward price effect as does selling goods in Europe, this should eliminate some micromanagement worries since the effect of any "sale" would be pretty equal. Also could bump up correlationpercent in globaldefines.xml to make global markets more interrelated. Although, having an opponent's colony potentially give you more attractive prices due to scarcity there does open up interesting possibilities for trade. (one cool idea for the future, that correlation factor could be affected by a civic like Protectionism versus Free Trade?)

That would be great. I'm making the techs not prohibit the player of having unit specialties; for instance, the tech "Cigar Production"; even if the player doesn't have the tech, the Master Tobacconist isn't prohibited, only the corresponding profession and buildings (and thus, the Master Tobacconist would perform research). I still have to find a way to make the natives be able to gain the specialists though.
That makes sense.. Perhaps you could just have the specialists require the various pre-modern techs that colonial civs already have. (I'm guessing you're using a new XML tag for tech requirements like for units such as Cossack etc). That way the colonials start with access to them, but the natives have to develop them gradually.

I meant, if you have any suggestions based on the native AI behavior you've seen in-game.
I see.. I guess I'd noticed they seemed generally similar to vanilla Col natives but wasn't sure if there's any particular AI code holding them back. There is the known issue of needing the parent civ to get any price list access. I don't know whether the AI natives are able to trade to earn gold or buy needed goods/units like the colonists, IIRC there was some isNative check in EuropeScreen.py I had to remove. One problem I noticed in my mod: I added some units and buildings that required resources (Tools or others like "Cigars" etc) to construct, the AI seemed not to handle this very well, starting to construct things without collecting required goods. I don't know if this is also a problem for the many existing buildings in Col that require Tools etc, I would hope Firaxis added code to plan for that.

I wonder if you want to test it (along with the tech system)?
Com certeza!:D I'll be working through Friday but would be glad to immerse myself in a beta over the weekend if you've got one..
 
Interesting, another cool Victoria feature I never expected in Col.. :king: It sounds intriguing, though one possible issue could be some people might think it too much micromanagement work to need to frequently redistribute goods evenly across all the colonies (eg it could make players fearful of having any goods stored in their colonies because of price depression, move goods to and from ships for price effects, or take advantage of depriving colonists of a certain good to bump up the price for later.)

I see what you mean; I'm not sure it would be too much micromanagement though since the player can set the export/import of each city and then automate wagon trains to do the job. As for storing goods in the ship to not suffer price depression and such, I'm not sure it really is that advantageous, because most citizens will not be able to buy all their demand goods, so if you produce more than is being bought, that will bring down the price and you will be able to sell to the poorer citizens (for instance, the uneducated ones), even if at a lower price, the profit margin would still justify the production... I think.

But it does seem an improvement from the current system where Europe prices will always just decline. You could try to adjust it so that goods sitting in the warehouse have no active effects on price, but selling goods to your population has about the same downward price effect as does selling goods in Europe, this should eliminate some micromanagement worries since the effect of any "sale" would be pretty equal.

I think the ships selling in Europe would correspond to a ship unloading in a city; I say this because when you sell goods to Europe, you are basically unloading them there and increasing the offer of said good in Europe. But when a citizen makes a purchase in a city, the offer isn't being increased, it's the "perfect" meeting of offer and demand.

Also could bump up correlationpercent in globaldefines.xml to make global markets more interrelated. Although, having an opponent's colony potentially give you more attractive prices due to scarcity there does open up interesting possibilities for trade. (one cool idea for the future, that correlation factor could be affected by a civic like Protectionism versus Free Trade?)

It would be interesting if foreign wagon trains would be able to sell or buy to your cities depending on that city's export / import settings (and it would increase the correlation between markets more organically too), I'm keeping that as a planned thing to do later on.

That makes sense.. Perhaps you could just have the specialists require the various pre-modern techs that colonial civs already have. (I'm guessing you're using a new XML tag for tech requirements like for units such as Cossack etc). That way the colonials start with access to them, but the natives have to develop them gradually.

They already do, as even though the specialists are enabled for them, they have no way to get them yet. There is a tag for units, professions and buildings requiring fathers (or events). The way they work is a bit different though, since it depends on the XML loading order; so tags for professions are in the fathers xml, while the units and buildings tags are in their own xmls.

I see.. I guess I'd noticed they seemed generally similar to vanilla Col natives but wasn't sure if there's any particular AI code holding them back. There is the known issue of needing the parent civ to get any price list access. I don't know whether the AI natives are able to trade to earn gold or buy needed goods/units like the colonists, IIRC there was some isNative check in EuropeScreen.py I had to remove. One problem I noticed in my mod: I added some units and buildings that required resources (Tools or others like "Cigars" etc) to construct, the AI seemed not to handle this very well, starting to construct things without collecting required goods. I don't know if this is also a problem for the many existing buildings in Col that require Tools etc, I would hope Firaxis added code to plan for that.

When I set AI governors for my cities, they frequently use the gold I have to hurry buildings, maybe that's what they are doing? As for the price list, that's because it is set to show up the parent's price listing in CvGameTextMgr.cpp, you have to change this line:

Code:
		szBuffer.append(gDLL->getText("TXT_KEY_BUY_AND_SELL_YIELD", kParent.getYieldBuyPrice(eYield), kParent.getYieldSellPrice(eYield)));

to:

Code:
		szBuffer.append(gDLL->getText("TXT_KEY_BUY_AND_SELL_YIELD", kPlayer.getYieldBuyPrice(eYield), kPlayer.getYieldSellPrice(eYield)));

then it should work (but you still would need a system for them to sell according to their own price listing).

Com certeza!:D I'll be working through Friday but would be glad to immerse myself in a beta over the weekend if you've got one..

Great :D I'll prepare the files and upload. Just a few things you might need to know though: I have changed immigration so that instead of it appearing at the docks, it will appear directly in a random city (in the future, only cities with docks); furthermore, it won't be generated by making crosses, but rather, when a citizen starves somewhere, it will emigrate to the civ with the highest crosses stored (colonial civs get a bonus to getting immigrants from their parents), and then that civ's stored crosses will be reset. If a specific specialist is needed though, it can still be bought in Europe.

Now only clergy units can work as preachers, that is, the new Clergyman, the Firebrand Preacher and the Jesuit Missionary. In order to educate a citizen to Firebrand Preacher or Jesuit Missionary, you first have to educate that citizen to Clergyman; even if you have no Clergymen in the city, as long as you have Firebrand Preachers or Jesuit Missionaries, you can teach the Clergyman profession to them.

This learning system is similar for the new journeyman units (one for each industrial profession), with first citizens needing to learn, for instance, the Journeyman Blacksmith specialty before being able to learn the Master Blacksmith one. Journeymen also perform research, just like the Masters, but they do so at 3/4 the points a master would provide.

Schoolhouses, Colleges and Universities increase literacy by 1% per turn; each unit has their own literacy, when it goes over 50%, the unit becomes literate. Unliterate units have their research points halved, and literate units producing bells, crosses or education gain a +50% modifier to production. Cities without a Schoolhouse/College/University will decrease their units' literacy by 1% per turn.

There are a few wonders that can be produced instead of normal buildings (but just in one city, of course); some of them already start out built, such as the Stephansdom for Austria or Notre Dame for France (both replacing the Cathedral and giving +100% crosses in that city). The only colonial one so far is the Springfield Armory for New England, which replaces the Arsenal in the city it is built in, and gives +100% Guns instead of the Arsenal regular +50%.

I hope I haven't forgotten anything :)
 
Ok, I've been playtesting it - first here were a couple bug issues, otherwise I didn't run into many bugs. There was set of python exceptions on game start, maybe from adding stuff in from Civ4: "can't find type enum for tag BONUS_SHEEP" and many others including FEATURE_FLOOD_PLAINS. Also I noticed the tobacconist house wasn't available to build.

Thoughts re European Nations
With the Old World parent nations on the map, what are your future plans re how they'll act in the game? They seem currently very weak due to starvation and poor income - It could be interesting to make them receive the taxes paid by their daughter colony, and be able to make war against other European powers, but unable to directly found new colonies of their own. Perhaps in future they might even be playable. You could also make the population of each European parent civ earn half of the money from when their colonial civ sells goods on the Europe screen, and have immigrants for each colonial civ be attracted preferentially from their parent Europe civ rather than randomly from Europe in general. That would be interesting since trading with the mother country could increase the wealth of citizens who could eventually emigrate from there.

Immigration / Crosses
The idea of emigrants being actually taken from Europe could be interesting, but in actual playtesting of this current beta, the changes of having immigration only from starving, plus the changes to cross production/Clergymen and the lack of population growth from food, just ended up making me badly stuck for a long time with no way to get any colonists.

As New Portugal, I started buiding a Church and a School in hopes of attracting immigrants; it took a long time but when I finally placed a Colonist in the school he wasn't graduating and couldn't enter the Church. Finally I saved up enough money to buy a Clergyman (really took quite a long time due to half the cash going to population) and then graduated a second one from school, but even that didn't end up helping; they weren't attracting immigrants I guess because there was no longer much continous starvation and Europe was depleted. Citizens only starve when a player or AI makes bad decisions to leave them without food; over time this happens less and less (especially due to there being apparently no population growth from food), which overall made it not useful to build cross production in the long term and made colonists extremely scarce.

I think it might be easiest just to return to the normal immigration/cross system from the regular game. Also restore the potential for population growth from food. But if you really want to try taking emigrants from Europe, you might try something like the following:

Have European nations start with high population and high food production, but make them unable to attract immigrants and unable to found colonies. Perhaps make a special high-food terrain or Improvement (like Rich Farmland or Fishing Village) present only in certain Europe areas, to represent Europe's high population density and continuous population growth acting as a source for New World emigrants. Then create a system where each time a colonial civ fills up their Crosses bar, they attract a colonist from their European parent civ. This would make it a lot more feasible to attract a good long-term flow of immigrants from Europe, while still letting European nations retain some power.

To make the Europe civs not attract immigrants back to Europe, you could either have them not produce Crosses, or possibly try something like the following: Each time a European civ fills up their Crosses bar, they gain one-time immunity from sending a colonist to their daughter colonial civ. The next time their daughter colony is getting a new immigrant, it will come from a different Europe civ with the least amount of Crosses.

It also might be better to let immigrants keep appearing on the Europe docks. In history it was hard to transport them over, and as a side effect of the consumption within colonies and no need for transport of immigrants, naval units became a lot less useful and I wasn't motivated to build them.

Borders
Where there are many settlements close together like in North America and Europe, borders were frequently unstable/fluctuating requiring to keep lots of citizens in Town Halls (even though "Liberty" didn't directly move borders historically.) Perhaps you could again try something more like Imperialism 2, where borders only change through city conquest, or by purchasing a tile from the current owner (I'm not sure how the second one could be achieved though).

Techs / Misc
The Technologies are definitely a cool game aspect, though I wasn't able to get many yet due to low population. I was interested to try out the Capitalist and Aristocrat, but couldn't figure out how to attract them. The feature of each Colonist unit having a set of unique stats like Wealth, Literacy, Rebel Sentiment will really add depth to the game. Is it possible to display that info in the mouseover popup? Anyway its a good mod so far, but some of those dramatic changes like immigrants from starvation are just too hard to balance, it might work better with fewer large changes to the Colonization mechanics.

BTW I added on some historic ship lists for Russia, Sweden/Denmark, Portugal and Austria and I'll post that in the modmod thread if you want to use them (just copy over the #shipnames modmod sections onto your CvEventManager.py to use).
 
Thanks for taking the time to test it :)

Ok, I've been playtesting it - first here were a couple bug issues, otherwise I didn't run into many bugs. There was set of python exceptions on game start, maybe from adding stuff in from Civ4: "can't find type enum for tag BONUS_SHEEP" and many others including FEATURE_FLOOD_PLAINS. Also I noticed the tobacconist house wasn't available to build.

I imagine these python exceptions are an effect of me not having deleted the bonuses that were already placed on the map in the text editor (this is a map from Civ4), I did that in the case I added related yields later on (such as Coal) and because it doesn't seem to cause any problems. The Tobacconist's House isn't available because "Cigar Production" has to be researched first.

Thoughts re European Nations
With the Old World parent nations on the map, what are your future plans re how they'll act in the game? They seem currently very weak due to starvation and poor income

Indeed. Maybe adding a few improvements on their territory already built at game start would do a bit to alleviate their problem, though. Another problem in regards to Europe is that the territory is just to small too put a decent amount of population units; a bigger Earth map could also help solve this problem, making it more playable and providing more possible emigration units as well. But that would make the game play slower, perhaps too much.

- It could be interesting to make them receive the taxes paid by their daughter colony,

That would be interesting indeed.

and be able to make war against other European powers, but unable to directly found new colonies of their own. Perhaps in future they might even be playable. You could also make the population of each European parent civ earn half of the money from when their colonial civ sells goods on the Europe screen, and have immigrants for each colonial civ be attracted preferentially from their parent Europe civ rather than randomly from Europe in general.

They already have a bit of a bonus; the crosses of a child civilization will count as if it were four times what it is for the purposes of immigration.

That would be interesting since trading with the mother country could increase the wealth of citizens who could eventually emigrate from there.

Immigration / Crosses
The idea of emigrants being actually taken from Europe could be interesting, but in actual playtesting of this current beta, the changes of having immigration only from starving, plus the changes to cross production/Clergymen and the lack of population growth from food, just ended up making me badly stuck for a long time with no way to get any colonists.

As New Portugal, I started buiding a Church and a School in hopes of attracting immigrants; it took a long time but when I finally placed a Colonist in the school he wasn't graduating and couldn't enter the Church. Finally I saved up enough money to buy a Clergyman (really took quite a long time due to half the cash going to population) and then graduated a second one from school, but even that didn't end up helping; they weren't attracting immigrants I guess because there was no longer much continous starvation and Europe was depleted. Citizens only starve when a player or AI makes bad decisions to leave them without food; over time this happens less and less (especially due to there being apparently no population growth from food), which overall made it not useful to build cross production in the long term and made colonists extremely scarce.

I think it might be easiest just to return to the normal immigration/cross system from the regular game. Also restore the potential for population growth from food. But if you really want to try taking emigrants from Europe, you might try something like the following:

Have European nations start with high population and high food production, but make them unable to attract immigrants and unable to found colonies. Perhaps make a special high-food terrain or Improvement (like Rich Farmland or Fishing Village) present only in certain Europe areas, to represent Europe's high population density and continuous population growth acting as a source for New World emigrants. Then create a system where each time a colonial civ fills up their Crosses bar, they attract a colonist from their European parent civ. This would make it a lot more feasible to attract a good long-term flow of immigrants from Europe, while still letting European nations retain some power.

To make the Europe civs not attract immigrants back to Europe, you could either have them not produce Crosses, or possibly try something like the following: Each time a European civ fills up their Crosses bar, they gain one-time immunity from sending a colonist to their daughter colonial civ. The next time their daughter colony is getting a new immigrant, it will come from a different Europe civ with the least amount of Crosses.

It also might be better to let immigrants keep appearing on the Europe docks. In history it was hard to transport them over, and as a side effect of the consumption within colonies and no need for transport of immigrants, naval units became a lot less useful and I wasn't motivated to build them.

Thanks for the insights. I'll look into these issues and try to come up with some way to solve them; if I can't, I'll step back and change to the original system.

Borders
Where there are many settlements close together like in North America and Europe, borders were frequently unstable/fluctuating requiring to keep lots of citizens in Town Halls (even though "Liberty" didn't directly move borders historically.) Perhaps you could again try something more like Imperialism 2, where borders only change through city conquest, or by purchasing a tile from the current owner (I'm not sure how the second one could be achieved though).

I imagine doing something like that would be beyond my possibilities right now, unfortunately.

Techs / Misc
The Technologies are definitely a cool game aspect, though I wasn't able to get many yet due to low population. I was interested to try out the Capitalist and Aristocrat, but couldn't figure out how to attract them. The feature of each Colonist unit having a set of unique stats like Wealth, Literacy, Rebel Sentiment will really add depth to the game. Is it possible to display that info in the mouseover popup? Anyway its a good mod so far, but some of those dramatic changes like immigrants from starvation are just too hard to balance, it might work better with fewer large changes to the Colonization mechanics.

Adding a display when the unit is on the map I could do easily, but in the city, I'd have to tweak a bit with it; I've been looking at how to do that.

BTW I added on some historic ship lists for Russia, Sweden/Denmark, Portugal and Austria and I'll post that in the modmod thread if you want to use them (just copy over the #shipnames modmod sections onto your CvEventManager.py to use).

I just added them :D
 
I've made a patch reverting the immigration system to what it was before, and making the immigrants appear at the docks again. Whenever a colonial civilization sells to Europe, now that civilization's parent receives the tax. Population growth has been switched back to being dependent on food (and the invention that affects population growth now reduces the population growth threshold).

The ship names modcomp has been integrated :)

I've also changed how the tech year modifier is calculated, you'll notice a huge difference between the techs I haven't set up the historical year yet and the ones I did.

The "colonial emigration modifier" in techs means that your cross threshold will be reduced by that modifier if your parent civ has the tech.

Now the modifiers are applied in a different timing, so that they show up in the potential yields on the plots, and modifiers to manufactured goods will affect how much consumed yields are used up too.

Here it is:

http://dl.dropbox.com/u/1732902/Colonization/The Spread of Imperialism Beta Patch.rar
 
Perfeito! :goodjob: Isso e' muito melhor. I had an enjoyable game as New Portugal and Belgian Congo. And I got an Aristocrat, which was cool :king: I think Africa could use some natives, since Leopold hadnt oppressed them all yet. One thing I noticed: the option to Hurry Immigration With Gold was disabled, was that intended?

Indeed. Maybe adding a few improvements on their territory already built at game start would do a bit to alleviate their problem, though. Another problem in regards to Europe is that the territory is just to small too put a decent amount of population units
True.. you could let too-small European regions start with some unique high-food super-Improvements like Rich Farmland or Fishing Village to let them support a higher population density than colonies. Maybe you could decrease some of the base terrains food yields by 1, in general it seems somewhat easy to farm.

Another interesting touch could be: when the colonial civ sells goods in the Europe screen, they get distributed to the Europe parent civ. The Europe civs could use their manpower to process them into finished goods, and then consume those to get more wealth. This would be a good model of their dependence on mercantilism, and would work in nicely into the mechanism supply and demand influencing market price.

Where there are many settlements close together like in North America and Europe, borders were frequently unstable/fluctuating requiring to keep lots of citizens in Town Halls
Maybe you could just turn off the effect of Liberty on Culture/Borders in the SDK, that should help improve things in Europe and North America.

Possible future idea: when a citizen has consumed enough goods, he could have a chance to gain a random civilian promotion type (e.g. Moneylender: citizen's current Wealth grows by 1% each turn, or Inventor: +25% research yield) or perhaps even become an Aristocrat or Capitalist.

BTW I added on some historic ship lists
I just noticed that the names with accent characters (mostly French/Portuguese) aren't appearing..:( But it might be because I just installed the Blue Marble patch with a different font, do those show up for you?
 
Perfeito! :goodjob: Isso e' muito melhor. I had an enjoyable game as New Portugal and Belgian Congo. And I got an Aristocrat, which was cool :king: I think Africa could use some natives, since Leopold hadnt oppressed them all yet. One thing I noticed: the option to Hurry Immigration With Gold was disabled, was that intended?

I forgot to change it back :p

As for the African natives, the Kongo civilization is already in the mod, but not placed on the map; I'll put them on it.

True.. you could let too-small European regions start with some unique high-food super-Improvements like Rich Farmland or Fishing Village to let them support a higher population density than colonies. Maybe you could decrease some of the base terrains food yields by 1, in general it seems somewhat easy to farm.

It's because of the technologies that give a bonus to food production that colonial and european civs already start out with; I could try decreasing the base terrains by a food yield or two, but I'm afraid that'll make the European civilizations weaker.

EDIT: As for the unique improvements, the problem is that then the player wouldn't be able to build them; the European countries will also get a bit stronger from taxes and yields they receive from the colonies now, so perhaps that won't be needed.

Another interesting touch could be: when the colonial civ sells goods in the Europe screen, they get distributed to the Europe parent civ. The Europe civs could use their manpower to process them into finished goods, and then consume those to get more wealth. This would be a good model of their dependence on mercantilism, and would work in nicely into the mechanism supply and demand influencing market price.

Good idea.

EDIT: Was a simple change to CvPlayer.cpp, added that in (will give the yields to the European civilization's main city).

Maybe you could just turn off the effect of Liberty on Culture/Borders in the SDK, that should help improve things in Europe and North America.

There needs to be a way for borders to switch between cities though; changing the maximum cultural border a city can obtain could help though (so you wouldn't have a high-cultured city taking over the continent).

Possible future idea: when a citizen has consumed enough goods, he could have a chance to gain a random civilian promotion type (e.g. Moneylender: citizen's current Wealth grows by 1% each turn, or Inventor: +25% research yield) or perhaps even become an Aristocrat or Capitalist.

It would be good to have a way to make units into Aristocrats or Capitalists, but which parameters to set for that is the big question.

I just noticed that the names with accent characters (mostly French/Portuguese) aren't appearing..:( But it might be because I just installed the Blue Marble patch with a different font, do those show up for you?

When I tried it, New Portugal didn't get a name for it's starting caravel, and the same happened when I played with England. With New England it shows up fine though.

I'm looking into readding the Founding Fathers; I've tweaked the Founding Father Screen's tab's font size and about six-seven categories in the screen show up well enough - so one could have Army, Commerce, Culture, Industry, Navy and Fathers tabs in the Technology and Founding Fathers screen; unfortunately adding all categories of founding fathers makes the category tabs not show up very well. The ideal option would be to have a different screen for technologiess and founding fathers, but I suppose it's better to have founding fathers sharing that screen with technologies than having no founding fathers in the game at all.
 
It would be good to have a way to make units into Aristocrats or Capitalists, but which parameters to set for that is the big question.
True, you'd want to limit their total number with diminishing returns. Perhaps you could copy the existing Cross bar mechanic with escalating thresholds once each Aristo or Capitalist unit is created. Every time a raw luxury resource like Gold, Silver, Coffee or Dye is consumed by the civ it adds to the Aristocrat bar. Every time a manufactured luxury like Cigars, Cloth, Rum is consumed by the civ it adds to the Capitalist bar. (I think you wouldn't necessarily need to display those on screen if that's difficult.)

As for the unique improvements, the problem is that then the player wouldn't be able to build them
That's true; they'd be nonbuildable for everyone, just placed on the scenario map selectively in certain cramped areas in Europe. So that a country like Portugal, which could only have 2 or 3 land tiles the whole game, could maintain a decent population without needing to distort the Europe map.
It's because of the technologies that give a bonus to food production that colonial and european civs already start out with
Maybe those could be techs only the mainland Europe civs start out with, and the colonists have to earn? The natives seem pretty weak and easy to conquer compared to the normal game, since most of them have low population and only one city. They also charge a low price for land, maybe because they realize they aren't strong enough to resist.

The ideal option would be to have a different screen for technologies and founding fathers, but I suppose it's better to have founding fathers sharing that screen with technologies
That sounds fine actually. You might have the various point categories interrelate to some appropriate Technologies as well - i.e. having the existing Economic Points earned through trade also get the bonus from Capitalists and be included in economic technologies, etc.

When I tried it, New Portugal didn't get a name for it's starting caravel
Nossa! :p It looks like the game apparently can't show anything with accented characters (including most of portugue^s ..) I re-saved it without any accents and it seems to be working better.
 

Attachments

  • CvEventManager.zip
    17.5 KB · Views: 224
True, you'd want to limit their total number with diminishing returns. Perhaps you could copy the existing Cross bar mechanic with escalating thresholds once each Aristo or Capitalist unit is created. Every time a raw luxury resource like Gold, Silver, Coffee or Dye is consumed by the civ it adds to the Aristocrat bar. Every time a manufactured luxury like Cigars, Cloth, Rum is consumed by the civ it adds to the Capitalist bar. (I think you wouldn't necessarily need to display those on screen if that's difficult.)

There's already (a form of) diminishing returns for them, having more than one aristocrat or capitalist in a city won't give more of a bonus (which is: 10% * (100 + CapitalistBonusModifier) / 100), but I suppose you meant it would be harder to get them for each one you got, rather than each further one you got being less useful. Doing an Aristocrat/Capitalist bar would be kind of straightforward to do (though I wouldn't know how to display it yet, if it's global; if it's per city I can display it).

That's true; they'd be nonbuildable for everyone, just placed on the scenario map selectively in certain cramped areas in Europe. So that a country like Portugal, which could only have 2 or 3 land tiles the whole game, could maintain a decent population without needing to distort the Europe map.

Maybe those could be techs only the mainland Europe civs start out with, and the colonists have to earn?

Yes, I think that'd be better. IIRC it would make historical sense too, as agriculture in the New World reverted to earlier forms of agriculture, catching up later on (it is the case of Brazil, though I'm not sure if that's because Brazilian land isn't suitable for European plows, or actual lack of application of those old advances in the New World).

The natives seem pretty weak and easy to conquer compared to the normal game, since most of them have low population and only one city. They also charge a low price for land, maybe because they realize they aren't strong enough to resist.

True, specially civs like the Aztecs and Incas should be stronger, I'll take a look at that.

That sounds fine actually. You might have the various point categories interrelate to some appropriate Technologies as well - i.e. having the existing Economic Points earned through trade also get the bonus from Capitalists and be included in economic technologies, etc.

With Aymerick's help, I was able to add a Research yield, so as of now the father points are directly linked to yields (not much difference in practice, but they use up actual stored "cultural" yields); IIRC the patch already has that change. Most techs only consume research, but political techs (so far only "Nationalism and Imperialism) consumed both research and bells. This has more practical effects regarding to crosses, but usually the religious techs and fathers will increase cross production, so one could consider it an "investment" to get higher immigration rates after getting that tech/father.

Nossa! :p It looks like the game apparently can't show anything with accented characters (including most of portugue^s ..) I re-saved it without any accents and it seems to be working better.

Thanks :) I'll try it out.

More on immigration:

You might have noticed that in the mod, in CivilizationInfos, the "DerivativeCiv" field is replaced with a "ParentCiv" field; that means more than one civilization can have the same parent. When one child civilization receives immigration and increases it's cross threshold, it increases the threshold for all the other colonies that shared that parent (as they would be drawing immigrants from the same place) as well. I tried adding Portuguese India as a second Portuguese colony, and it seems to be working fine.
 
The new version of the shipname modcomp is working perfectly
Good to hear it! Just adds a little flavor but I like it :king:

I was able to add a Research yield, so as of now the father points are directly linked to yields (not much difference in practice, but they use up actual stored "cultural" yields); IIRC the patch already has that change. Most techs only consume research, but political techs (so far only "Nationalism and Imperialism) consumed both research and bells
In playtesting it I wasn't quite sure how making Research worked, since it only shows up as Schools giving a percent bonus to Research. I like that it's going to be a separate yield type, this yield could be assigned the :science: icon from the Civ4 GameFonts.tga file ; if that shows up automatically whenever that yield is produced then players will easily know what it means and understand the system. Does Research currently get made as a side effect from making Bells in the Town Hall? Maybe there should be a Profession Inventor that produces :science: directly.

True, specially civs like the Aztecs and Incas should be stronger, I'll take a look at that.
Yeah, it's a tough problem since in Colonization most natives with less than 4 or 5 cities would be relatively poor/weak and easy to conquer, yet the Earth map wouldn't allow that. You might try merging many of the smaller ones into a single civ for that area. You could ask map wizard TC01 about eventually making a random mapscript to place Europe civs on one continent and native civs elsewhere; that should be possible to do though it would require would require better python knowledge than I have.

How will the natives earn Research to become more developed? I like the idea of them earning Research points whenever their citizens consume advanced yield types. They might need more gold to buy things with, they seemed too poor to trade during my playtest.

PS One thing I forgot to mention from my playtest, IIRC I think New France wasn't yet enabled as playable.
 
Good to hear it! Just adds a little flavor but I like it :king:

:D

In playtesting it I wasn't quite sure how making Research worked, since it only shows up as Schools giving a percent bonus to Research. I like that it's going to be a separate yield type, this yield could be assigned the :science: icon from the Civ4 GameFonts.tga file ; if that shows up automatically whenever that yield is produced then players will easily know what it means and understand the system.

Yes, that's the yield icon I assigned to it. I found where to change that information; I'll upload shortly a new patch and it's be possible to see it produced there (it shows up as a "Provides X:science:" right below the "X yield from citizen". It now also shows up whether an unit is literate and it's current funds.

Does Research currently get made as a side effect from making Bells in the Town Hall?

IIRC in the last version I uploaded it worked correlated to teacherweight (now there is a research value for each unit); so only units with teacherweight higher than 0 did contribute to Research, and with the following formula for research production: 12 * ResearchYieldModifier / TeacherWeight. If the unit wasn't literate, the research output would be halved.

Maybe there should be a Profession Inventor that produces :science: directly.

Maybe... The reason I made units contribute to research while in normal professions was so that educated people could contribute to research even when working (for instance, why would a master artisan need to dedicate himself exclusively to research to develop better handicraft techniques?), which AFAIK is historical.

Yeah, it's a tough problem since in Colonization most natives with less than 4 or 5 cities would be relatively poor/weak and easy to conquer, yet the Earth map wouldn't allow that. You might try merging many of the smaller ones into a single civ for that area. You could ask map wizard TC01 about eventually making a random mapscript to place Europe civs on one continent and native civs elsewhere; that should be possible to do though it would require would require better python knowledge than I have.

That would be interesting.

How will the natives earn Research to become more developed? I like the idea of them earning Research points whenever their citizens consume advanced yield types.

What do you think of them gaining Research when trading with more advanced civilizations?

They might need more gold to buy things with, they seemed too poor to trade during my playtest.

Ok, I will give them more gold :)

PS One thing I forgot to mention from my playtest, IIRC I think New France wasn't yet enabled as playable.

That's because it is bugged, both France and New France's initial city doesn't startup correctly if it's human-controlled.
 
I was able to add a Research yield, so as of now the father points are directly linked to yields (not much difference in practice, but they use up actual stored "cultural" yields); IIRC the patch already has that change. Most techs only consume research, but political techs (so far only "Nationalism and Imperialism) consumed both research and bells
After changing to the yield system, are some father point types still available as separate from the single overall Research yield (ie Military points generated during successful wars)? It would be cool for some techs to have partial contributions from some specialized areas like that in addition to the single type of generic :science:.

Maybe there should be a Profession Inventor that produces :science: directly.
Maybe... The reason I made units contribute to research while in normal professions was so that educated people could contribute to research even when working (for instance, why would a master artisan need to dedicate himself exclusively to research to develop better handicraft techniques?), which AFAIK is historical.
That's true, it wouldn't be good to have Research made only by one Profession. But on the other hand you'd also expect :science: to be heavily influenced by what job they were actually doing (even a Statesman wouldn't invent many steam engines while having to just work as a fisherman, while someone working in industrial professions or especially in School/College would make much more Pesquisa.) Maybe a quick way to incorporate this would be to add a ProfessionResearch modifier tag to Professions, so the overall research would be 12 * ResearchYieldModifier * ProfessionResearch / TeacherWeight.

What do you think of them gaining Research when trading with more advanced civilizations?
It sounds ok, but native trading doesnt always happen that often in game, and transactions like trading Lumber or selling Fur for cash wouldn't create Research, so it seems cooler to get it through the advanced resource consumption, which adds an incentive to buy those resources (which are otherwise not too useful). Also when they first begin to develop (eg discovering the tech for one of the lowest-level processing buildings), they could use the goods they produce to continue to make internal progress. BTW another cool potential way for Europe civs to make money could be selling Techs to their daughter colonies, I'd imagine that might be difficult to code though. I'd guess you already made a xml tag to allow civilizations to get starting techs, a nice feature might be to give each civ a different free starting tech to provide them with a unique advantage.

Yes, that's the yield icon I assigned to it. I found where to change that information; I'll upload shortly a new patch and it's be possible to see it produced there (it shows up as a "Provides X" right below the "X yield from citizen". It now also shows up whether an unit is literate and it's current funds
Great, that should help a lot. With each colonist becoming more unique with his own Wealth and Literacy etc, I was thinking another nice twist might be for me to tweak the name generator so that colonists get a random nation-appropriate forename and surname to make them more memorable. I think I could do that part pretty easily, but the current unittype+profession text display format already overlaps on the main screen, so the display would need to be changed to show name on a different line; would you know how to adjust that?
 
Top Bottom