[1.5] Mad Skills 1.5-2.7.0 - skill degradation begone! (2024-04-20)

Started by Ratys, March 03, 2015, 05:38:50 PM

Previous topic - Next topic

Naxdar


Love

I'm curious if anyone could try implementing what Mad Skills does with the new Patch method.

Ratys

Quote from: Love on May 24, 2017, 04:34:32 PM
I'm curious if anyone could try implementing what Mad Skills does with the new Patch method.

Not possible, I'm 95% sure. Mad Skills has to make changes to code because the bit that needs to be modified doesn't have any presence in the defs - which is what the new patching can change (cleaner than before, I mean).

...Anyway:

25.05.17 CHANGELOG:

  • Recompiled for A17.
  • Replaced hacky detour with Harmony.
  • Re-rolled flavors as options in freshly implemented settings menu.
  • Added a preview image, by Shinzy.




27.05.17 CHANGELOG:

  • Changed decay multiplier to a percentage.

AngleWyrm


Rimworld's generic skill decay system relies on time to rot skills that are over level-10, a sort of progress bar and placeholder for development of more detailed content.

Suggestion: Better forgetfulness
Once a pawn reaches level-10 in a skill, further development draws XP from their own least-used skill. This makes it so the skill being practiced gets the most development, and the skills that aren't being used give up their brain space.

It supports the concepts of pawn specialization rather than the illogical concoction of level-20 everything, and makes upper-tier XP changes into transfers of focus of the pawn's behavior rather than arbitrary time. The player then has some ability to shift colonist development around to make them a better match to need.
My 5-point rating system: Yay, Kay, Meh, Erm, Bleh

zlj

Quote from: AngleWyrm on June 04, 2017, 08:09:58 PM

Rimworld's generic skill decay system relies on time to rot skills that are over level-10, a sort of progress bar and placeholder for development of more detailed content.

Suggestion: Better forgetfulness
Once a pawn reaches level-10 in a skill, further development draws XP from their own least-used skill. This makes it so the skill being practiced gets the most development, and the skills that aren't being used give up their brain space.

It supports the concepts of pawn specialization rather than the illogical concoction of level-20 everything, and makes upper-tier XP changes into transfers of focus of the pawn's behavior rather than arbitrary time. The player then has some ability to shift colonist development around to make them a better match to need.

The idea isn't half bad, the problem is just that RW doesn't keep track in the code when a skill was last used. That bit would need to be added, making it a rather complex endeavour. In "static quality plus" i just worked around the "all 20" problem by giving you the choice to limit passions to a maximum of 4. Of course that still means you could potentially get all 20 .. but seriously who wastes that much time on a pawn? =p

AngleWyrm

The data storage would be a sorted container of skills, something like a priority queue. Here's an article on implementing a priority queue in C#

Abstract Data Type
A good API would supply a function that takes as parameters a pawn skill that was just used, and the amount of experience points that use gave to that skill. A return value that could be useful in the design would be a reference to the oldest skill used in the container.

pseudo-code for the function interface could look something like so:
oldestSkill = pawn.skillset.update( skill, xp )

Also, the numerical property for a boolean function isOlder(skill, skill) in the ranking is only the ability to determine a < b
My 5-point rating system: Yay, Kay, Meh, Erm, Bleh

Ratys

Implementing that isn't hard in any way, I've done much more complex things in my other mods. It's simply not in the scope of Mad Skills - even that not-yet-released feature knocking about my github is quite beyond that.

But, as long as we're talking about what kind of skill leveling/de-leveling system would make sense for RimWorld... I'm veering towards how Dwarf Fortress does it: skills are increased by using them and never decrease, but they go "rusty" over time without active use, placing a temporary reduction on them (I can't recall the maximum magnitude of it, could be as far as 100%). This rustiness starts going away as soon as the skill is used again, at a rate far greater than when it was learned in the first place. Such a system allows continuous progression while still penalizing inefficient specialization.

maculator

If you had pull request enabled, I'd push a german translation :/
Here you go:
(Attachment)

[attachment deleted by admin: too old]

Kelsin

Sup.
Can you please update mod for A18 unstable or it's enough to chanhe version in about?

MusicManiac

Didn't even know there is a skill degradation :D
Still getting this one, thanks :D

Kelsin

Quote from: MusicManiac on November 08, 2017, 11:26:54 AM
Didn't even know there is a skill degradation :D

If skill higher than 10 and not used time to time than it slowly degrades. Realistic, of course, but hell, I don't have a lot of colonists, can they be at least skilled?

nameless1

I pretty much hate skill degradation, that's why I'm waiting this mod to be updated before starting with B18 :(

Julia


Ratys

Updated, also included a couple new features (that spent like half a year kicking about my github, just because I didn't want to break yall's configs), check main post for details.

sajberhippien

#164
Could I suggest another functionality? Setting a global modifier for how quickly xp is gained. I'd like to have starting skills of a pawn matter more even later in the game, both by making leveling harder and degradation slower/nonexistent.

Edit: I realized I might be able to do this myself in XML by applying a learning modifier to all pawns, but I don't know how that would interact with passions? Would a 33% mean BP learns at 117% rate and no passion not at all?