Balancing citystates: ignore/capture/alliance

Could you please try to describe the result of the scenario I posted in #73 then?
That doesn't seem like a simple calculation to me.


These don't make sense to me. If its the same total food regardless of situation, then how is there any extra incentive to connect cities or annex puppets or remove blockades? If a city is blockaded, you just the bonus to some other city instead. Am I missing something here?

It doesn't add any strategic value that I can see, but it does mean that you have food yields constantly changing any time these parameters chance, which could potentially lead to a need for re-optimizing, which seems frustrating.

I'm not sure how many cities thal has modded in so i couldn't answer that right now, im not saying its the easiest to do to figure out exact numbers but if its the top 5 cities and one gets blockaded it could go into drastic starvation due to half its CS food going away. Same as if you have a big city thats not connected, you will want to connect it to make sure the food is going to those cities that really need to the most to grow.

There is some general strategy involved like i said above but its not going to add a ton of depth or anything.
Basically all it does is give double food for capital, half for non-connected (basically connect them asap), and half if you are blockaded which makes sense realism sense, and if you capture a huge AI city and want to raise it, its not going to take food for X turns before getting smaller then your top X cities.

So if your top 5 cities are all connected....

wow nevermind i didn't see that Thal had changed it so that you get food based off of city size itself, I actually agree with you now, lol. i thought the food got distributed as before equally among cities but that the capital got double and you had to make sure they were connected. I agree that changing based on city size is not needed at all. Sorry Ahriman :p
 
im not saying its the easiest to do to figure out exact numbers but if its the top 5 cities and one gets blockaded it could go into drastic starvation due to half its CS food going away
It seems each city is only going to be getting 1-3 food or so in most circumstances, so this probably isn't a big deal

Also, either you have rounding and the +/- 50% aren't very accurate, or you don't have rounding and you have high decimal figures.

Same as if you have a big city thats not connected, you will want to connect it to make sure the food is going to those cities that really need to the most to grow.
Arguably you would prefer food to go to smaller cities. 1 extra food in a small city reduces the time needed to gain another citizen much more than 1 extra food in a large city.

wow nevermind i didn't see that Thal had changed it so that you get food based off of city size itself, I actually agree with you now, lol. i thought the food got distributed as before equally among cities but that the capital got double and you had to make sure they were connected.
'nuff said then :-)
 
This is what i get for spending too much time on civfanatics at work, lol. I really need to make sure i triple check over what i read :hammer2:
 
I agree with Ahriman: If you add too many modifiers the system just becomes too complex for a fairly unimportant sub-system. You don't really want to spend a lot of time min-maxing your food by optimizing puppets and such. In fact, even the avoid growth or custom city weights is already borderline micro heavy, but in the former case it's micro that's already in the game and in the latter it does actually add interesting decisions. And yes, even if you can funnel all your food into your new-founded city. Improving the land and getting multiplier buildings also takes time so it's not a given that this is actually the best way to go in my opinion.
 
A good example of a reason to have modifiers in general is: would anyone really want food sent to a city being razed? :)

The reason for avoid growth and puppet modifiers is if we capture a highly-populated city. Without a way to block food in an annexed city or reduce it for puppets, it could cause starvation elsewhere. Reducing food to puppets and 'avoid growth' cities gives us time to react and strategize.

Just like city capture, the 'connected' modifier is to mitigate the impact of newly-founded cities, again to give us time to adjust things elsewhere. I think the large gold income and doubled food from connecting a new city outweighs a small 0.1-0.5 reduction in food in all other cities.

It's reasonable to remove the blockade modifier since it's something we can't control and isn't a part of empire growth. I'll do so. :thumbsup:

You should be able to figure out what the bonuses would be before you commit to spending the gold on purchasing the city state alliance.
I'm uncertain it's possible to achieve pre-determined certainty with citystate bonuses, because both the spawn timer and spawn unit of militaristic citystate are randomized. I don't know of a way to let the player determine the unit type they receive in a way the AI could understand.

Also, either you have rounding and the +/- 50% aren't very accurate, or you don't have rounding and you have high decimal figures.
The Tradition policy increases growth rate by .33... everything in the game already has high decimal figures.

