Trade Route Yields

AgentTBC

Warlord
Joined
Apr 25, 2009
Messages
295
I've been compiling a list of relatively easy and minor in concept but large in implication changes I intend to make which will solve most of the non-AI related issues I see in Civ V. The AI issues are beyond my pay grade, so somebody else (or Firaxis) will have to address that. You know, stuff like tweaking resource and improvement yields slightly, giving coastal cities a small boost by potentially having hardborn and seaport each give +1 commerce to coastal tiles such that you end up with coast tiles beign 2 food 3 commerce instead of the worthless 2 food 1 commerce. Things like that.

So far so good. I believe 90% of what I want to do I have found already. The one I'm having problems with is also the one with the biggest implications but, I think, necessary to partially deal with the ICS problem.

I want to tweak trade route yields. Right now the only thing I see to change in the XML is the pop modifiers for the capital (currently 0, capital pop has no effect) and pop modifier for the other city (currently 125%). So routes with three pop 4 cities gives you 15 gold just like a trade route with one pop 12 city. I think this is both unrealistic and is just one of the many incentives to spamming out lots of small cities instead of building fewer big ones.

Is there some way to modify trade route yields so that they are no longer linear with population? Or at least linear but penalizing small cities? For example right now the yield is 1.25*(city pop). If it were instead 2*(city pop - 4), three size 4 cities would provide no trade while one size 12 city would yield 16 gold instead of the current 15. A size 18 city (and it is HARD to make cities this large so should be rewarded) would give 28 gold instead of the current 22. And so on.

But I don't see any way to do anything in the XML except change the multiplier. But the problem isn't the multiplier, it is that yield is directly proportional to population... but that's wrong.

So is there some way in the XML to make trade route yield (and, hey, science but one thing at a time) as something other than a straight multiplier of the population? I don't suppose you can exponents or such in the xml? :)
 
I've been compiling a list of relatively easy and minor in concept but large in implication changes I intend to make which will solve most of the non-AI related issues I see in Civ V. The AI issues are beyond my pay grade, so somebody else (or Firaxis) will have to address that. You know, stuff like tweaking resource and improvement yields slightly, giving coastal cities a small boost by potentially having hardborn and seaport each give +1 commerce to coastal tiles such that you end up with coast tiles beign 2 food 3 commerce instead of the worthless 2 food 1 commerce. Things like that.

So far so good. I believe 90% of what I want to do I have found already. The one I'm having problems with is also the one with the biggest implications but, I think, necessary to partially deal with the ICS problem.

I want to tweak trade route yields. Right now the only thing I see to change in the XML is the pop modifiers for the capital (currently 0, capital pop has no effect) and pop modifier for the other city (currently 125%). So routes with three pop 4 cities gives you 15 gold just like a trade route with one pop 12 city. I think this is both unrealistic and is just one of the many incentives to spamming out lots of small cities instead of building fewer big ones.

Is there some way to modify trade route yields so that they are no longer linear with population? Or at least linear but penalizing small cities? For example right now the yield is 1.25*(city pop). If it were instead 2*(city pop - 4), three size 4 cities would provide no trade while one size 12 city would yield 16 gold instead of the current 15. A size 18 city (and it is HARD to make cities this large so should be rewarded) would give 28 gold instead of the current 22. And so on.

But I don't see any way to do anything in the XML except change the multiplier. But the problem isn't the multiplier, it is that yield is directly proportional to population... but that's wrong.

So is there some way in the XML to make trade route yield (and, hey, science but one thing at a time) as something other than a straight multiplier of the population? I don't suppose you can exponents or such in the xml? :)

Pretty sure you can't. Which is annoying, I was wanting to do the same thing to TRs.
 
UGH. Somebody has to figure out a way to tweak the way population is directly proportional to trade route and science yield. One assumes it can be done via hardcore modding, but I don't know lua or c++ or whatever so if it isn't inthe XMLs it won't be me doing it.

The weird thing is Firaxis treats city population non-linearly already in a bunch of ways. The increasing amount of food to go up a pop, for instance. Or on the Demographics screen you can see that city pop is non linear. If you have one city with 16 population, your reported pop is way more than twice as high as if you have one city with 8 population. So they know pop should be treated non-linearly...

But in the two most important implementations (trade route and science yield) it is treated absolutely linearly. D'oh!

Come on you programmer types, get in their and do your magic! Let us modify trade route yield and science production per population in more than a linear fashion!

Sadly, this is the only change I don't think I've figured out how to do but it is one of the most important ones.
 
They need to release the C++ code before the better mods can do any of that I think. Which ain't happening for months. If you're wanting to counter ICS or conquering spree, you might consider just raising the base unhappiness per city, so quick spreading is a bad idea. This destroys India, so you'd have to change that, though.
 
