As a French person I feel like it's my duty to explain strikes to you. - AdrienIer

Create an account  

 
Exploits

I'll try to parse your explanation into English, tell me if this is right. The bug arises because of tiebreaker behavior when a city is filling its list of trade route partner cities. Suppose your capital sees a tie in trade route value between one of your own cities and a foreign city. If you are early in the turn order, your own partner city wins the tiebreaker, saving the foreign city for later; "later" can be an island city of yours to acquire an overseas multiplier. If you are later in the turn order, the foreign city wins the tiebreaker, hence no overseas multiplier to that city.

That is unfortunate indeed... it's not just commerce here or there like roundoff error, it's persistent for every single turn and consistently affects players disproportionately. And a tie in trade route value is very common since the space of possible values is very small, just 1 or 2 commerce in the early game.

It wouldn't affect any of these conditions:
- a map without islands (many of our maps are pangaea-like, so the bug never showed up)
- a map where players start and stay on separate landmasses (all routes are overseas)
- Always War
- or in general any game where the players are hostile enough to not sign OB

That said, there already exists asymmetric disadvantage to going later in the turn order, you already lose tiebreakers on wonders and religions because your turn comes later, so another such disadvantage is not necessarily fundamentally gamebreaking. And the bug doesn't scale up in the later game, when trade route value isn't tied so often. Point being, I'm not sure if all future RB events want to take on the overhead of a mod to deal with this. Games with a shared mainland and settleable islands would want a fix (or just let players later in the turn order take a bit of a handicap.)
Reply

Sareln Wrote:Could you share it with me for integration into EitB please?

In CvCity::updateTradeRoutes() ...

replace

if (iValue > paiBestValue[iJ])

with

if (iValue > paiBestValue[iJ] || iValue == paiBestValue[iJ] && (getTeam() == GET_PLAYER((PlayerTypes)iI).getTeam()))

Note: haven't tested it yet, but it seems logically sound (and it's pretty simple).
Reply

T-hawk Wrote:I'll try to parse your explanation into English, tell me if this is right. The bug arises because of tiebreaker behavior when a city is filling its list of trade route partner cities. Suppose your capital sees a tie in trade route value between one of your own cities and a foreign city. If you are early in the turn order, your own partner city wins the tiebreaker, saving the foreign city for later; "later" can be an island city of yours to acquire an overseas multiplier. If you are later in the turn order, the foreign city wins the tiebreaker, hence no overseas multiplier to that city.

That is unfortunate indeed... it's not just commerce here or there like roundoff error, it's persistent for every single turn and consistently affects players disproportionately. And a tie in trade route value is very common since the space of possible values is very small, just 1 or 2 commerce in the early game.

It wouldn't affect any of these conditions:
- a map without islands (many of our maps are pangaea-like, so the bug never showed up)
- a map where players start and stay on separate landmasses (all routes are overseas)
- Always War
- or in general any game where the players are hostile enough to not sign OB

That said, there already exists asymmetric disadvantage to going later in the turn order, you already lose tiebreakers on wonders and religions because your turn comes later, so another such disadvantage is not necessarily fundamentally gamebreaking. And the bug doesn't scale up in the later game, when trade route value isn't tied so often. Point being, I'm not sure if all future RB events want to take on the overhead of a mod to deal with this. Games with a shared mainland and settleable islands would want a fix (or just let players later in the turn order take a bit of a handicap.)

Yes, it's painful, and yeah mods are painful too. The trade route handicap just feels way worse to me than being half a turn ahead though - that's not something I'd want to knowingly play with (especially since it's avoidable). If it hurt players in reverse turn order maybe it would be ok - it partly cancels out the inherent advantage to going earlier. But the fact that it exacerbates existing unfairness?... ouch.

I'm thinking it's worth using a mod because there are actually quite a few things that would be nice to fix at this point.

Not strictly necessary to fix because it can be avoided:
* culture building bug
* governor + commerce building bug
* liberalism/oracle bug

Un-house-ruleable problems:
* trade route bug
* another (minor) trade route bug where cities you lose permanently take the foreign trade routes they're currently using with them
* mine pops and forest/jungle growth don't scale with game speed