How is this mechanism more fun than a simpler mechanic, say for example:
a) Give +X food, spread across all your cities. [So for example, if X is 6 and you have 4 cities, then your largest 2 cities get +2 and your other 2 cities get +1.]
b) Give +X food spread over your largest Y cities.
It doesn't add any strategic value that I can see, but it does mean that you have food yields constantly changing any time these parameters chance, which could potentially lead to a need for re-optimizing, which seems frustrating.
In the first system the parameters change each time a city is added to the empire, and in the second system things change every time a city enters/leaves the top 5. I'm not sure how to do these suggestions in a way that meets your goal of static food distribution.
 
Thal you are so much better at explaining things then i am, lol.

Maybe a compromise between both methods would be to make the food per city a static amount regardless of size for say the top 5 cities. Then if you add the basic modifiers for cities being raised or puppeted to make sure they dont end up taking the food. You could also keep the city not being connected i suppose to represent lack of ability to transfer food to that city.

So say you have 6 cities and 20 food from CS. The top two would get 4 food and the next 3 would get 3 food and the last not getting any. If city 2 isn't connected then the top city would get 4 the second would only get 2 for not being connected, then the third and fourth would get 4 and the last get 3.

This would keep it relatively easy to figure out while still allowing for some percentage based things and to skip 'no growth' cities and make connecting important.
 
Thal you are so much better at explaining things then i am, lol.

Maybe a compromise between both methods would be to make the food per city a static amount regardless of size for say the top 5 cities. Then if you add the basic modifiers for cities being raised or puppeted to make sure they dont end up taking the food. You could also keep the city not being connected i suppose to represent lack of ability to transfer food to that city.

So say you have 6 cities and 20 food from CS. The top two would get 4 food and the next 3 would get 3 food and the last not getting any. If city 2 isn't connected then the top city would get 4 the second would only get 2 for not being connected, then the third and fourth would get 4 and the last get 3.

This would keep it relatively easy to figure out while still allowing for some percentage based things and to skip 'no growth' cities and make connecting important.

I'll repeat myself and say that rather than keep debating something no one's tried, and which most people are having a hard time arguing against consistently, that we try it for a while and see if it's just too complicated to make it enjoyable. My guess is that it won't be.
 
A good example of a reason to have modifiers in general is: would anyone really want food sent to a city being razed?
What are the chances that a city being razed is one of your largest X cities?

But even then, you could make an exception for razing without all the complications of the allocation rule you propose.

Reducing food to puppets and 'avoid growth' cities gives us time to react and strategize.
...
again to give us time to adjust things elsewhere.
I disagree with this.
I would much prefer to have a single noticeable change that I can respond to in a particular turn than to have some gradual change that forces me to constantly keep retweaking.
If I capture a new city and that sucks up a lot of food, I can instantly move some guys to farms instead of mines on that same turn, and I only have to do it once. Its much worse if I have to keep making changes every time a city's population changes.

I'm uncertain it's possible to achieve pre-determined certainty with citystate bonuses,
You know with certainty how much culture you are getting. You know with certainty that you're getting a military unit every X turns. In vanilla, you know with certainty what the food bonus is in every city you have.

The Tradition policy increases growth rate by .33... everything in the game already has high decimal figures.
High decimal figures get very confusing, particularly with the kind of allocation rule you're confusing. It becomes hard to judge the impact.

Like I said; why don't you go through a worked example, like the one I posed here:
http://forums.civfanatics.com/showpost.php?p=10196047&postcount=73

In the first system the parameters change each time a city is added to the empire, and in the second system things change every time a city enters/leaves the top 5.
So? These events are rarer than the union of:
i) Any city changes population
ii) Any new city is acquired
iii) Any city gains/loses trade route access
iv) Any city leaves resistance
v) Any city is annexed
vi) Any city has avoid growth selected.

The set of situations when you must reoptimize is strictly larger in your proposal than in either of mine.

make the food per city a static amount regardless of size for say the top 5 cities. Then if you add the basic modifiers for cities being raised or puppeted to make sure they dont end up taking the food. You could also keep the city not being connected i suppose to represent lack of ability to transfer food to that city.

So say you have 6 cities and 20 food from CS. The top two would get 4 food and the next 3 would get 3 food and the last not getting any
This is my method b).
I'll repeat myself and say that rather than keep debating something no one's tried, and which most people are having a hard time arguing against consistently, that we try it for a while and see if it's just too complicated to make it enjoyable.
Because features once added tend to become fait-accompli.

