Corp Inflation Solution Thread

does the model explain why people are having difficulty late game with corps?

Not directly.

I included an example of a Size 20 city with 2 Corporate Offices utilizing 16 resources together under 200% Inflation ...

... with a net of only -2.57 :gold:

Following that is a 'Corporate Management' section explaining some of the finer points to making a Corporation 'profitable'.

The difficulty, I believe, is not because of borke game mechanics or exorbitant Corporate Fees. I believe the real difficulty comes from leaving the "Religious" mindset of spreading your religion like a crazed zealot to that of a Corporate Executive -- who picks and chooses only the most ripe markets to enter.

The difficulty also comes from the misconception that Corporations are profitable in terms of :gold:.

In most cases, a single Corporate Office costs considerably more :gold: than it will generate. However, this is most often after overlooking the benefits. In some cases, you may be getting 6 :science:, 3 :gold:, 15 :culture: for a fee of -15 :gold:.

At first glance, that seems disproportionate, but consider all that science, gold & culture is about to go through +% modifiers ... then consider that if you moved your gold slider down to result in -15 :gold:, it's not always likely you'll turn that 15 into 24 (6+3+15).


-- my 2 :commerce: at least.
 
Hello all.

As a big fan of the game of Chess I truly appreciate a game of this quality and magnitude. I appreciate the attempt at "the idea."

As long as these expansion packs keep coming out I will continue to buy them.

Although I have not yet purchased this new expansion, it is only because Best Buy with which I had visited with yesterday to buy the expansion they, unfortunately, did not have any in stock. Naturally, the unhelpful sales-clerk at Best Buy didn't even look it up but mumbled something to the effect that. "I looked it up for a customer earlier and it wasn't even in the computer." Of course, I know that is just a lazy lie. Clearly, a manager did not place the order or there was a problem with their supply chain.

With all that said, I have yet to play the new expansion so I can not exchange information equally in terms of mechanics. Nevertheless, I feel that I can offer solutions and contribute key ideas and elements for all that with which to consider may gain the perspective of a high class C Chess player and Finance/Accounting major.

When I think about about how inflation in a game and how the Central Bank should operate, I agree with the idea that this should, indeed, be a National Wonder.

Where I differ is in the details.

The Central Bank should require "x" amount of Banks, based upon settings, before it can be built. I am thinking of 10 turns at moderate hammer producing hammer city on standard speed. Also, there should be a required dead-end tech such as "Macro-Economic Theory" which is a branch off of Industrialism along the same line as Plastics through Refrigeration. Because this occurs so late in the game, the wonder should require relatively few hammers in order to build. I am thinking an "x" requirement of banks and 200 hammer or so, maybe, as few as 150.

Once the wonder is built the first civilization receives -100% on Inflation. All other nations that have yet to build it suffer a proportionate percentage increase in inflation. Let me demonstrate:



Given: There is only one AI civilization that has built the Central Bank and there are 8 total civilizations.

1. First to Build -100% inflation
2. +14.28% inflation (1/7)
3. +14.28%
4. +14.28%
etc.

Second to build -100% inflation

4. +16.67% inflation (1/6)
5. +16.67%
6. +16.67%
etc.

Third to build -100% inflation

4. +20% inflation (1/5)
5. +20%
6. +20%
etc
etc

Third to build:



Furthermore, the first builder of the Central Bank receives a bonus of +10% gold per turn maxing out at +100% until a second civilization build the Central Bank. Other civilizations get -10% gold per turn maxing out at -100% gold if they have not yet built a central bank. "The rich get richer and the poor get poorer."

This should be a must have National Wonder and without it you might as well be Aborigines.

Here is how I would construct the effects on game-play:

Once the second civilization builds the National Bank then both civilizations are given 3 options in the financial advisor screen. They are listed below:

1. Attempt to strengthen one's national currency against the collective average value of all civilizations. All nations--including those that have yet to build the Central Bank National Wonder--are included in the factoring of the collective average economic value.

2. Attempt to peg one's national your currency value to a specific civilization. If the selected civilization's value rises 10% then your currency will rise 10%. Conversely, if the civilization that you select declines 10% then your currencies value will decline 10%. Any civilization can be chosen. Naturally there should be other factors that determine to what extent one is able to peg one's currency to another civilization.