As a matter of fact, raising base unhappiness per city is already on my list. GMTA.

I'm think about India. It depends on how much control over the Indian ability you have in the XML... I haven't look at it yet, only at raising it for everyone.

Tweaking resources slightly upwards will also help since it will make it more appealing to carefully place cities than to just spam them anywhere. Nothing major, but certainly it's ridiculous that a pasture, for example, ends up being no better than a non-resource tile since it doesn't gain +1 food from Civil Service or Fertilizer. I'm thinking even something simple like mining iron giving +2 hammers instead of +1, farming wheat giving +2 food instead of +1, and so forth to start. By itself that won't be enough to make ICS not the best strategy but combined with more unhappiness per city, etc, it should help a lot.

The real solution, of course, is to get the code and make trade route yields and science production non-linear so that a size 16 city produces four times the science as a size 8 city and sixteen times the science as a size 4 city. Well, an exponential relationship might be too much but you get the idea. Certain a size 16 city shouldn't produce only four times the science as a size 4 city, otherwise it is ALWAYS better to have four size 4 cities. Unless possibly you're going for a cultural victory.
 
India's ability is TRAIT_POPULATION_GROWTH under civilizations >> traits. Setting it to 50,-50 or 100, -25 would probably be best if you're adding one unhappiness.
 
Right now I am trying base unhappiness per city at 3 (instead of 2) and India's modifer at 67 which, of course, makes their unhappiness per city 5. 3/5 instead of 2/4 is as small a difference as I could make while I tested it. So far so good.

Unfortunately I appear to have munged something somewhere because all the forest tiles are yielding 1 food and 2 hammers in normal (non golden age) situations. What the heck did I do...

I guess I shouldn't be modding using Windows Notepad and just overwriting files on the fly. I DID make a copy of the XML directory first, so I'm not completely stupid. WINDOWS NOTEPAD!
 
Oh, coastal cities are more interesting in the game I'm currently playing. I have coast base production of 2 food 1 gold instead of 1 food 1 gold. Lighthouse adds another food while Harbor and Seaport both add a gold. So final base coast tile yield with lighthouse, harbor, and seaport is 3 food 3 gold instead of the currently WORTHLESS 2 food 1 gold.

I like harbors and seaports buffing all the tiles as well as their other abilities. The AI spams harbors everywhere even when they are already connected to the capital, so this way it isn't a huge money sink for them.

I am open to the idea that 3/3 is too high a base yield and Seaports should be left as is, just buffing resource tiles with +2 production. 3/2 makes the tiles worthwhile anyway.
 
I notice an XML building tag for Machu Picchu named "TradeRouteModifier" that increases ALL trade route gold by the percentage specified. I'm thinking about using it for Harbors, which should contribute to a CIVs gold income, setting it at say 5%. If that over buffs Harbors, maybe move the 15% ship building improvement to Seaports - treating those more like a Shipyard. What does anyone think?
 
I think you shouldn't be bumping an eight-month-old thread just to add one quick comment. The other post you bumped, the one on patch discussion, was from six months ago (discussing the DECEMBER patch); if you want to discuss balance issues in this latest patch, make a new thread for that.

I also think your idea is extremely unbalanced, because you're talking about taking a Wonder (global) effect and giving it to a building you can place in most cities. 5% per Harbor means that in a 20-city empire, you'd run +100% in all cities. (Because yes, that effect is a global bonus, not a bonus to the value in that one city.) This'd make large empires far more powerful than small ones, which is the exact opposite of what the game needs.
 
It ought to be possible to individually modify the per-city bonuses based on some factor. Like in my culture-per-pop mod, every turn I calculate what the culture generation from buildings should be and then modify it based on my extra calculation.

It should be possible to do something very similar with trade route yields.
 
It ought to be possible

First of all, you're responding to a post that's 9 months old, and many (most?) of the people in this thread have long since disappeared.

Second, culture doesn't work the same way as yields. Not just that it's using different functions, but that Culture and Science are basically unregulated behaviors; the AI doesn't have any extra checks on those. The other yields are different; the AI tries to keep the net Food in each city above 0, the net Gold in each empire above 0, and cities won't try to build anything that'd take more than 50 turns. So manipulating yields through Lua creates all sorts of AI behavior problems.
 
Who cares if it's 9 months old? It's something I'd like to do for myself. After looking over the API, I see that culture really is totally different. I'm not seeing a whole lot of hooks at all to modify how trade routes are handled. I suppose I could use ChangeMiscYield, but I have no idea if this is used for anything else! I'm also not seeing the function to get trade route modifier to account for Machu Picchu.
 
Top Bottom