Anyway, its not a huge deal, I just worry that this mod is going to be overwhelming for any new player because of all the extra incremental mechanical complications you're adding.
They don't seem a big deal to you because you're adding them one at a time, but to a new player faced with the mod for the first time, they risk facing so many changes and complications that they get lost in the details.
I worry that this mod is moving towards suffering from feature-creep.

There is some value in simplicity and transparency.

Anyway, I've made my point, I won't belabor it.
 
This is my method b).

I didn't think you wanted any parameters added, but maybe i was wrong :p All im saying is that as long as the base distribution is simple im not opposed to having exceptions to the rule.

Also as far as the mod having too many features im not too worried about that as long as each feature isn't too complex that you would need to have the read-me at hand to figure out each piece. I agree that if there are too many variables to the food distribution though that it could be very confusing for ppl who wonder why the food each city is getting changes every few turns.

But that's all i will say until i test the current method.
 
Because features once added tend to become fait-accompli.

Anyway, its not a huge deal, I just worry that this mod is going to be overwhelming for any new player because of all the extra incremental mechanical complications you're adding.
They don't seem a big deal to you because you're adding them one at a time, but to a new player faced with the mod for the first time, they risk facing so many changes and complications that they get lost in the details.
I worry that this mod is moving towards suffering from feature-creep.

There is some value in simplicity and transparency.

I also worry about feature creep, and it's possible that this may become too complicated. But 1) we're playing a sophisticated strategy game and 2) this is the beta, as far as I know. Thal has surprised me (in a positive way) by how often he has reversed adjustments, based on our feedback. This is why I'm not too concerned that if this approach proves unpopular among the testers, Thal will leave it as is.
 
How does a MCS interact with a OCC-game?

Because in the current (mod) system of 5 food per allied MCS, there is a 66% increase in food, when owning only a capital. Making OCC's much easier.
 
@Ahriman
As Txurce pointed out, just because something is in the mod doesn't mean it will stay that way. I can think of a few big things I added, then removed based on feedback and changing circumstances:
  • Perkus's free tech mod.
  • Adjacency bonuses for trading posts.
  • The cost change to national wonders.
  • The improvement bonuses on Engineering and Fertilizer I removed/changed as a direct result of your feedback in particular. :)
 
Making OCC's much easier.
I don't really see this as a problem. OCC is a deliberate challenge you're setting for yourself anyway, its tough enough already on a high difficulty level.

@Ahriman
As Txurce pointed out, just because something is in the mod doesn't mean it will stay that way.
Fair enough.
However, a feature that gets added is still rather more likely to be in the mod in future than one that is not added. And you have to do the implementation work of coding it, as opposed to working on other issues.

Plus, once something is added, myself (and maybe others?) tend to treat it as a design decision that has been made, and to try to shut up about it, so you don't get as much feedback (and people tend to reserve feedback for the most obvious/serious issues, whereas being confused by the impact of an MCS is relatively minor).
I'm enough of a PITA as it is without re-litigating design decisions that you've made up your mind on.

For example, I don't like moving +1 gold on river tiles to a building, but I've made that point already, so I'm not going to keep complaining. I know from experience that its really annoying when people keep wanting to revisit design decisions that are settled.

Anyway, my graphics card is busted so I can't run Civ5 or do any testing atm.
 
I understand that completely, and you're right that usually if I've implemented something I weigh more in the direction of keeping it. It's not completely a set decision, though. I put a lot of discussion and work into shifting the cost of national wonders from individual cities to the buildings themselves, yet when it was clear that idea just wouldn't pan out out I reverted the change and went in another direction. Another recent example is I originally had maritime food at 3/5, but changed it to a per-era total based on your recommendation. :goodjob:


====================================

I finally finished beta build 4.14. What took a long time was fixing a vanilla bug with yield display in the city view (details here), spent most of yesterday working on that while iced in here at home. In particular I've completed the code on distributing to all cities:

  • Maritime city-states (MCS) now give a fixed total of 1:friend/2:ally food per era. This total food is split among all cities, with each city's allocation based on its status (capital gets more, razing cities get none, etc). The food each city receives is detailed when you hover the mouse over the city's food total in the city view.
