Keeping the Game Challenging

While the AI is much more challenging from the time I first made this thread there has been concerns about making later eras interesting. I am bumping this thread so we can discuss what can be done to make later eras interesting and unique.

Another issue may be keeping other civs that lag behind able to catch up. For instance we already have "tech diffusion" but I think we may need to boost it since C2C is a much different game than RoM/AND.

Likewise I think as the top civs reach some civs like Colonization and Globalization that tech should boost even the most backwards of civs. Because even today in the most primitive village in the remotest parts of the planet they have influences from the modern world. Be it owning a T-shirt or laptop but still living in a hut or yurt.

I am not saying all civs should be uplifted to the leading civs tech level but they should not live in a vacuum when it comes to techs either.

EDIT: I have also been thinking about revolutions. Especially since I had one in my recent game. I am thinking perhaps they should be more common. And those civs that do come out it probably should be stronger for it. Because what its doing is creating (for the most part) new civs at the same technological level as the nation they split off from. Thus becoming more powerful than struggling barbarian civ that just become a minor civ.

What controls tech diffusion in code. Alphabet, Printing Press, Globalization, Digitization should increase tech diffusion.
 
Once I played with all the tougher barbarian options. Every civ died. I was the last one standing.
 
Once I played with all the tougher barbarian options. Every civ died. I was the last one standing.

Was that before or after the Tribal Guardian was introduced?
 
It seems that certain players find certain parts of the game unbalanced.

Complaint : Too Much Population
If the complaint is there is too much population in the game.
Solution: Raise the required food needed to go up 1 population.

Population = ( INT ( "City Size" ^ 2.8 ) x 1000)

--
Below is raising it by .01 from 2.8 to 2.9

Population = ( INT ( "City Size" ^ 2.9 ) x 1000)

Old: 232,000
New: 282.347
Cities require 21% more food to Grow.


If we raise it to 3.0 they require 47% more food to grow.
If we raise it to 3.1 they require 71% more food to grow.
If we raise it to 3.174 they require 100% more food to grow.
---

