Killing lower tier units gives more xp than killing higher tier units?

正在查看此主题的用户

TaleWorlds.CampaignSystem look for DefaultCombatXpModel, let us know if you can see some more insights

I wasn't able to find the file, I sent you a pm.

Update: I started a new character, saved, waited in a village and killed a group of 4 looters (always using my starter spear). Polearm level went from 25 to 30 (first looter kill gained me 2 skill points so from 25 to 27). Then I loaded the previous file, kept waiting, saw one of the "Rufus and Doofus of the Hand" parties and was like, what the heck here's my demands (I was originally planning on engaging mountain bandits but apparently they were on vacation). I managed to kill the mounted leader, my polearm is now 27. If the effect of killing high level units is there, it is barely noticeable. I would argue that killing a heavily armored knight should yield a better reward than killing 4 looters in terms of xp, while it seems to be comparable to killing one single looter.

Edit: in fact, I managed to hit three of his infranty men before they killed my horse with their throwing daggers, and my polearm is now 28. I was trying to see if I could kill three of them to even the number but no such luck. Still, I imagine that there is a big level difference between the leader and a looter.

That may just be a symptom. In Warband skill increase was determined from the speed bonus or shot difficulty; damage bonus was also applied based on speed bonus, so an attack which generated the most chance of increasing a skill would also be the one which dealt the most damage. I wouldn't be surprised if it's a similar, if not the same, system at work here.

That, I think, is exactly what is happening.
 
最后编辑:
xp you get from dmg part is capped by attacked units HP and xp required to lvl grows exponentially only thing thats unlocked is enemy strength, might be clamped somewhere else need to check for that.
It is the reason people gawk about tournament high xp gain, first thing they actually notice gains and second few people even do much fighting vs high lvl enemies at all if killing 6 enemies per tourney gives too much xp vs killing 80 looters what else there could be
 