For example, when comparing the Capital to a regular city, the capital gets twice as much MCS food as the regular city. If a city is being razed, food that would normally go there it is distributed among other cities in the empire.


====================================

Here's a detailed example. Say we have the following circumstances:

  • Renaissance era
  • One MCS friend, two MCS allies
  • Cities:
    • Size 12 capital
    • Size 10 connected to capital
    • City size 4 not connected to capital
    • Puppet size 6, not in resistance
    • Puppet size 8 in resistance.
The total food to the empire is a fixed 1:friend/2:ally food per era, which would be:

  • Renaissance is era 4
  • 1:c5food: x 1 friend = 1 food
  • 2:c5food: x 2 allies = 4 food
  • 4 x (1 + 4) = 20:c5food: to the empire

The modifiers for each city are:

___2.0 = Capital city (twice as much sent here as normal cities)
___1.0 = Normal city
___0.5 = Non-connected city (half as much sent here)
___0.5 = Puppet city
___1.0 = Puppet in resistance (50% * 200% = 100%)
___----------------
___5.0 = Empire total

The capital is 2 (city) out of 5 (empire), which is 40% of the total. It therefore receives 40% of the empire's total food, which is 8:c5food: out of 20:c5food:. Each city's food allocation is:

__08:c5food: = Capital city
__04:c5food: = Normal city
__02:c5food: = Non-connected city
__02:c5food: = Puppet city
__04:c5food: = Puppet in resistance
__20:c5food: = Total


In the city view the food tooltip displays:
  • Food a city receives from maritime citystates
  • The city's modifiers
  • The city's modifier-total, the empire's modifier-total, and percentage of the total empire food the city receives. The empire's total MCS food is circled in the screenshot below.

attachment.php



Maritime city-state allies give the empire a total of:

02:c5food: : Ancient era
04:c5food: : Classical era
06:c5food: : Medieval era
08:c5food: : Renaissance era
10:c5food: : Industrial era
12:c5food: : Modern era
14:c5food: : Future era

In comparison, cultural city-state allies give the empire:

08:c5culture: : Ancient era
08:c5culture: : Classical era
12:c5culture: : Medieval era
12:c5culture: : Renaissance era
20:c5culture: : Industrial era
20:c5culture: : Modern era
20:c5culture: : Future era

Neither one changes based on how many cities the empire has.

====================================

These are all the city modifiers:

000% - Razing
000% - "Avoid Growth" button checked (effect lessens when over 80% of cities are on avoid status)
050% - :c5puppet: Puppet
050% - Not :c5trade: connected to Capital
200% - Resistance
200% - :c5capital: Capital

The reason for each of these is:

  • No reason to send food to a city being razed.
  • The avoid growth and puppet modifiers are to give us time to react if we capture highly-populated cities. Without a way to block food in an annexed city or reduce it for puppets, it could cause starvation elsewhere. Reducing food to puppets and 'avoid growth' cities gives us time to react and strategize.
  • Just like city capture, the 'connected' modifier is to mitigate the impact of newly-founded cities, again to give us time to adjust things elsewhere. I think the large gold income and doubled food from connecting a new city outweighs a small reduction in food to other cities.
  • Extra food to a city in resistance helps prevent starvation.
  • Capital received a bonus in vanilla.

There's four reasons why I dropped the population modifier:

  • In vanilla food also goes to cities without preference based on population.
  • Compromise between simplicity and complexity, and reduces the frequency food distribution changes, as Ahriman pointed out.
  • Compromise between the smallest-cities and largest-cities options asked about earlier.
  • Reduces micromanagement, as Apaca brought up. Food is somewhat more valuable to small cities than large ones, because they get more population-per-turn value from a given amount of food. Sending more food in the direction of new and small cities helps accomplish this without the need to micro 'avoid growth' status.
 

Attachments

  • FoodTooltip.PNG
    FoodTooltip.PNG
    209.1 KB · Views: 299
I understand that completely, and you're right that usually if I've implemented something I weigh more in the direction of keeping it. It's not completely a set decision, though. I put a lot of discussion and work into shifting the cost of national wonders from individual cities to the buildings themselves, yet when it was clear that idea just wouldn't pan out out I reverted the change and went in another direction. :)

Another recent example is I originally had maritime food at 3/5, but changed it to a per-era total based on your recommendation. :goodjob:

