My problem with skill decay.

Started by Klomster, July 23, 2018, 03:22:37 AM

Previous topic - Next topic

AileTheAlien

If skill decay was reduced at high levels, you'd be able to get pawns to max level in multiple skills, which is definitely not specialized.

Third_Of_Five

Quote from: Brainsample on July 26, 2018, 02:20:51 PM
Quote from: AileTheAlien on July 23, 2018, 02:31:24 PM
...

Another thing to consider would be multiple skills; It should still be hard to have high skills in everything. I'm sure you could make up some formula, so that for a single skill, you could get to level 20, but for a handful of skills you could only get to around level 15, and for a lot of skills you'd be stuck around 10 or lower.

decay = c * (s(1)^2 + s(2)^2 + ... + s(n)^2 - s(i)^2)

Where c is a constant, s() is the list of skills, and i is the index of the skill under decay.

In words: Decay is proportional to the sum of the squares of all other skills.

Effect: If you have only one high skill, there's (virtually) no decay.
If you have a few high skills, there's decay.
You can't get many high skills, there would be too much decay.

It would probably take a lot of tweaking to implement this in a balanced way. :)

This. Summed up much better than I could have.

5thHorseman

I like the idea of decaying skill based on other skills, but what if perhaps it was simpler and your skills didn't decay unless you were advancing another skill?

Like, gaining 2xp in a skill removes 1xp from a random other skill? And maybe that ratio changes as you go so there is a maximum total xp pool you can reach and when you get to that maximum, getting 1xp in one skill removes 1xp from another skill?

Then determine what the maximum total xp should be, slap a formula around it, and bam. Then, at the lower levels you'd not lose any (or barely any) xp as you gain, but as you get more and more good at something you'll slowly lose the other skills, or if you maintain multiple skills it's a bit harder to keep them all up but you can do it, but not all the way to 20 (or even high teens) with them.
Toolboxifier - Soil Clarifier
I never got how pawns in the game could have such insanely bad reactions to such mundane things.
Then I came to the forums.

Brainsample

Quote from: 5thHorseman on July 26, 2018, 09:47:04 PM
...

Like, gaining 2xp in a skill removes 1xp from a random other skill? And maybe that ratio changes as you go so there is a maximum total xp pool you can reach and when you get to that maximum, getting 1xp in one skill removes 1xp from another skill?

...

Yes, ultimately it comes down to limiting the length of a n-dimensional vector (normalization).
If I'm not mistaken, the amount of xp you need for the next skill level grows quadratically.
So normalization would be equivalent to a maximum total xp pool.

dragonalumni

just a +1 for OP.

a complicated rewrite of compromises is not necessary it's just a bad mechanic.

Skill decay for certain skills especially like medicine and social mean even though they may be the sole person doing this work in your settlement you will still never see one hit 20. On other pawns it's just annoying that your hunter/defender doesn't shoot a gun for x-amount of time and suddenly has lost his skill up.

I don't even think it is really going to affect balance, a skill of 14 instead of 15, for example, it is simply annoying.

Klomster

I don't know why everyone is so focused on balancing things.

No pawn is gonna get high everything during a normal game, it would be hard even if one focused solely on skill leveling.
So i don't see the need for other skills to suffer when raising one, or to have the maximum amount of skills affect how fast one learns skills.

Raising skills is one of the few ways you can combat the vast amount of dangers present in rimworld and the longer you play the harder it gets since you try to improve your colony all the time thus raising its wealth.
Since it is hard to get new pawns, especially ones who are useful you are constantly outnumbered.
So i'd at least want to be able to get  a skill advantage.
Right now one can't do that in combat stats(not in an ethical way at least) and enemies frequently spawn with more skill levels than sense.

Enemies with melee 18 isn't that uncommon.
While i can be happy if i got 12. And can never raise it really.

Plus the fact that in a colony, most will be useless in a fight since they either have like 4 in the combat stats, or are incapable.
I don't know how it is for others, but in my normal colonies, out of 8 pawns. 2 are battlers, 2 are eeeeh but can fight (and have to most of the encounters) in a pinch, the rest are pacifists or otherwise incapable of violence.
It always end up that way, roughly 50% of all pawns in rimworld are useless in combat.

That combined with not being able to raise combat skills become a real problem.
And i can't make a good defencive structure, since static defences are constantly nerfed.

That's the balance now.

