(2-51) Proposal: Units lose XP on upgrade

ilteroi

Prince
Joined
Mar 11, 2006
Messages
486
Just what it says in the title. Inspired by the "immortal human units vs endless AI unit spam" discussion.

When a unit is upgraded, it loses half of its XP. But it does keep all the promotions. Just needs a longer time to reach the next level.

Obviously the percentage is debatable. But it would make it so that new units can compete with older ones and create an interesting choice where upgrading immediately is not always better.

Edit: typo
 
Last edited by a moderator:
I think a change like that could work but I think the fundamental issue is that some promotions are simply overpowered, particularly the range promotion for ranged/siege units. The range promotion has already been nerfed relative to vanilla but I still don't use it out of principle because of how game-warping it is. To balance it the effect would need to be changed to something like "The unit can attack at +1 range but only deals 30% damage if it does".
 
Please make a separate proposal for modifying promotions; let's stick to the XP discussion here.
 
I think these issues are related though. Melee units with a lot of XP are useful but they alone would not warrant a change like this in my opinion. The accumulation of XP is only an issue because of how overpowered ranged units with a lot of XP are. So to me this kind of seems like a band-aid fix when the real issue is something else.
 
This would put in a lot of new micro of just waiting until you gain a level and then promoting? That would be even more bothersome to do so, because you can't upgrade usually while fighting (you're not in friendly territory). Would presumably be really difficult to teach AI to do this properly as well and evaluate when staying and fighting is better than retreating and upgrading, but since this is proposed by the tactical AI wiz dev, it might not be?

I think war is already only really fun when you don't have carpet amount of units and I'm not searching for additional complexity then. Maybe if something like Imperialism or Autocracy gains a bonus that invalidates this penalty, I could support it.
 
Another issue is for UUs. It is common for most UUs to have promotions that carry over when upgraded, so you naturally want to create plenty of them before they obsolete. Given that they obsolete later than usual, you're normally creating them while their immediate upgrade is available just to retain those promotions; this proposal punishes you for doing that.
 
Lets look at a few numbers to get a feel for this:

First, here is the total XP you need to have to get to the next level. So if your level 2, you need 30 total xp in your bucket to level 3 (which is a difference of 20 xp, since you started with 10 at first level.

LevelXP
1​
10​
2​
30​
3​
60​
4​
100​
5​
150​
6​
210​
7​
280​
8​
360​
9​
450​

Versus Fresh Units
This is our basic whether we upgrade our units versus just make a new one fresh, lets see how far behind some of our baseline units with the -50% xp penalty.

Scenario 1: Level 2 unit upgrade vs fresh barracks unit.
XP 5 vs 15 - need 2 melee attacks (5 ranged) to catch up

Scenario 2: Level 3 unit upgrade vs fresh armory unit
XP: 15 vs 35 - need 4 melee attacks (10 ranged) to catch up

Scenario 3: Level 4 unit upgrade vs fresh military academy unit
XP: 30 vs 60 - need 6 melee attacks (15 ranged) to catch up


High Promotions: Upgrade vs Fresh Military Academy Unit
Scenario 1
: Level 5 -> Upgrade -> Level 6 vs Level 4 Academy -> Level 6

100 XP -> 50 XP -> 150 XP (100 XP, 20 melee, 50 ranged)
vs
60 XP -> 150 XP (90 XP, 18 melee, 45 ranged)

Scenario 2: Level 6 -> Upgrade -> Level 7 vs Level 4 Academy -> Level 7
150 XP -> 75 XP -> 210 XP (135 XP, 27 melee, 68 ranged)
vs
60 XP -> 210 XP (150 XP, 30 melee, 75 ranged)

Scenario 3: Level 7 -> Upgrade -> Level 8 vs Level 4 Academy -> Level 8
210 XP -> 105 XP -> 280 XP (175 XP, 35 melee, 88 ranged)
vs
60 XP -> 280 XP (220 XP, 44 melee, 110 ranged)



Conclusions: So what this is showing is that right around the level 4-5 mark, your home grown promotions are going to stagnate a bit. Its actually more efficient XP wise to make new units than it is to home grow their XP. Pushing into level 6 its faster to keep pushing your existing units and upgrade them than replace them with new units....but it does show a marked difficulty in pushing into those high promotions. I would expect that level 6 units would be exceptionally rare in this model, as by the time you get just enough Xp to get to that level, you need to upgrade your units again.
 
This would put in a lot of new micro of just waiting until you gain a level and then promoting? That would be even more bothersome to do so, because you can't upgrade usually while fighting (you're not in friendly territory). Would presumably be really difficult to teach AI to do this properly as well and evaluate when staying and fighting is better than retreating and upgrading, but since this is proposed by the tactical AI wiz dev, it might not be?

I think war is already only really fun when you don't have carpet amount of units and I'm not searching for additional complexity then. Maybe if something like Imperialism or Autocracy gains a bonus that invalidates this penalty, I could support it.