CvCity.cpp
Line 9899
Code:
long CvCity::getRealPopulation() const
{
	//return (((long)(pow((float)getPopulation(), [COLOR="Blue"]2.8f[/COLOR]))) * 1000);

	//	Koshling - using table provided by Praetyre to give more realistic results
	static long	realPopulationTable[] =
	{
		0,
		50,
		100,
		250,
		500,
		750,
		1000,
		1500,
		2000,
		2500,
		3000,
		4000,
		5000,
		7500,
		10000,
		15000,
		20000,
		30000,
		40000,
		50000,
		60000,
		70000,
		80000,
		90000,
		100000,
		125000,
		150000,
		175000,
		200000,
		225000,
		250000,
		300000,
		350000,
		400000,
		450000,
		500000,
		550000,
		600000,
		650000,
		700000,
		750000,
		800000,
		850000,
		900000,
		950000,
		1000000,
		1100000,
		1200000,
		1300000,
		1400000,
		1500000,
		1600000,
		1700000,
		1800000,
		1900000,
		2000000,
		2250000,
		2500000,
		2750000,
		3000000,
		3500000,
		4000000,
		5000000,
		6000000,
		7000000,
		8000000,
		9000000,
		10000000,
		12000000,
		14000000,
		16000000,
		18000000,
		20000000,
		22250000,
		25000000,
		27500000,
		30000000,
		35000000,
		40000000,
		45000000,
		50000000,
		55000000,
		60000000,
		65000000,
		70000000,
		75000000,
		80000000,
		85000000,
		90000000,
		95000000,
		100000000,
		110000000,
		120000000,
		130000000,
		140000000,
		150000000,
		160000000,
		170000000,
		180000000,
		190000000,
		200000000
	};
#define NUM_POP_TABLE_ENTRIES (sizeof(realPopulationTable)/sizeof(long))
 
That function has nothing to do with how much food is needed to increase a city's population. In fact, the equation is not even used in C2C (it is commented out). It was just the equation for how the city population number was converted to the "actual population" in people, which is not used for anything except some flavor text in a couple of places (like the "your civilizations has reached 1 million population" type pop-ups).

I haven't really looked at it, but I think the food needed for population growth is controlled mainly by 2 defined values in GlobalDefines.xml: BASE_CITY_GROWTH_THRESHOLD and CITY_GROWTH_MULTIPLIER. There is at least one other factor, iGrowthPercent in CIV4GameSpeedInfo.xml, and there may be more - I have not checked the code.
 
It seems that in GlobalDefines.xml this is what I am looking for.

Code:
<Define>
		<DefineName>CITY_GROWTH_MULTIPLIER</DefineName>
		<iDefineIntVal>3</iDefineIntVal>
	</Define>
	<Define>
		<DefineName>FOOD_CONSUMPTION_PER_POPULATION</DefineName>
		<iDefineIntVal>3</iDefineIntVal>
	</Define>

And like you said in GameSpeedinfo.xml
Code:
<GameSpeedInfo>
			<Type>GAMESPEED_ETERNITY</Type>
			<Description>TXT_KEY_GAMESPEED_ETERNITY</Description>
			<Help>TXT_KEY_GAMESPEED_ETERNITY_HELP</Help>
			[COLOR="RoyalBlue"]<iGrowthPercent>1600</iGrowthPercent>[/COLOR]
			<iTrainPercent>750</iTrainPercent>
			<iConstructPercent>1000</iConstructPercent>
			<iCreatePercent>2000</iCreatePercent>
			<iResearchPercent>2250</iResearchPercent>
			<iBuildPercent>1375</iBuildPercent>
			<iImprovementPercent>1250</iImprovementPercent>
			<iGreatPeoplePercent>1250</iGreatPeoplePercent>
			<iCulturePercent>1250</iCulturePercent>
			<iAnarchyPercent>800</iAnarchyPercent>
			<iBarbPercent>2000</iBarbPercent>
			<iFeatureProductionPercent>1250</iFeatureProductionPercent>
			<iUnitDiscoverPercent>1250</iUnitDiscoverPercent>
			<iUnitHurryPercent>1250</iUnitHurryPercent>
			<iUnitTradePercent>1250</iUnitTradePercent>
			<iUnitGreatWorkPercent>1250</iUnitGreatWorkPercent>
			<iGoldenAgePercent>1250</iGoldenAgePercent>
			<iHurryPercent>16</iHurryPercent>
			<iHurryConscriptAngerPercent>1250</iHurryConscriptAngerPercent>
			<iInflationPercent>3</iInflationPercent>
			<iInflationOffset>-900</iInflationOffset>
			<iGoldModifier>115</iGoldModifier>
			<iOccupationTurnsPopulationPercent>90</iOccupationTurnsPopulationPercent>
			<iVictoryDelayPercent>1250</iVictoryDelayPercent>
			<iTraitGainPercent>1500</iTraitGainPercent>
			<Percents>
				<Percent>
					<ID>ADAPT_DEFAULT</ID>
					<iValue>1250</iValue>
				</Percent>
			</Percents>
			<GameTurnInfos>
				<GameTurnInfo>
					<iMonthIncrement>480</iMonthIncrement>
					<iTurnsPerIncrement>500</iTurnsPerIncrement>
				</GameTurnInfo>
				<GameTurnInfo>
					<iMonthIncrement>360</iMonthIncrement>
					<iTurnsPerIncrement>500</iTurnsPerIncrement>
				</GameTurnInfo>
				<GameTurnInfo>
					<iMonthIncrement>168</iMonthIncrement>
					<iTurnsPerIncrement>500</iTurnsPerIncrement>
				</GameTurnInfo>
				<GameTurnInfo>
					<iMonthIncrement>60</iMonthIncrement>
					<iTurnsPerIncrement>800</iTurnsPerIncrement>
				</GameTurnInfo>
				<GameTurnInfo>
					<iMonthIncrement>36</iMonthIncrement>
					<iTurnsPerIncrement>1000</iTurnsPerIncrement>
				</GameTurnInfo>
				<GameTurnInfo>
					<iMonthIncrement>12</iMonthIncrement>
					<iTurnsPerIncrement>1500</iTurnsPerIncrement>
				</GameTurnInfo>
				<GameTurnInfo>
					<iMonthIncrement>8</iMonthIncrement>
					<iTurnsPerIncrement>1200</iTurnsPerIncrement>
				</GameTurnInfo>
				<GameTurnInfo>
					<iMonthIncrement>4</iMonthIncrement>
					<iTurnsPerIncrement>600</iTurnsPerIncrement>
				</GameTurnInfo>
				<GameTurnInfo>
					<iMonthIncrement>3</iMonthIncrement>
					<iTurnsPerIncrement>1200</iTurnsPerIncrement>
				</GameTurnInfo>
				<GameTurnInfo>
					<iMonthIncrement>1</iMonthIncrement>
					<iTurnsPerIncrement>1800</iTurnsPerIncrement>
				</GameTurnInfo>
				<GameTurnInfo>
					<iDayIncrement>12</iDayIncrement>
					<iTurnsPerIncrement>1825</iTurnsPerIncrement>
				</GameTurnInfo>
				<GameTurnInfo>
					<iMonthIncrement>1</iMonthIncrement>
					<iTurnsPerIncrement>2880</iTurnsPerIncrement>
				</GameTurnInfo>
			</GameTurnInfos>
		</GameSpeedInfo>

I will play with some numbers.
 
Modiki:

CITY_GROWTH_MULTIPLIER Multiplier for additional amount of food needed for each time a city gains a population point

FOOD_CONSUMPTION_PER_POPULATION Amount of food each population point consumes

iGrowthPercent Percent of growth threshold needed
 
Modiki:

CITY_GROWTH_MULTIPLIER Multiplier for additional amount of food needed for each time a city gains a population point

FOOD_CONSUMPTION_PER_POPULATION Amount of food each population point consumes

iGrowthPercent Percent of growth threshold needed

Thanks, I am going to see if I can give my game 33% extra time needed to grow in population, then I will report my findings here.
 
Gold
Complaint: There is Too much Gold.
Solution: Raise Inflation

Inflation is a game mechanism that is there to increase the cost of everything.

iInflationPercent = The rate at which inflation increases. Normal is 27
iInflationOffset = How long the initial period of no inflation lasts. Normal is 10


We can raise iInflationPercent to xx
We can raise iInflationOffset to xx

Inflation is something of a 'fudge factor' so that upkeep increases over the course of the game. There's nothing you can really do to affect it, and it isn't a very significant expense. I've never seen it rise to more than a couple of gold per city.


Until inflation hits 100%, youre basically getting money back. Towards the start of the game, youll have about 12% inflation, youll get alot of money back so you can actually afford some units. As time goes by, inflation will increase, but so will the wealth of your empire. Trying to make massive armies in the modern age can become extremely expensive in this case, as it is in real life. Its actually a rather ingenious way to do it.


It uses the variables <iInflationPercent> & <iInflationOffset> from CIV4GameSpeedInfo.xml and <iInflationPercent> & <iAIPerEraModifier> in CIV4HandicapInfo.xml


I am going to play with some numbers and get more details.
 
i know two problems in the game that are totally unbalanced:
-anti revolution buildings giving bonus to all the cities(at least that it what the builfing description says).also we should now the unstability number in civics rather than the current "increase/decrease"
-sieges being too much favourable to human players .the city defenses are seriously overpower and the ai doesn't know well how to take cities
 
It seems that certain players find certain parts of the game unbalanced.

Complaint : Too Much Population
If the complaint is there is too much population in the game.

Well the addition of so many Prehistoric Hygiene buildings just means the city is less sick and then can grow faster.

i know two problems in the game that are totally unbalanced:
-anti revolution buildings giving bonus to all the cities(at least that it what the builfing description says).also we should now the unstability number in civics rather than the current "increase/decrease"
-sieges being too much favourable to human players .the city defenses are seriously overpower and the ai doesn't know well how to take cities

But you can always bribe your cities with gold before they get to be too rebellious. And since people say there is too much gold then there should be more than enough gold to appease your cities.
 
I play on Monarch-Immortal and gold is sacred to me, I am rarely at +20. I said that because people said there is too much gold. I have a theory the majority might be playing at low difficulties or there might be an issue with Handicaps.
 
I play Snail, what Speed do you guys play?

I cant play snail, too darn slow for me, so i use Marathon when i want a slower game, otherwise i have to Stick to Epic, and to me that is a little slow after medieval era.
If a tech takes me 10 or more turns, thats too much for me, personally. Hyper Tension.
 
ls612: iGoldModifier = Global percentage modifier for ALL costs. Higher equals less gold, lower equals more gold. Default is 100.

It seems the values are reversed in the code.

Marathon
Code:
GameSpeedInfo>
			<Type>GAMESPEED_MARATHON</Type>
			<Description>TXT_KEY_GAMESPEED_MARATHON</Description>
			<Help>TXT_KEY_GAMESPEED_MARATHON_HELP</Help>
			<iGrowthPercent>340</iGrowthPercent>
			<iTrainPercent>190</iTrainPercent>
			<iConstructPercent>270</iConstructPercent>
			<iCreatePercent>420</iCreatePercent>
			<iResearchPercent>450</iResearchPercent>
			<iBuildPercent>240</iBuildPercent>
			<iImprovementPercent>250</iImprovementPercent>
			<iGreatPeoplePercent>250</iGreatPeoplePercent>
			<iCulturePercent>250</iCulturePercent>
			<iAnarchyPercent>170</iAnarchyPercent>
			<iBarbPercent>420</iBarbPercent>
			<iFeatureProductionPercent>250</iFeatureProductionPercent>
			<iUnitDiscoverPercent>250</iUnitDiscoverPercent>
			<iUnitHurryPercent>250</iUnitHurryPercent>
			<iUnitTradePercent>250</iUnitTradePercent>
			<iUnitGreatWorkPercent>250</iUnitGreatWorkPercent>
			<iGoldenAgePercent>250</iGoldenAgePercent>
			<iHurryPercent>70</iHurryPercent>
			<iHurryConscriptAngerPercent>270</iHurryConscriptAngerPercent>
			<iInflationPercent>10</iInflationPercent>
			<iInflationOffset>-240</iInflationOffset>
[COLOR="Blue"]			<iGoldModifier>100</iGoldModifier>[/COLOR]
			<iOccupationTurnsPopulationPercent>18</iOccupationTurnsPopulationPercent>
			<iVictoryDelayPercent>250</iVictoryDelayPercent>
			<iTraitGainPercent>300</iTraitGainPercent>
			<Percents>

Blitz
Code:
<GameSpeedInfo>
			<Type>GAMESPEED_BLITZ</Type>
			<ReplacementID>TRAIT_ALT_BLITZ</ReplacementID>
			<Description>TXT_KEY_GAMESPEED_BLITZ</Description>
			<Help>TXT_KEY_GAMESPEED_BLITZ_HELP</Help>
			<iGrowthPercent>40</iGrowthPercent>
			<iTrainPercent>40</iTrainPercent>
			<iConstructPercent>40</iConstructPercent>
			<iCreatePercent>40</iCreatePercent>
			<iResearchPercent>40</iResearchPercent>
			<iBuildPercent>40</iBuildPercent>
			<iImprovementPercent>40</iImprovementPercent>
			<iGreatPeoplePercent>40</iGreatPeoplePercent>
			<iCulturePercent>40</iCulturePercent>
			<iAnarchyPercent>40</iAnarchyPercent>
			<iBarbPercent>40</iBarbPercent>
			<iFeatureProductionPercent>40</iFeatureProductionPercent>
			<iUnitDiscoverPercent>40</iUnitDiscoverPercent>
			<iUnitHurryPercent>40</iUnitHurryPercent>
			<iUnitTradePercent>40</iUnitTradePercent>
			<iUnitGreatWorkPercent>40</iUnitGreatWorkPercent>
			<iGoldenAgePercent>66</iGoldenAgePercent>
			<iHurryPercent>200</iHurryPercent>
			<iHurryConscriptAngerPercent>40</iHurryConscriptAngerPercent>
			<iInflationPercent>60</iInflationPercent>
			<iInflationOffset>-40</iInflationOffset>
		[COLOR="Blue"]	<iGoldModifier>80</iGoldModifier>[/COLOR]
			<iVictoryDelayPercent>40</iVictoryDelayPercent>
			<iTraitGainPercent>50</iTraitGainPercent>
			<Percents>
 
Back
Top Bottom