3. Attempt to weaken one's national currency against the collective economic value of all other civilizations.

When you strengthen your currency you get bonuses in "x" and a decrease in happiness. (I'll leave this to ya'll). The thinking is as your currency rises against the average, other countries receive find it more difficult to purchase your exports. As your civ tries to cut costs by off-shoring labor and production jobs are lost. Consequently unemployment rises and people get pissed off.

When you weaken your currency you get a bonus in "x" and a decrease in happiness.

Pegging (if possible due to influencing factors) has no effect.


These are some of my ideas on how to make the financial aspect more involved. Combined with some of the other ideas that I have read in this thread such as requiring more future techs to combat population explosion this could be an interesting aspect of the game if thought out slowly trying to limit the amount of RAM used in computing by using simple formulas. Of course that leads to exploits but I'm sure the model could be used to minimize the exploits yet still make for a very involved financial model.

The game is great and I love to all these news ideas keep coming up.

Who says you can't reinvent the wheel?

:old:
 
Some people seem convinced that the current implementation of corporations is working as intended. Since there is no way to verify this, I figured the best we could hope for would be to observe how the AI handled corporations. I created a two continent map with myself and one AI player, then just let the turns pass by (using the map builder to observe progress). The AI proceeded to spread its own corporations to all of its cities. While I'm not stating definitively that corporations are NOT working as intended the “spread to all OTHER cities” motto does not seem to fit what was intended.

Either way, I dislike the current implementation so I decided to change the DLL to ignore corporations for the purposes of calculating inflation. I’m assuming that modifying CvPlayer::calculateInflatedCosts() will properly update all inflated costs for all AI players; as it stands it does work properly for the human player (although the details on the final advisor window appear to be off slightly). Also, please note that I’m not sure how computationally expensive this method is (I don’t know how often calculateInflatedCosts is called) – a different approach would no doubt be prudent for any widespread application.

Original code:
Code:
int CvPlayer::calculateInflatedCosts() const
{
	int iCosts;

	iCosts = calculatePreInflatedCosts();

	iCosts *= max(0, (calculateInflationRate() + 100));
	iCosts /= 100;

	return iCosts;
}

No corporation inflation
Code:
int CvPlayer::calculateInflatedCosts() const
{
	int iCosts;
	int iCorpCosts;
	int iLoop;
	CvCity* pLoopCity;

	for(iCorpCosts = 0, pLoopCity = firstCity(&iLoop); pLoopCity != NULL; pLoopCity = nextCity(&iLoop))
	{		
		//derived from CvCity::updateMaintenance()
		//original: iNewMaintenance = (calculateBaseMaintenanceTimes100() * max(0, (getMaintenanceModifier() + 100))) / 100;
		//note: calculateBaseMaintenanceTimes100() is nothing more than the sum of various calculateXXXXXMaintenanceTimes100() functions
		//note: /100 modifier moved outside loop
		iCorpCosts += (pLoopCity->calculateCorporationMaintenanceTimes100() * max(0, (pLoopCity->getMaintenanceModifier() + 100)));
	}

	iCorpCosts /= 10000;

	iCosts = calculatePreInflatedCosts();

	iCosts -= iCorpCosts;
	iCosts *= max(0, (calculateInflationRate() + 100));
	iCosts /= 100;
	iCosts += iCorpCosts;

	return iCosts;
}
 
phungus420, you do not have permission to access this page. This could be due to one of several reasons:

1. Your user account may not have sufficient privileges to access this page. Are you trying to edit someone else's post, access administrative features or some other privileged system?
2. If you are trying to post, the administrator may have disabled your account, or it may be awaiting activation.




Umm, Help? How come I can't download this file?
 
Keep Corporation costs low. If a foreign corporation with attractive benefits enters my lands, I don't want my economy to sink. I just want to pay for roughly what I'm getting.

Also, constant costs are easier to think about and far easier to balance. Calculate Corporations separately from city maintenance and inflation.

Overall, the primary goal should be an answer to the question, "What will I do with this Corporation?"

And the answer should be, "Spread it everywhere!"

It shouldn't be, "Spread it everywhere else but here."

The answer shouldn't be "Spread it everywhere!"
Where is the decision making and strategy in that? You shouldn't be able to spread it everywhere and in all your cities, but you should be able to spread it to some of your cities and still survive.
 