Yeah, I like the idea and thought about it for my modmod, but making it work with VP would require more changes. For example, instead of XP or promotions, units can lose -10% CS/RCS with upgrades instead (call this option A). You can further tweak this so that units also gain 10% CS/RCS with each level up, so upgrading would essentially mean de-leveling a unit (opt B). A freshly recruited unit would have more "raw" power, but the upgraded veterans would have specializations acquired through promotions. This wouldn't really fix the XP grind as promotions like range matter a lot more than pure power, but it would make it a bit less important. You'd still be better off removing deleting a unit with low level instead of upgrading it though.

edit: Of course option A would either require a lower CS loss, or a cap on max CS loss. IIRC there are 9 tiers for melee, so you can either have -5% CS per upgrade, or -10% with max -50% malus. Option B wouldn't need this, but it's a lite version anyway.
 
Last edited:
I would really prefer some sort of round down instead of a % XP loss.

Like you lose all progress towards the next level, but don't lose the levels you already have.

The idea that units would drop entire levels is really janky, and it's going to feel really bad, especially if you start removing promotions off units.
 
Last edited:
Like you lose all progress towards the next level, but don't lose the levels you already have.
That at least would create some decisions around "hmm should I send this weaker unit into combat to squeeze out that last XP, or just upgrade him?"

I don't like any of this, but this idea I think is a better tweak if we were going to go through with somethign. On the other hand, it might make so little difference in the long run that its not worth the paper its printed on, not sure.
 
But it would make it so that new units can compete with older ones and create an interesting choice where upgrading immediately is not always better.
That at least would create some decisions around "hmm should I send this weaker unit into combat to squeeze out that last XP, or just upgrade him?"
Neither are interesting or fun decisions, though. It's not like when you're deciding if a policy or belief is more synergistic with your build, or when you make a mistake and is trying to salvage the situation. It's more like deciding which is less awful, fighting with outdated units or losing experience. You already had to commit to beeline a military tech over an economic or wonder one, you're then punished with an experience penalty.
 
@Rekk
When a unit is upgraded, it loses half of its XP. But it does keep all the promotions. Just needs a longer time to reach the next level.
Yeah, this is such a crazy idea I chose to ignore it.

You want to unhook the number of promotions a unit has earned from its level, and have the computer store separate information for the max level a unit has ever earned and compare that to its present level before letting it pick a new promotion?
Is @ilteroi proposing we expose this information on the unit panel so humans can see when a unit is going to earn its next promotion, or are we now expected to memorize which units have been upgraded, and therefore have had their level and promotion progression dislocated from each other?

you cant even count the promotions each unit already has as a proxy for max historical level, because some UUs give pickable promotions for free. The end result is unit levelling and promotions are opaque, time consuming and un-fun, with the added bonus of more memory usage.
 
If we wanted to target XP I'd much prefer increasing the gaps between later promotions than artificially removing XP, allowing XP from buildings helps close the gap sooner.
 
@Rekk

Yeah, this is such a crazy idea I chose to ignore it.

You want to unhook the number of promotions a unit has earned from its level, and have the computer store separate information for the max level a unit has ever earned and compare that to its present level before letting it pick a new promotion?
Is @ilteroi proposing we expose this information on the unit panel so humans can see when a unit is going to earn its next promotion, or are we now expected to memorize which units have been upgraded, and therefore have had their level and promotion progression dislocated from each other?

you cant even count the promotions each unit already has as a proxy for max historical level, because some UUs give pickable promotions for free. The end result is unit levelling and promotions are opaque, time consuming and un-fun, with the added bonus of more memory usage.
take a look at CvUnit::testPromotionReady() before making scaremongering statements on top of ill informed statements.

that said, it's just a proposal and people may or may not like it but calling it crazy seems a bit extreme.
 
@Rekk

Yeah, this is such a crazy idea I chose to ignore it.

You want to unhook the number of promotions a unit has earned from its level, and have the computer store separate information for the max level a unit has ever earned and compare that to its present level before letting it pick a new promotion?
Is @ilteroi proposing we expose this information on the unit panel so humans can see when a unit is going to earn its next promotion, or are we now expected to memorize which units have been upgraded, and therefore have had their level and promotion progression dislocated from each other?

you cant even count the promotions each unit already has as a proxy for max historical level, because some UUs give pickable promotions for free. The end result is unit levelling and promotions are opaque, time consuming and un-fun, with the added bonus of more memory usage.
The only thing that matters is how much experience the unit has, and how much its next promotion costs. Level only matters in how much experience the next promotion will cost, and how many "promotions from experience" a unit can have.

The unit's level wouldn't change. It would not lose promotions.

You're making this way more complicated than it needs to be.
 
Last edited:
scaremongering as in "uh but think of the memory!"

do you have real arguments?
 
The unit's level wouldn't change.
Ahhh, okay that changes things. I wasn’t aware you can unlink XP from levels. Still would be much better if the XP to next level was treated as a floor for XP loss.

@ilteroi this is your proposal. it’s not my job to explain or defend why removing XP won’t affect unit level, and if your response to criticism is “learn 2 code” then you aren’t going to get anything productive in return.
 
Last edited:
Top Bottom