And people keep going on how it would be 'OP' with lots of skills?
The colony is dead before one gets a single 20, and that's in construction.
YES, i am overreacting, but come on. I just want to have a high melee guy and not lose him because of skill decay, since i like melee.

The game basically don't want any high skills, everyone should just barely be able to do anything. I guess it adds 'drama', or it just promotes save scumming since my incompetent pawns keep getting eaten by snakes and squirrels.

I am not promoting that everyone should get 20 in stats easy, and i am not promoting that pawns should be 20 everything. If i'd want that i'd just always activate the maximise pawn skills cheat and just play the game like that. But i don't.

But at the moment, i can't improve the defence of my colony except through turrets and traps. Which are both being nerfed to 1.0.
So the feeling i'm getting is that our colonies should be destroyed, which i feel sad about because i like success stories, not constant fail stories.

Yes prevail through hardships and all that, but soon prevailing feels like an unattainable goal.

5thHorseman

Quote from: Klomster on July 27, 2018, 05:28:25 AM
I don't know why everyone is so focused on balancing things.

My only concern is that the devs won't look at an idea that doesn't consider balancing them. I pretty much agree with you. If I put 30 hours into maxing out 4 skills on a pawn... how exactly is that OP?
Toolboxifier - Soil Clarifier
I never got how pawns in the game could have such insanely bad reactions to such mundane things.
Then I came to the forums.

bobucles

#37
Why does a pawn need any skills above level 10? High level skills are a luxury, not a requirement. Most of a colony can survive on level 5-8 skills, which is exactly where non passion skills should let you level up to. Currently non passion makes it too difficult to get even that.

Some skill ups aren't even meaningful. For example the difference between 95% and 96% accuracy doesn't matter. A lvl 20 anime-tier marksman will still hit cover 80% of the time and his shots get harmlessly deflected by armor just like everyone else.

pablo603

Quote from: bobucles on July 27, 2018, 11:17:57 AM
Why does a pawn need any skills above level 10?


Uhhh... I don't know. Maybe because there are skill requirements for certain things like building and taming? Maybe because raising a skill makes the pawn work faster for jobs that require that skill? Compare this speed. A guy who is level 8 in researching is much much much slower (120 % of research speed) than a guy who is level 18 in researching (270 % faster research speed). This is because every point in intellectual skill a pawn gains +15% research speed.
A guy who is level 7 melee stands no chances against a guy with level 20 melee (the level 7 stands only a chance if he has a much better weapon than the level 20 guy for example a plastell gladius vs a steel knife/mace and even then he will get heavily injured)
A guy with construction of 8 will construct less quality objects and fail very often. A guy with construction level of 20 will construct maximum quality objects and almost never fail plus he will build things much faster as each point in construction skill speeds up his work by 15 %
A guy with cooking of level 8 will poison food more likely than a guy with level 20
Information straight from the wiki:
QuoteEach point decreases cooking time by 11%

Each point decreases butchering time by 10%

Each point increases meat and leather amount by 2.5%, up to a max. of 100%

And I don't agree with shooting too. The accuracy is counted PER TILE

Information straight from the wiki:
QuoteA colonist with shooting accuracy of 99% has a base accuracy of 72.5% against a target 32 tiles away.
With 98% accuracy, the base accuracy against the same target becomes only 52.4%.

See the huge difference?

Brainsample

Here is the rate of decay for each level in a table:

level   decay

10      1
11      2
12      4
13      6
14      10
15      18
16      28
17      40
18      60
19      80
20      120

Suppose you have a pawn with all 12 skills at level 10. Such a pawn has 660,000 total xp, that's quite a lot. You can use the same amount of xp to make a specialist. The specialist would have two skills at level 20 and one skill at level 15. This table shows more combinations of skills with 660,000 total xp, and how much xp they lose by decay:


                       
#levels      remainder      total decay

2  x 20      15             258
3  x 18      4              180
4  x 16      3              112
5  x 15      2              90
6  x 14      4              60
7  x 12      4              28
8  x 12      1              32
9  x 11      2              18
10 x 11      1              20
12 x 10      0              12


As you can see, the specialist loses xp 21.5 times faster than the Jack of all trades. Of course that's because the levels below 10 are protected, which is something we definitely want to keep.

___

All things considered, I think this would be an elegant solution:

- Use the current decay system as base value.
- Multiply the base value by a number between zero and one.
- The multiplier is zero when total xp is 265,000 or lower.
- The multiplier is one when total xp is 530,000 or higher.
- In between, the multiplier gradually rises in a linear way.

