Revolution: what's your experience?

Found new options of revolutions! They are great!!! Many thanks.
Also, are there old mechanics of whole cities going another civ present or is there just troops spawning outside city walls?
 
In my recent experience, the A.I has a hard time with revolutions. Mind you, not as bad as to cripple them. Here's specifics:

A holy city that doesn't have state religion will probably revolt for a real long time (until renaissance and beyond) for the A.I.. I think that's fair.

A lot of civs break off WAY TOO EARLY for the A.I.. Playing G.E.M with 26 civs, the civ count (living and dead) tends to hit 50 (the max) a quarter of the way through the game. Civs splinter really quick, leaving barbarian revolters for the rest of the game and no option to release a colony vassal. Maybe there can be something where Rev doesn't kick in for the 1st 5th of the game, or just spawns no new civs?

The A.I cannot manage islands/colonies in the early game. I've seen it multiple times where Khmer or India will found cities in indonesia only to have them go to constant revolt. Madagascar and Faroe is the same. They all end up inevitably barbarian. Maybe the revolt could be lowered for colonies, and raised for distance to palace to balance things out?
 
In my recent experience, the A.I has a hard time with revolutions. Mind you, not as bad as to cripple them. Here's specifics:

A holy city that doesn't have state religion will probably revolt for a real long time (until renaissance and beyond) for the A.I.. I think that's fair.

A lot of civs break off WAY TOO EARLY for the A.I.. Playing G.E.M with 26 civs, the civ count (living and dead) tends to hit 50 (the max) a quarter of the way through the game. Civs splinter really quick, leaving barbarian revolters for the rest of the game and no option to release a colony vassal. Maybe there can be something where Rev doesn't kick in for the 1st 5th of the game, or just spawns no new civs?

The A.I cannot manage islands/colonies in the early game. I've seen it multiple times where Khmer or India will found cities in indonesia only to have them go to constant revolt. Madagascar and Faroe is the same. They all end up inevitably barbarian. Maybe the revolt could be lowered for colonies, and raised for distance to palace to balance things out?

I agree...

In recent games the AI was incapable of having a stable state and any opponent that was becoming anything close to a formidable opponent imploded - making the game rather boring tbh...
 
The A.I cannot manage islands/colonies in the early game. I've seen it multiple times where Khmer or India will found cities in indonesia only to have them go to constant revolt. Madagascar and Faroe is the same. They all end up inevitably barbarian. Maybe the revolt could be lowered for colonies, and raised for distance to palace to balance things out?
This. I often change the modifiers to make nearby "colonies" easier to hold than distant cities on the same continent. For example, on GEM, it should be easier for England to hold a city just across the channel than for France to hold a city in Russia. Not that I've seen that exact situation, but in general I have seen the AI consistently lose all overseas cities with the default modifiers.
 
My experience on Monarch difficulty is that there are perhaps too many revolutions going on. The AIs seem to be suffering from revolutions, and I'm definitely suffering from them, really early on in the BCs. It could be my sloppy playing, but in my opinion having the revolution and unhappiness mechanisms feeding each other isn't that fun to play with. Unhappy city => revolution => even more unhappy city with more rebels.

The distance penalties for both unhappiness and revolutions are quite high, but I guess that's intentional and I'm ok with it.

I had a weird thing happening in one game, I'm not sure if it's intentional or not? I razed an Ottoman city, and some turns later sent a settler near that location, around 3 tiles away from the razed city. The culture in that area showed neutral since I had razed all the Ottoman cities nearby. After founding the city, it had 0% Persian culture, 10 unhappy faces for wrong nationality, and was definitely doomed to be a nest of rebels for the following 2000+ years... RevIndex was rising high because of nationality penalty.

Also the "Too big city" unhappiness mechanism in the ancient era at least feels a bit sloppy. Jumping from zero to 4 unhappy faces when growing 1 pop feels just plain wrong. There have been several cases where I just can't work some tiles for hammers/commerce just because the tile creates too much food also. Having a start with lots of food feels bad in the current version, and that's just plain weird. Are the unhappiness values editable somehow in the xml or does that need coding? I haven't suffered from unhealthiness that much in recent games, I think that should be the other limiting factor, rather than the steep and sudden unhappiness at size 4. I would be more happy to see a heavy unhealthiness penalty for big cities in the early eras, in addition with a moderate unhappiness factor.
 