=====
I finally finished beta build 4.14. What took a long time was fixing a vanilla bug with yield display in the city view, spent most of yesterday working on that while iced in here at home.

For example, when comparing the :c5capital:Capital to a regular city, the capital gets twice as much MCS food as the regular city. If a city is being razed, food that would normally go there it is distributed among other cities in the empire. A detailed example is below.

====================================

Say we're in the Renaissance era with one MCS friends and two MCS allies, and we have these cities:

  • Size 12 capital
  • Size 10 connected to capital
  • City size 4 not connected to capital
  • Puppet size 6, not in resistance
  • Puppet size 8 in resistance.
The total food to the empire is a fixed 1:friend/2:ally food per era, which would be:

  • Classical era = 4 (ancient -> classical -> medieval)
  • 4 * (1*1 + 2*2) = 20:c5food:
The modifiers for each city are (with the percentages represented in decimal form):

2.0 = Capital city
1.0 = Normal city
0.5 = Non-connected city
0.5 = Puppet city
1.0 = Puppet in resistance (50% * 200% = 100%)
5.0 = Total

The capital is 2 (city) out of 5 (empire), which is 40% of the total. It therefore receives 40% of the empire's total food, which is 8:c5food: out of 20:c5food:. Each city's food allocation is:

08:c5food: = Capital city
04:c5food: = Normal city
02:c5food: = Non-connected city
02:c5food: = Puppet city
04:c5food: = Puppet in resistance (50% * 200% = 100%)
20:c5food: = Total



These are all the city modifiers:

000% - :c5razing: Razing
000% - "Avoid Growth" button checked (effect lessens when over 80% of cities are on avoid status)
050% - :c5puppet: Puppet
050% - Not :c5trade: connected to Capital
200% - Resistance
200% - :c5capital: Capital

The reason for each of these is:

  • No reason to send food to a city being razed.
  • The avoid growth and puppet modifiers are to give us time to react if we capture highly-populated cities. Without a way to block food in an annexed city or reduce it for puppets, it could cause starvation elsewhere. Reducing food to puppets and 'avoid growth' cities gives us time to react and strategize.
  • Just like city capture, the 'connected' modifier is to mitigate the impact of newly-founded cities, again to give us time to adjust things elsewhere. I think the large gold income and doubled food from connecting a new city outweighs a small 0.1-0.5 reduction in food in all other cities.
  • Extra food to a city in resistance helps prevent starvation.
  • Capital received a bonus in vanilla.

There's four reasons why I dropped the population modifier:

  • In vanilla food also goes to cities without preference based on population.
  • Compromise between simplicity and complexity, and reduces the frequency food distribution changes, as Ahriman pointed out.
  • Compromise between the smallest-cities and largest-cities options asked about earlier.
  • Reduces micromanagement, as Apaca brought up. Food is somewhat more valuable to small cities than large ones, because they get more population-per-turn value from a given amount of food. Sending more food in the direction of new and small cities helps accomplish this without the need to micro 'avoid growth' status.

Something that always confuses me in these explanations is that they seem to skip the core number: how much food is an MCS contributing? Based on what you wrote here, I would assume that it varies based on the number of cities, meaning it favors large empires. Yet when I ask about this, you say that it doesn't. That implies that each MCS ally/friend supplies a fixed amount of food, which is then divided according to the formula you outlined above. If this is the case, could you specify this number (or show me where I'm missing it)?
 
It's in the first part:
So Maritime city-state allies give the empire this much food:

  • 02:c5food: : Ancient era
  • 04:c5food: : Classical era
  • 06:c5food: : Medieval era
  • 08:c5food: : Renaissance era
  • 10:c5food: : Industrial era
  • 12:c5food: : Modern era
  • 14:c5food: : Future era
This is just like cultural city-states, which give the empire this much culture:

  • 08:c5culture: : Ancient era
  • 08:c5culture: : Classical era
  • 12:c5culture: : Medieval era
  • 12:c5culture: : Renaissance era
  • 20:c5culture: : Industrial era
  • 20:c5culture: : Modern era
  • 20:c5culture: : Future era
The difference is I scaled the MCS food more smoothly. Neither one changes based on how many cities the empire has.

Spelling out that first list above makes it clear for me - thanks a lot. I'm happy that it properly scales down MCS's influence relative to other CS.
 
Back
Top Bottom