If a pawn has one skill at level 20 and all the rest is zero, there is no decay.
If the pawn has two skills at level 20 and all the rest is zero, there is maximum decay.

This would be easy to code, easy on the CPU, and fairly easy to explain on the wiki.
Tweaking wouldn't be too hard either, there are only two parameters to adjust.

Hmmm, and also: These two parameters could be a way to make skill decay moddable. :)

AileTheAlien

What about skills below 10? One of my problems with the current system (and your proposed change), is that all pawns eventually get to level 10 in every skill. That's a lot of usefulness, because pawns fail tasks a lot at levels below 10.

Brainsample

#41
Quote from: AileTheAlien on July 29, 2018, 01:31:13 PM
What about skills below 10? One of my problems with the current system (and your proposed change), is that all pawns eventually get to level 10 in every skill. That's a lot of usefulness, because pawns fail tasks a lot at levels below 10.

That's yet another excellent point, but it would require a rewrite of the existing code.
I tried to make the smallest addition to the existing code, offering the most flexibility.

Squiggle

I like a lot of these suggestions. Especially any sort of training capabilities (target practice dummies, dojo areas, libraries, etc) for skills that are otherwise difficult to perform regularly.

I wouldn't seeing soft skill caps that are different for each pawn. Basically imagine a learning curve for each skill for each pawn. A hidden curve that could be any shape (but similar to a ease out cubic: https://easings.net/#easeOutCubic ) might be too complicated but would model things nicely. More simply you could just think of it as a max. You could get over your max, but that's when the decay would kick in, below your max the decay would either be delayed considerably or reduced (I prefer delayed).

By default pawns would cap out around 10-12, but you could get a rare few with caps of 20 making things very interesting if you find a 20 cap pawn with some bad traits.


bobucles

If you have to use anything more fancy than the 4 basic operators +-*/ then it's probably too complicated. The system should be as simple and straight forward as possible while getting the intended mechanic across.

Giving pawns an arbitrary "brain space" will create extreme differences in pawns with incapable traits. Most pawns have modest skills across the board, so they will end up moderately bad at everything. Incapable pawns have a load of 0's so their few remaining skills will reach insane heights. I'm not sure that's a good thing but it would make for interesting colonies.

Squares and cubic equations are... no. Just stop. There's always a better way.

Skill growth gets messed up when traits hit the field. Passionate fast learning pawns keep hitting the XP cap so they end up learning at the same speed as everyone else. It's pretty silly.

AileTheAlien

Reading (skimming) over most of this thread again, it seems like there's a lot of different problems with skill-learning and skill-decay, but that the broad strokes of the system are not too bad. Let's see if I can accurately summarize this, and also propose some relatively small changes to the existing system...

Problems:
0. Game-balance is hard.
1. Fast skill decay on specialist / (formerly-)highly-skilled pawns feels bad.
2. Some skills are (trivially) easy to raise, while others are very time-consuming to raise.
3. Some skills have in-game, obvious ways to raise them, while others must be raised by methods that feel like cheats / exploits (or simply don't get raised by new players).
4. The maximum-experience-per-day mechanic feels bad. (If the player is sacrificing pawn mood or food to train skills...why not let them?)

Proposed Changes: (plus misc. thoughts / notes)
1. Balance the different skills that are out of whack. Make all balances assuming a pawn spending X hours per day / week, for any given skill. (All pawn specialties / game mechanics / player strategies should be equally viable.)
2. Add in training buildings for skills that don't already have some type of long-term, pawn-use building. (These might need to be weaker than "real" activity. Balance is assumed for this, and all later numbered points...) For example, cooking is already trained by the pawn cooking at a stove all day; A player should be able to have a pawn train at a shooting target, or practice medicine on a training dummy, rather than having them shoot at sleeping spots, and chop up pirate prisoners all day.
3. Remove the maximum-experience-per-day mechanic. This should be un-needed, since there's a maximum number of hours per day for pawns to train, and training rates, and experience for things like surgery, can be balanced.
4. Passions should affect skill decay speed, not just skill learning speed. (Or maybe just affect skill decay instead?) Passionate pawns could still learn skills quickly, but they wouldn't lose skills that they should be masters in.
5. Another balance-pass, to make sure the traits like Fast Learner and Great Memory still line up with the skills and passions. :)