I've looked at this pretty extensively, you do get more EXP for fighting a higher level troop. It's a bit of a funny calculation, but the exp gained is scaled basically on 0.4 * (0.5 + (0.2 + (level + 10)^2 * 0.0025) So you get about 0.78 exp per damage fighting a level 1 opponent, 2.78 exp per damage for a level 6, 4.78 for a level 11, 6.78 for a level 16, etc. Basically adding 2 to the multiplier per troop tier.

This counts both for skill experience and troop experience. Looters are level 6 for reference.

The EXP curve for skill leveling follows a bit of a geometric series, it can be approximated as 0.0034x^3 + 0.6527x^2 + 23.838x - 300.3. The actual formula is that exp needed for this level is lastLevelExpRequired + CurrentLevel*2+Round(lastLevelExpRequired*0.005). where level 0 counts as 30 exp.

So from level 100 to 100 requires 11777 exp, for level 100 to 101 it requires 11777 + 100*2 + (58.885) or 11777+259 or 12036.

It's not quite exponential, but it does ramp up quickly.

Another thing is that your skill exp multiplier from stats and focus points starts to reduce as you get higher level. But killing a high level opponent will give you more EXP than a low level opponent, though it might take more hits. Per hit you might get less exp, per kill you'll get more.

This is skill XP i'm talking about, exp to level troops is gained the same way but the level progression works differently.
 
It has been my experience that for what concerns combat skills you get more experience the more damage you deal. I haven't been able to test this properly, and I am not even sure how one would go about doing this in a controlled manner, but that seems to be the way it works. If that is true, that would mean that you get more experience fighting rabble (i.e. unarmored units) than you get from seasoned elite troops. This because higher level troops have armor, armor mitigates the damage you inflict, which in turns lowers the experience you get from them.

This obviously wouldn't make any sense and would need to be addressed. I am wondering if my fellow players have noticed the same thing?


The calculation is this: xpAmount = MBMath.Round(0.4f * ((attackedTroop.GetPower() + 0.5f) * (float)(Math.Min(damage, num) + (isFatal ? num : 0))));

Where: GetPower =

float num = 0f;
float num2 = (float)this.Level + num;
return 0.2f + (num2 + 10f) * (num2 + 10f) * 0.0025f;


Basically, the higher level your opponent, the more XP you get per damage. If it's a kill shot, you also get more XP.
 
Alright so we have two proposed models (I wonder what methods you used to come up with them? I assume bantad87 obtained theirs from game files).

First model:

XPgain = 0.4 * (
0.5 + (0.2 + (level + 10)^2 * 0.0025
)

Second model (written differently to make it more readable):
XPgain = Round(
0.4 * (
( 0.2 + ((level + 10)^2)* 0.0025 + 0.5) * damage
+ (isFatal ? num : 0)
)
);

Now these two are definitely not the same, so which one is correct?

The first model does not depend on damage at all. Based on my in game experience, that doesn't seem accurate. Unless you just didn't include terms for damage, then it could possibly turn into the second model.

The second one includes damage, and that seems more reasonable. I am not sure I understand how the kill is factored in. It seems to be a flat bonus? To be honest I don't understand what (isFatal ? num : 0) is supposed to mean.

I will say that I have witnessed occasional skill increases from hitting shields/having my spear blocked. So damage is definitely not the only term in play. At the same time the test that I mentioned earlier seems to show that looters are more efficient when it comes to leveling up weapons skill (anyone who wants to compare results is welcome to try a similar test themselves). Even if the xp gain is marginally higher when fighting a high level unit, it doesn't seem to be high enough difference to justify wanting to fight them instead of lower tier units.

I hope that makes sense!
 
I think that has to do with level only being a small part of that equation, and looters are efficient to kill because they lack armor and die relatively easily.
 
I think that has to do with level only being a small part of that equation, and looters are efficient to kill because they lack armor and die relatively easily.

Right, that would be it with the model that you reported. However that model does not explain why we get xp from blocked hits (in that case damage dealt is zero so we shouldn't get any experience). Unless they count damage to the shield? But it also happens when hits are blocked without a shield so... I don't know!
 
Right, that would be it with the model that you reported. However that model does not explain why we get xp from blocked hits (in that case damage dealt is zero so we shouldn't get any experience). Unless they count damage to the shield? But it also happens when hits are blocked without a shield so... I don't know!
the num is units hp, so the dmg part of equation is clamped to hp and you get a bonus for a fatal blow, thats the missing xp you are getting maybe? Not sure if you get any xp if no hp dmg is dealt.

added num part missing in the formula...
num = attackedTroop.MaxHitPoints();
The calculation is this: xpAmount = MBMath.Round(0.4f * ((attackedTroop.GetPower() + 0.5f) * (float)(Math.Min(damage, num) + (isFatal ? num : 0))));

oh and simulated battles have x8 multiplier lol
 
XP gain is quite low for myself, my army and my companions. For the longest time I wondered if companions actually leveled up or not. I no longer take recruits as soldiers as it takes to long to level them past the footman (level 2) stage. XP gain is just too stingy across the board.
If you are having issues leveling then you just need to autoresolve battles against huge hordes of looters, your troops can only be wounded worst case, and you level all your troops to max insanely fast. Someone mentioned that simulated battles have a x8 multiplier, I'm assuming he's right, there is a noticable difference in how fast your troops level fighting vs simulating battles.
 
For leveling companions the best way seems to be putting them in their own group and letting them fight groups of enemies while you hold the rest of your army back because they don't gain any skill XP from autoresolve like your troops do, as fast as I can tell. At least for weapon skills, which is about all you can raise on them except for tactics, medicine, and engineering when they fight or siege as army leaders. Your caravan masters don't even gain trade. Can also get them a bit of Steward XP by making them quartermaster, but I don't see the point of doing that as you have to choose between them getting it or you

It's still abysmally slow, though.
 
后退
顶部 底部