(9-VT) Simplify Gold Rush Buy Formula and Increase Late Game Costs

Status
Not open for further replies.

sbw

Chieftain
Joined
Oct 23, 2023
Messages
23
Motivation:
The gold hurrycost formula is a bit complicated and consists of 4 different factors which are then multiplied together. It has some unexplained mechanics and becomes very powerful late game when combined with bonuses from Banks, Stock Exchanges, or Imperialism. The intent of this proposal is twofold
  1. Simplify the number of factors going into the calculation of how much it costs to rush buy something
  2. Rework the cost scaling to increase the costs for late game rush-buying.
For context, here is the existing HurryCost formula for units:

Gold Cost = 0.8 * (30 * :c5production:)0.68 * (1 + Tech%/2) * (1 + HurryCostModifier/100)
(All units have 0 HurryCostModifier except Spaceship Parts which have +25)

And for building/wonder investment:

Gold Cost = 0.6 * (30 * :c5production:)0.68 * (1 + Tech%/3) * (1 + HurryCostModifier/100)
(All buildings have -20 HurryCostModifier; all Wonders have -5)

What this essentially means is a few things
  • Researching new technologies increases purchase prices, but at a different rate for units and buildings
  • Purchase prices for units are multiplied by 0.8 in almost all cases, but investment costs for buildings are multiplied by 0.48 in most cases
  • The 0.68 exponent makes larger purchases significantly more efficient in terms of gold spent per production earned
  • Wonders and buildings have different hurrycost modifiers, though wonders only invest 25%, and buildings 50%. Wonders also benefit from the nonlinear cost scaling above


Proposal:

All purchase costs no longer scale with techs discovered. This mechanic is opaque, unintuitive, and is meant to act as an increaser for late game costs but is ineffective due to the nonlinear exponential costs of the "base price" formula

HurryCostModifiers for all buildings and wonders are changed to 0 (no increase or decrease). Another opaque mechanic that should be handled by the base price formula and not handled separately. Spaceship parts should also be reduced to 0 (they will be significantly more expensive without the sublinear scaling already).

Unit Purchase cost discount (aka arbitrary constant) changed from 0.8 to 1. There's no reason for all units to have an arbitrary 0.8x purchase cost modifier that doesn't even use the HurryCostModifier mechanic.

Building Purchase cost discount (aka arbitrary constant) changed from 0.6 to 0.5. This should be 0.5, since building investment reduces the cost in hammers by 50%.

Base hurry cost formula changed from (30 * :c5production:)0.68 to (2 * :c5production:). Linear cost scaling will negate the significantly increased efficiency of late game purchases. This is a very minor change for most early and midgame units, but starts to kick up to around +50% increase in industrial and eventually about +100% increase in Information era.

Graphs and data:
Since these changes are a bit difficult to understand without concrete numbers, I attached some graphs and data. Let me know if there are further questions on the existing mechanics, I can continue to provide clarification in the comments.

Graph of purchase price vs. production required in existing and proposed formulas. New proposal is linear and higher at larger production costs


Graph of purchase efficiency vs. technologies researched. Proposal is flat throughout game instead of constantly increasing




UnitProductionOld CostNew CostApproximate Δ
Warrior/Slinger 4090-11080-19.4%
Worker80150-190160-4.2%
Comp Bow110230-2502201.2%
Knight/Galleas175270-30035012.3%
Tercio300470-50060027.9%
Fusilier625820-860125055.3%
Landship10001130-1170200073.6%
Infantry13001440-1520260075.3%
Tank18001940-2030360081.6%
Modern Armor25002550-2750500089.1%
Spaceship Part*80008600-88001600084.9%

*Spaceship part less increased because of removed hurry cost modifier