Can I load the same save under regular BTS and the no-corp-inflation mod? If I can, I'd like to see the effective difference on the same map and same turn. I'm sure it'd be huge. I'm especially interested in this mod if it helps the AI survive its own corp-spamming.
 
The answer shouldn't be "Spread it everywhere!"
Where is the decision making and strategy in that? You shouldn't be able to spread it everywhere and in all your cities, but you should be able to spread it to some of your cities and still survive.

Fair enough. But if this is the choice, then the AI needs to stop playing like the answer is "Spread it everywhere!" And it still needs to be fixed.
 
Just tested it, this mod is save game compatable.
 
Can I load the same save under regular BTS and the no-corp-inflation mod? If I can, I'd like to see the effective difference on the same map and same turn. I'm sure it'd be huge. I'm especially interested in this mod if it helps the AI survive its own corp-spamming.

I don't believe so - I modified the ::read and ::write functions in the code I posted. However, I'm quite curious myself as to what the effect of my original code would have been on game performance - and that code should work properly with your old saves.

Therefore, give me a few minutes and I'll post a link to a DLL that will allow you to load your old saves.

Edit:
Acording to phungus420 I was wrong - so scratch the above I supose.
 
I'd like to see a variety of something I saw in another thread.

Remove the corporate executive units.

Civilisations choose to buy an existing corp into one of their cities. Likely through the corporation screen. The only requirement would be open borders with the corps home nation, or possibly a new diplomatic state. (free trade pact?)

Seems fitting to represent the lower degree of control that governments can exert over multinational corporations?

It would also remove the bankrupting other civs angle of the current model. (fun with UN and compulsory environmentalism for all, go rogue or bankrupt).

Founding the corp would give you benefits. Obviously the cash from each 'franchise'. Possibly an increase in espionage points to represent the new channel you can infiltrate agents through.

There should be a further mechanism for encouraging a civ to adopt one or more instances of your corp. Not sure what that would be though...
 
macsbug, if you have the time, would you be so kind as to post how the inflation rate in itself is derived as well?
 
Just from the manual itself, it seems Corps were created with a definitive positive and negative in mind.

I get that coupled with inflation, there may be a bug that is causing the cost to be way too high, and possibly makes it too strong of an ability to use against an opponent, however...

The majority of posts I've seen seem to be of the mind that this is intended to be beneficial only, and spread everywhere.

I really don't see this as the intent either. Even the basic manual seems to phrase it so that the downside of corporations can be considerable.

Like I said, not arguing a bug could exist, but I do think there is a major downside to the Corporations, that they were intended to be used carefully, and that placing them in opponents cities for a negative effect was also intended.

The strength of it, as opposed to their intent, can certainly be argued though.
 
Spinal--The AI needs to behave as if that were true, and the costs must be maintained and balanced. Even if corporations were working exactly as intended, the intended behavior would be a mistake.
 
macsbug, if you have the time, would you be so kind as to post how the inflation rate in itself is derived as well?

The inflation rate is calculated in CvPlayer::calculateInflationRate(). On a brief scan through that function, it appears to be something to the effect of:
Modified Turn = (Turn – Inflation Offset)
Rate = Inflation Percent * Handicap Percent * Modifier
RP = (Modified Turn * Rate / 100) + [Modified Turn * (Modified Turn - 1)* Rate * Rate / 2000000]

Inflation Offset: Defined in the XML documents, varies with game speed.
Inflation Percent: Defined in the XML documents, varies with game speed.
Modifier: Represents any in-game modifier applied to inflation rate (such as the World Bank example I believe).
Handicap Percent: I’m not exactly sure what this is – I’m assuming it’s defined somewhere in the XML documents as well.

So, for example, if we take all of the above but Inflation Offset to be 100 (no modification), at a turn of say 100, and an inflation offset of 250:
Modified Turn = 50
Rate = 100
Rate = (50 * 100 / 100) + [50 * 50 * 100 * 100 / 2000000] = 62.5

I pulled the constants out of thin air - you'd need to check the XML files for real values. You’ll probably also want to pull up the CvPlayer.cpp file and check the math yourself, but that’s pretty much how it works.
 
Top Bottom