Plus a few optional game settings I'd like to add:
* units can only be gifted if they have full movement available (and it uses up their movement so they won't fortify/heal for the new owner) (to prevent most unit gifting / double move shenanigans)
* gifted cities revolt for the same number of turns they would if they'd been captured (to prevent most city gifting cheese)
* can only whip/draft once in a city per turn (to prevent mass genocide in threatened cities)
* no jungle growth onto resources
* no mine resource pops

And maybe some optional balance settings if that's possible, like a change to blockade range or nuke damage. And I'm sure we've uncovered some other nasty things I've forgotten about, too.

I've also been looking for the PBEM getting other people's notifications bug, but I can't find it.
Reply

If there was a simple way to estimate the difference, then a mod would not be necessary:

-players signing OB could figure the difference and put a gpt into the deal
-players who don't know or don't care about this bug can play without hassles

example: If Mr. Nice Guy wants to sign OB with Yuri, they can use a calculation to see that MNG will benefit by 6 gpt more than Yuri due to this bug. The deal is then: MNG offers OB and 3gpt for OB from Yuri.

Trade routes have ALWAYS benefited one player more than the other, and most people don't even try to figure out the difference to the last penny. Only the true "system analyst" types among us will ever notice, and those people can solve the problem without impacting everyone else.

Is such a calculator possible?
Reply

I'm not sure if you're talking about a gentleman's agreement workaround, to the effect of everyone agreeing before the game to split the cost of the OB bug, or the free market taking care of it in-game.

The latter is automatically in effect if people know about it, but doesn't solve the inequity of it. People later in the turn order simply have much less negotiating power in this market. Someone early in the turn order can sign OB with anyone and realize pretty much full benefits. Someone later in the turn order needs someone to agree to give them money. That doesn't solve the imbalance at all.

The former is, IMO, impossible, because it's a complex multiplayer system. If you have OB with enough people, the bug doesn't matter, because you just plain have more possible destination cities than trade routes to use them. I don't think there's any economically or game-theoretically calculable or stable value to a single OB agreement, as it's far too interdependent on third party actions.

It's further complicated by the fact that you actually don't know how much the trade routes are worth to your partner. For example, in PBEM23 I don't know how much mackoti would gain from OB with us. This is because I don't know the founding order of his cities, specifically which ones are island cities and which ones are mainland (nor even which ones have two or four trade routes, necessarily). Certainly if you're playing with no diplo there's no way to communicate this information and limited ability to negotiate about it.
Reply

SevenSpirits Wrote:I've also been looking for the PBEM getting other people's notifications bug, but I can't find it.

It occurred in both PBEM13 and PBEM17. We were often told that we had built Conquistadors in PBEM13, for example. There was another PBEM I was reading recently where someone could adopt a civic that they had not yet researched the tech for (nor had they got a wonder to unlock it).

One way of trying to counter the turn order advantage would be to do the snake pick in reverse turn order for both runs through.
And on the sixth day, god created Manchester.

[SIZE="1"]Played: PBEM13 (China), PBEM17 (India)
Helping out: PBEM23 (Egypt)
Dedlurked: PBEM15 (Ottomans)
Globally lurking: more or less everything else[/SIZE]
Reply

So in Pbem 23 i beneffit very few from GL .How much do you think i loose because of this'bug'?
Reply

mackoti Wrote:So in Pbem 23 i beneffit very few from GL .How much do you think i loose because of this'bug'?

Weird feeling of déja vu.
And on the sixth day, god created Manchester.

[SIZE="1"]Played: PBEM13 (China), PBEM17 (India)
Helping out: PBEM23 (Egypt)
Dedlurked: PBEM15 (Ottomans)
Globally lurking: more or less everything else[/SIZE]
Reply

Quote:Weird feeling of déja vu.

EXCUSE ME.
Reply

spacemanmf Wrote:Weird feeling of déja vu.

mackoti Wrote:EXCUSE ME.

Just to clarify, Spaceman was referencing the PBEM17 trade embargo.

Mackoti, you're probably wasting close to all your trade routes to your rivals' mainland cities, since all those will be needlessly grabbed by your own mainland cities. So I'd say you lose a gpt sum equal to the number of mainland cities your open borders partners have.

What could counter this:
  • Building harbors in your island cities
  • Letting your island cities grow above size 10 and larger than your mainland cities
  • Signing OB with rivals with a lot of island cities, so that these routes are taken by your mainland cities, leaving the mainland routes for your island cities

I guess that's as specific as I should be while discussing the PBEM23 scenario. smile
I have to run.
Reply



Forum Jump: