-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use proportion of difficult sliders to better estimate sliderbreaks on classic accuracy scores #31234
base: pp-dev
Are you sure you want to change the base?
Use proportion of difficult sliders to better estimate sliderbreaks on classic accuracy scores #31234
Conversation
return 0; | ||
|
||
// Use a weighted sum of all strains. Constants are arbitrary and give nice values | ||
return SliderStrains.Sum(s => 1.1 / (1 + Math.Exp(-10 * (s / consistentTopStrain - 0.88)))); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use DifficultyCalculationUtils.Logistic
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should change this for the other places too (separate PR)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm pretty sure I already did in most places
{ | ||
sliderStrains.Add(currentStrain); | ||
} | ||
SliderStrains.Add(currentStrain); | ||
|
||
return currentStrain; | ||
} | ||
|
||
public double GetDifficultSliders() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can't we combine this with CountTopWeightedSliders
? They're doing essentially the same thing
Works out individual top weighted strain count for hitcircles and sliders, and then multiplies countmiss by 1 + the proportion of top weighted strain on sliders to account for misses on sliders sliderbreaks. This assumes that the player breaks equally on difficult hitcircles and sliders, which is the most fair assumption in my opinion.
The number of sliderbreaks is then scaled with combo, to account for the fact that higher combo scores have less places for sliderbreaks to hide in.
Spinners are handled incorrectly (they're included in the hitcircle strain count) but because spinners are 0 difficulty anyways there is negligible values impact, so making a better solution would probably be more effort than it's worth.
TopWeightedSliderFactor
may be infinity on maps with no circles. This doesn't have any adverse values effects, becauseestimatedSliderbreaks
is capped atcountMeh + countOk
, but I'm unsure if it's going to cause any other weirdness.This probably wants some form of miss penalty or
effectiveMissCount
adjustment, because currently every affected score is losing.Sliderbreaks may be double dipped, as it uses
effectiveMisscount + estimatedSliderbreaks
, whileeffectiveMissCount
may already contain some estimated sliderbreaks. I'm not really sure of a good way to resolve this, and a little doubtful that resolving it would have any significant effect.