HabitRPG / habitica

A habit tracker app which treats your goals like a Role Playing Game.
https://habitica.com
Other
12k stars 4.09k forks source link

Tools of the Trade ('toolsOfTrade') Skill Rebalancing (for 'rebalancing-2014-12' feature branch) #4416

Closed Alys closed 9 years ago

Alys commented 9 years ago

As described in Fix Overpowered Skills - Issue #3029, we are rebalancing many skills. This issue is specifically for Tools of the Trade (toolsOfTrade). Current skill is defined here.

Requirements:

Verabird commented 9 years ago

Making tools of the trade more than double PER in order to have a reasonable effect on the drop chance says to me that the formula for how PER affects drop chance might need to be reevaluated. I'm adding diminishing returns based on the given linear formula, centered at adding 200 PER when the stat at cast is 100 PER, (Max added per is 400) but it seems silly to me to be increasing stats by so much at a go.

Alys commented 9 years ago

Interesting point. FYI @SabreCat "how PER affects drop chance might need to be reevaluated" - what do you think?

Current drop chance calculation: https://github.com/HabitRPG/habitrpg-shared/blob/7fd4cebbdc531b6875fb0fbb687b89b66362ee67/script/index.coffee#L1197

Use of PER in gaining gold: https://github.com/HabitRPG/habitrpg-shared/blob/7fd4cebbdc531b6875fb0fbb687b89b66362ee67/script/index.coffee#L1031

SabreCat commented 9 years ago

So the suggestion would be to make Tools give fewer points of PER, but have those points provide a greater impact on drop chance? I would be OK with that. Make sure to test a few different scenarios for the other drop chance factors, such as streak achievements, that tend to grow over time and will magnify the effect of any changes we make to PER.

Verabird commented 9 years ago

Any guidelines on rebalancing PER/Drop chance? I'm doing some thinking about this and I just don't like how the whole drop chance is calculated but I'm not sure which features of the current version are important and which aren't. I'll use my best judgement if I don't get any guidelines.

Alys commented 9 years ago

My personal thoughts about drop chances are:

I'm in two minds about these things affecting drop chance:

It's nice that they help, but the longer you play, the more of those you'll get (obvious limit of 7 for the tier of course). This means that the other things that affect drop chance will have less and less proportional effect. Eventually, you'll max out your drop chance with achievements alone, and then task value, PER, etc won't have any point - the game will have become less configurable by your choice of stats. I'd like to see some kind of limit on the effect of achievements, so that task features, crits, and PER always have a greater effect.

SabreCat commented 9 years ago

I'd be fine with removing or reducing the impact of those factors. I personally like mechanical impact for achievements and such (perfect day gives a buff, so let streaks give a drop boost!), but it's not a necessity.

Verabird commented 9 years ago

Currently, everything is combined and then subject to diminishing returns with a max at 75%. My thought is to separate out PER and have the effect of PER be subject to diminishing returns with a max chance of 25%, and have the remainder given a max of 50% instead of 75%. This will probably result in overall drop chances being lower for people without high PER, but will definitely make PER have a more intuitive effect. Also, maxing out drop chance will require putting points in PER, as well as having other achievements or effects.

I need to do some more thinking and math to make it prettier though. Part of the problem is combining several theoretically unbounded factors (streak, rebirths, etc.) into a probability and balancing them against other, bounded factors (contributer tier)

Alys commented 9 years ago

I like the sound of that. I'll be interested to see what you come up with!

Verabird commented 9 years ago

I'm still going to work on this some, but after running the numbers we seem to be in an "if it aint broke, don't fix it" situation. The diminishing returns function does prevent geometric growth in either PER or drop chance. It might take a while before I find anything that actually improves the situation, so if you're happy with how things are, we could close this ticket.

My original idea was to separate out PER and have Tools of Trade buff at about 25% of total PER. This results in about a 4% increase in drop chance for a single cast of Tools of Trade at various levels- not increasing with level (actually decreasing a little). It will help party members with low PER more than the rogue who casts it.

Here's the numbers for the tests I did (only yellow tasks so far) Drop Chance Old Tools of the Trade (develop branch): Yellow habit

Level 1: 0.21947308326576373
Level 15, all points in PER: 0.251561911685405
+ Tools of trade: 0.25292850956733687
Level 50 all points in PER: 0.3154753127362879
+ Tools of trade: 0.3175482838111272
Level 100 all points in PER: 0.38130869110045545
+ Tools of trade: 0.3850198867350058
Level 100, all points in PER, 1000 Bonus points: 0.6284659506839677
+ Tools of trade: 0.6312520986686012

Drop Chance New Tools of the Trade (diminishingReturns(per, 400, 100)): Yellow habit

Level 1: 0.21947308853118708
Level 15, all points in PER: 0.2515619173556354
+ Tools of trade: 0.3348769693793313
Level 50 all points in PER: 0.31443136279149214
+ Tools of trade: 0.4412684523637182
Level 100 all points in PER: 0.3813086974579224
+ Tools of trade: 0.5022360942478095
Level 100, all points in PER, 1000 Bonus points: 0.6284659541379823
+ Tools of trade: 0.6525149204639564

Drop Chance Alternate Formulation (Tools of trade is (per, 100, 200) also other changes) Yellow habit

Level 1: 0.11177459103607898
Level 15, no points in PER: 0.1340675806100067
Level 15, all points in PER: 0.17572807839401056
+ Tools of trade: 0.19968667691984404
Level 50 no points in PER: 0.18197515903117473
Level 50 all points in PER: 0.27769886112037595
+ Tools of trade: 0.31474487995249156
Level 100 no points in PER: 0.23677458190862744
Level 100 all points in PER: 0.36177458089446635
+ Tools of trade: 0.39311568775202543
Level 100, all points in PER, 1000 Bonus points: 0.5540822711738366
+ Tools of trade: 0.5576620237394292
Alys commented 9 years ago

@Verabird thank you! That's a useful analysis. I think you're right that the current situation with diminishingReturns is certainly good enough for the skills rebalancing project, so I will close this as you recommend.

If you want to work on this further later, feel free. Or indeed on any other aspect of the site - I'm impressed with all your work so far and would love to see more! :)

BTW, I don't mind the idea of the skill helping party members with low PER more than it helps a high-level rogue who casts it. I think that's a nice thing for party dynamics.

Alys commented 9 years ago

In https://github.com/HabitRPG/habitrpg/commit/5506d5a39ecc7204d148aae4167b97217fc20b0a I made this skill weaker again, even though I'd been the one to ask in this issue that it be made stronger. It was giving too much gold. I still don't like its low effect on the drop chance, but that's probably best handled by redesigning the drop chance at a later date (as Verabird recommended here).

Verabird's code is still used for this skill, so this PR is still going to count towards contributor tiers. All I did was tweak two numbers.