I'm poking a little at Revolutions.py to see if I can ferret out why a city that is connected to the capital with Cart Paths has a HIGHER distance increase in the RevIndex than a city that is not connected at all. I find this particular issue to be both counter-intuitive and extremely frustrating (almost to the point of making the Ancient Era unplayable for me). I am trying to parse a particular line of Python code in the file. Line 1302 of the file reads:

Code:
if( not capital == None and not pCity.isConnectedTo(capital) ) :

If I read this right, this returns TRUE if both the player has a capital and the other city in question is NOT connected to the capital, correct? Or what does this mean?

Likewise, do getTradeRoutes and getTradeRouteModifier do anything now that Trade Routes are eliminated? Are these factors just zero?
 
I'm poking a little at Revolutions.py to see if I can ferret out why a city that is connected to the capital with Cart Paths has a HIGHER distance increase in the RevIndex than a city that is not connected at all. I find this particular issue to be both counter-intuitive and extremely frustrating (almost to the point of making the Ancient Era unplayable for me). I am trying to parse a particular line of Python code in the file. Line 1302 of the file reads:

Code:
if( not capital == None and not pCity.isConnectedTo(capital) ) :

If I read this right, this returns TRUE if both the player has a capital and the other city in question is NOT connected to the capital, correct? Or what does this mean?

Likewise, do getTradeRoutes and getTradeRouteModifier do anything now that Trade Routes are eliminated? Are these factors just zero?

Logically, a player should always have a capital if he has at least one city (shouldn't he?).
So the first part is more of a safety check that the capital (as a python object) is really defined, to prevent crashes from accessing it in case it isn't.

The rest is a check if some city is connected to the capital, whatever is referenced by pCity.

edit:
Code:
if( not capital == None and not pCity.isConnectedTo(capital) ) :
    cityDistCommBonus += min(150, 50 + pCity.getTradeRoutes() * 10)		

cityDistModifier = ( 307.0*cityDistRaw / cityDistMapModifier ) / ( 1.0 + ( cityDistCommBonus / 100.0 ) )
The following line computes the city distance Commerce bonus, judging from the variable name and from the fact that trade routes are involved.
This distance-commerce bonus takes then part in the computation of the city distance modifier, presumably for the rev index. I never knew that trade route commerce plays a role in this way :)
 
My experience on Monarch difficulty is that there are perhaps too many revolutions going on. The AIs seem to be suffering from revolutions, and I'm definitely suffering from them, really early on in the BCs. It could be my sloppy playing, but in my opinion having the revolution and unhappiness mechanisms feeding each other isn't that fun to play with. Unhappy city => revolution => even more unhappy city with more rebels.

The distance penalties for both unhappiness and revolutions are quite high, but I guess that's intentional and I'm ok with it.

I had a weird thing happening in one game, I'm not sure if it's intentional or not? I razed an Ottoman city, and some turns later sent a settler near that location, around 3 tiles away from the razed city. The culture in that area showed neutral since I had razed all the Ottoman cities nearby. After founding the city, it had 0% Persian culture, 10 unhappy faces for wrong nationality, and was definitely doomed to be a nest of rebels for the following 2000+ years... RevIndex was rising high because of nationality penalty.

Also the "Too big city" unhappiness mechanism in the ancient era at least feels a bit sloppy. Jumping from zero to 4 unhappy faces when growing 1 pop feels just plain wrong. There have been several cases where I just can't work some tiles for hammers/commerce just because the tile creates too much food also. Having a start with lots of food feels bad in the current version, and that's just plain weird. Are the unhappiness values editable somehow in the xml or does that need coding? I haven't suffered from unhealthiness that much in recent games, I think that should be the other limiting factor, rather than the steep and sudden unhappiness at size 4. I would be more happy to see a heavy unhealthiness penalty for big cities in the early eras, in addition with a moderate unhappiness factor.

Following up on next game, I changed the Revolution Difficulty to 0.0 (from default 2.5), and things seem to go quite easy now. I think sweet spot for the offset could be somewhere between the default and zero... is there a possibilty to add more steps, or edit this from XML?

The city size unhappiness isn't that noticable in later eras, but it ancient era it was really... well, not that good mechanic.
 
So I think I have figured out exactly why Cart Path connected cities get more revolution from distance than unconnected cities.

In Revolution.py, there is a variable named cityDistCommBonus. This is a summation of various factors that affect the connectedness of the city and is eventually used in calculating the revolution index change from distance. For example, once you can trade over Ocean, cityDistCommBonus is increased by 50 for all cities, with an additional +25 for a coastal city if you can trade over Coast and +50 for trading over Ocean. Cities with access to Power get +150. Cities with airports get +100 per point of airlift. There are a lot of other factors involved before the final number is calculated.

What I have identified are two factors that are both applied at the same step. The first was this, that I already asked about but I'm fairly confident applies to cities that are NOT connected to the capital:
Code:
if( not capital == None and not pCity.isConnectedTo(capital) ) :
	cityDistCommBonus += min(150, 50 + pCity.getTradeRoutes() * 10)
So what happens here is that cities that aren't connected have a modifier of 50 at this step (since Trade Routes are 0, and 50 is always less than 150).

The other calculation is for cities that ARE connected, and I'm snipping out some commented-out lines:
Code:
bCityIsConnected = pCity.isConnectedTo(capital)
if bCityIsConnected :
	eRouteType = pCity.plot().getRouteType()
	bTechRouteModifier = False
	if eRouteType != -1:
		for i in range(gc.getNumTechInfos()):
			tech = gc.getTechInfo(i)
			if(gc.getRouteInfo(eRouteType).getTechMovementChange(i) != 0 and pTeam.isHasTech(i)):
				bTechRouteModifier = True
				break
	if bTechRouteModifier:
		cityDistCommBonus += 150 - ( gc.getRouteInfo(pCity.plot().getRouteType()).getFlatMovementCost() + gc.getRouteInfo(pCity.plot().getRouteType()).getTechMovementChange(i) )*1.25					

	else:
		cityDistCommBonus += 150 - ( gc.getRouteInfo(pCity.plot().getRouteType()).getFlatMovementCost() )*1.25
What this does is give the city a cityDistCommBonus addition based on the route type underlying the city plot. It doesn't actually matter what routes connect the two cities; if you have Teleportation tech, all your cities count as having Jumplanes.

The factor used is the getFlatMovementCost for the route type, adjusted by any TechMovementChanges. TechMovementChanges include the +1 Road Movement at Automobile and +1 Highway Movement at Manufacturing.

The problem is this: Cart Paths have a FlatMovementCost of 120. 120*1.25 is 150. This means that a city connected by Cart Paths gets a zero cityDistCommBonus, while an unconnected city gets that +50. And this is why connected cities are worse for distance.

I did some playing around a little bit, and I think the proper solution to this is using a min function so that instead of using a flatMovementCost that is too high, a value gets switched in that will always be better. Players should be encouraged to connect their cities.

So the formula goes from this:
Code:
cityDistCommBonus += 150 - ( gc.getRouteInfo(pCity.plot().getRouteType()).getFlatMovementCost() )*1.25

to this (changes marked in blue):
Code:
cityDistCommBonus += 150 - [COLOR="Blue"]min([/COLOR]( gc.getRouteInfo(pCity.plot().getRouteType()).getFlatMovementCost() )[COLOR="Blue"], 75)[/COLOR]*1.25

Setting the minimum to 75 seems to produce the best compromise. 60 is the value for Road, and I don't want Cart Paths to be better than Roads.

This should solve the distance problem without making any further changes to any other value in the mod. I really want to make this change because I feel it is so counterintuitive and frustrating to have constant Ancient Era revolutions.
 
Latest Revision, "Rev Difficulty" is at 5.0.... Revolutions are working fine in the early game - they're tough but manageable...

But once I get to the Medieval, they just level out at Safe/Flat for.... Like, ever. Sure, I had a few that ended up getting rebellions even at Safe, but it just... Seems like Revolutions disappear every time I get to the late Medieval and then they never come back.

Distant colonies and conquest? Automatic Safe/Flat. My empire will say 'Neutral/Worsening' for a hundred turns and nothing changes. I have Tax Officies in almost every city. I capture enemy cities and they have more "Bad" traits than "Good" ones as far as Rev is concerned. Safe/Flat is all I get the moment I capture them. Even when I had a really good empire setup, this used to at *least* be 'Warning' level when capturing an enemy city.