Implementation Notes:
This consists of both SQL and DLL changes, but code changes are < 10 lines and I can sponsor implementation.
The affected files will be
  • (2) Vox Populi/Database Changes/City/Buildings/BuildingSweeps.sql
  • (2) Vox Populi/Database Changes/Units/UnitSweeps.sql
  • CvGameCoreDLL_Expansion2/CvCity.cpp ( specifically CvCity::GetPurchaseCost(...)
  • (1) Community Patch/Database Changes/NewCustomModOptions.xml (for rewording the custom purchase cost balance options)
 
Last edited:
This is a remarkable write up and I agree with the philosophy, aims and style of implementation. I support this in general, but I question the magnitude of the cost increase in the late game. Do we really want gold's effectiveness relative to hammers to fall off this hard from the current situation? This seems a little bit extreme.
 
As far as I understand :
  • It doesn't fall off, it just no longer change.
  • Right now, gold becomes arbitrarily more and more effective as the game progress, not taking account buildings or effects that reduce gold costs.
  • This change streamline the gold cost to be baseline 2x prod cost.
  • Having cost reductions or better investment (Babylon) increase value of gold.
 
I'm personally fully in favor of this change, I noticed in my games that costs would change with time but I could never understand how, this makes things easier.
 
As far as I understand :
  • It doesn't fall off, it just no longer change.
  • Right now, gold becomes arbitrarily more and more effective as the game progress, not taking account buildings or effects that reduce gold costs.
  • This change streamline the gold cost to be baseline 2x prod cost.
  • Having cost reductions or better investment (Babylon) increase value of gold.
Right. My objection is that the current rate at which "gold becomes arbitrarily more effective as the game goes on" is probably desirable to many players and currently factored into game balance. This is actually a large balance change. I'm not opposed, I just think we need to consider the implications on the balance of late game and what it feels like to the player.
 
I think if the formula were something a little flatter than linear but still very easy to understand this would pass without objection. HALVING the power of gold in the late game drastically changes war and race calculations, beyond what I personally would find desirable. Gold should get a little more efficient as time goes on.

(or maybe compensatory gold generation increases as the game goes on, but that would complicate this proposal significantly)
 
This is a remarkable write up and I agree with the philosophy, aims and style of implementation. I support this in general, but I question the magnitude of the cost increase in the late game. Do we really want gold's effectiveness relative to hammers to fall off this hard from the current situation? This seems a little bit extreme.

I guess I'd rephrase it in the opposite direction - Do we really want gold's effectiveness relative to hammers to increase this hard relative to the early game? Why should investing in a broadcast tower be 3 times as efficient as investing in a monument? Or buying a gatling gun be twice as efficient as buying an archer? Personally between banks and stock exchanges I think late game purchasing is too strong already.

I think if the formula were something a little flatter than linear but still very easy to understand this would pass without objection. HALVING the power of gold in the late game drastically changes war and race calculations, beyond what I personally would find desirable. Gold should get a little more efficient as time goes on.
If people insist that the increase in gold purchase efficiency is an important part of late game balance, I'm open to counterproposals with alternate formulas but I strongly feel the exponent needs to be increased. Tinkering with the numbers, something like (4 * :c5production:)0.9 could be reasonable, but I don't have time to make additional graphs/charts for different formulas right now.
 
I guess I'd rephrase it in the opposite direction - Do we really want gold's effectiveness relative to hammers to increase this hard relative to the early game? Why should investing in a broadcast tower be 3 times as efficient as investing in a monument? Or buying a gatling gun be twice as efficient as buying an archer? Personally between banks and stock exchanges I think late game purchasing is too strong already.
I would say yes but maybe not to the current degree. I like that gold and hammer balance evolves a bit as the game goes and I think more expensive things should be more efficient to purchase as you then have a reason to save up gold rather than just buy the cheapest thing.

I think maybe a smaller adjustment where end game gold is 1.5 to 1 hammer instead of 1 gold to 1 hammer might be a better approach and cause less of a balance swing.
 
Just spitballing. What if we just keep the exact linear scaling specified here, but reduce it incrementally by .15 from 2 * Prod to 1.55*Prod upon unlocking Economics, Corporations, and The Internet Respectively (every other era starting with the renaissance)?

So it'd go:
2* Prod from Ancient to Economics
1.85*Prod from Economics to Corporations
1.7*Prod from Computers to Internet
1.55*Prod after Internet
 
Just spitballing. What if we just keep the exact linear scaling specified here, but reduce it incrementally by .15 from 2 * Prod to 1.55*Prod upon unlocking Economics, Corporations, and The Internet Respectively (every other era starting with the renaissance)?

So it'd go:
2* Prod from Ancient to Economics
1.85*Prod from Economics to Corporations
1.7*Prod from Computers to Internet
1.55*Prod after Internet
Sorry, I understand where you're coming from but this sort of hack-y artificial scaling with sharp boundaries is the type of thing that should be a policy or building bonus. The base formula should be clear, simple and intuitive to understand. Already plenty of mechanics increase purchasing efficiency as the game continues - forbidden palace, banks, imperialism, stock exchanges.

I understand the numbers look like a large nerf to late game purchasing (and they are) but I strongly feel purchasing late game is too strong already - between stock exchanges and imperialism you can already stack a 50% discount on all purchases, plus each ideology comes with a Tier 1 purchasing policy and they're all quite strong. Purchasing doesn't need more help from the base cost getting more efficient. The hammers-per-gold ratio late game just ends up off the charts, and that's before we discuss how valuable the fact that you get all of the benefits up front is. Rush buying units should be exorbitantly expensive - it lets you transfer units across the globe immediately, hit tech timings, and recover from surprise wars.
 
I think the current balance is only a little too high for gold even if the efficiency even is "off the charts". Player fantasy is toward being able to do lots of stuff in the late game. Money efficiency is a big part of what enables this. Apart from something that blunts the impact of this change, I'm opposed.
 
This is a very detailed proposal and excellently researched.
I am mostly in favor, though I think we maybe need another stock-exchange-like effect to bump up the curve.

However we discussed internally and we think this change is too large to not be playtested first.
I will implement this in a test branch after the congress and we can try it out, like the supply rework.

Proposal vetoed
 
This is a very detailed proposal and excellently researched.
I am mostly in favor, though I think we maybe need another stock-exchange-like effect to bump up the curve.

However we discussed internally and we think this change is too large to not be playtested first.
I will implement this in a test branch after the congress and we can try it out, like the supply rework.

Proposal vetoed
Thanks for the information Hokath.

Attached is a simple SQL-only implementation of the changes that is savegame compatible so it can be quickly tested by loading into previous savegames.
Additionally if some find the late game purchase costs too extreme with the linear formula, a second more moderate nerf is available in the .sql file, which changes the formula to (4 * :c5production:)0.88 instead, still allowing for a moderate increase in purchasing efficiency lategame but also a moderate nerf to purchasing efficiency as well. I hope both these can be tested quickly, the second proposal I think is much less objectionable but a bit of a compromise.
 

Attachments

Oops, grabbed a slightly old version. Here's an update, plus the spaceship part change. Just uncomment the last two lines instead of the ones directly above them.
 

Attachments

How is 'old cost' calculated in the last chart, as I understand it varies depending on your tech%?

(btw what is tech% exactly, is it your number of tech / total of all techs?)
 
Old cost is a bit of an approximation of how many techs you're likely to have at the time you would purchase the unit (hence why it can vary if you beeline something or are building it super late). The variance is part of why I'm aiming to get rid of tech cost scaling with the new formula.

Checking my work, the table is based on the estimates 0% (Worker) / 10% / 20% / 30 % / 40 % (Tercio) / 50 % / 60 % / 70% (Landship and Tank) / 80% / 100% (Spaceship)

Tech% is percentage of techs discovered (including future tech I believe), so Total Techs Known / 82
 
Status
Not open for further replies.
Back
Top Bottom