Civ4ScreenShot0342.JPG Civ4ScreenShot0343.JPG Civ4ScreenShot0344.JPG
(My Empire Stability has said Worsening for the past 200 turns. It's never been anything other than Neutral.)

Posted a few screenshots - I took that screenshot on the same turn I took that city, and the RevCheats screen. Perhaps you can see something I don't. It just... Seems odd that after a while Revolutions completely vanish, and my empire is in perpetual harmony no matter what I do to it. Early on everything's fine - unless I'm set to 10.0 difficulty, in which case it's like a game on Deity - absolute hell then.
Maybe everything's working as intended and I just did a good job at crushing the revolutions, but *permanently*? Even capturing a city in warfare shouldn't default to Safe and REMAIN Safe forever. Off continent in land that my culture had never touched nor having a religion of mine present, the cities just zapped to Safe/Flat and didn't budge - even after removing my garrison and leaving it like that for a dozen turns. (I ended up letting their empire recapture it, then I took it back and razed it)

It's not that Revolutions seem to be too easy... They're actually quite challenging but not overly brutal for the Ancient and Classic era, but in my experiences they just vanish as I move into the Medieval and Post-Medieval era, and I forget I even had the option enabled when I'm in the Industrial and Modern. Up until those points, it seems to work fine. But then the difficulty just plummets as the game goes on.

It takes the loss of a city for anything to actually change. As far as I can tell, my empire's stability is actually "worsening" but the decline is too small for it to really budge any.
 
Took a quick look at a neighboring enemy city, the one I'm at war with.
Civ4ScreenShot0345.JPG

Tons of stability bonuses, but rapidly worsening? This is pretty much the ONLY time I ever see this happen in my cities: When another nation captures a city from me (Be it someone I'm at war with or the Barbarians). Until then, it just sits happily at Safe/Flat - or, rather uncommonly, Safe/Worsening (But apparently worsening at such a minor rate that it doesn't really budge)


And yes, when I captured that city on the following turn it went to Safe/Flat immediately.
 
I don't like how I can't have colonies even if I have like 20 units stacked and the best civics. It's annoying.
 
(...)
Maybe everything's working as intended and I just did a good job at crushing the revolutions, but *permanently*?(...)

Why not load an earlier save and try autoplay on it? See how the AI can handle your empire.
 
I don't like the fact that AI cities constantly revolt and join my empire without my permission.I'd like an option to accept them or not.I don't want to keep most of these cities so I gift them back to other civs but after a while they revolt again and join me ...etc.:wallbash:
 
I don't like the fact that AI cities constantly revolt and join my empire without my permission.I'd like an option to accept them or not.I don't want to keep most of these cities so I gift them back to other civs but after a while they revolt again and join me ...etc.:wallbash:
Actually you should get a popup asking you if you want to accept that city or not. And you certainly can refuse it. Can you upload a save? I'll have a look when I have some free time.
 
I don't like the fact that AI cities constantly revolt and join my empire without my permission.I'd like an option to accept them or not.I don't want to keep most of these cities so I gift them back to other civs but after a while they revolt again and join me ...etc.:wallbash:
Actually you should get a popup asking you if you want to accept that city or not. And you certainly can refuse it. Can you upload a save? I'll have a look when I have some free time.
 
After a nineteen turn (!!) period of revolt, the city finally comes out of it and is productive again...... For one single turn. :blush:
Civ4ScreenShot0413.JPG

Usually I got 2 ~ 3 turns of peace between revolutions, and then 14 ~ 18 turns of stalled productivity - now I'm down to one turn :sad:


I managed to get the other city off-screen under control a while ago, it's Safe now but this city just refuses to give in. Can't add any culture or happiness buildings to it (Not that they really seem to help...) because of the HUGE stretches of times the Revolutions cripple the city compared to the pitiful amounts of time it's not revolting, so I don't really know what to do with it. The Patrol promotions don't help with these situations do they? Reduce the chances it'll revolt again the turn after it comes out of revolt? I still don't know what the Patrol line is really supposed to do...
 
After a nineteen turn (!!) period of revolt, the city finally comes out of it and is productive again...... For one single turn. :blush:
View attachment 399162

Usually I got 2 ~ 3 turns of peace between revolutions, and then 14 ~ 18 turns of stalled productivity - now I'm down to one turn :sad:


I managed to get the other city off-screen under control a while ago, it's Safe now but this city just refuses to give in. Can't add any culture or happiness buildings to it (Not that they really seem to help...) because of the HUGE stretches of times the Revolutions cripple the city compared to the pitiful amounts of time it's not revolting, so I don't really know what to do with it. The Patrol promotions don't help with these situations do they? Reduce the chances it'll revolt again the turn after it comes out of revolt? I still don't know what the Patrol line is really supposed to do...
Have you also tried bribing the city?
 
Top Bottom