Skip to content
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

Flashlight difficulty rework #28278

Open
wants to merge 24 commits into
base: pp-dev
Choose a base branch
from
Open

Flashlight difficulty rework #28278

wants to merge 24 commits into from

Conversation

molneya
Copy link
Contributor

@molneya molneya commented May 21, 2024

New version of #24124.

This is a combination of many small changes that should make flashlight performance technically more correct.

Spinner bug fix

The most notable nerf in this set of changes, caused by not adding StrainTime during a spinner.

Example maps most affected by this change:

New slider calculation

Before this rework, some of the long sliders on maps such as Notch Hell gave no extra pp despite definitely warranting it. This rework uses a better measure of slider velocity and uses it to scale the slider's difficulty. This is the most notable buff in this set of changes.

Example maps most affected by this change:

Flashlight radius consideration in difficulty

This adds 2 new attributes to OsuDifficultyHitObject: PreviousMaxCombo and CurrentMaxCombo. These are used in the flashlight evaluator to get the current flashlight radius to more accurately calculate visibility of objects.

Flashlight radius consideration in performance

When a player misses, the flashlight radius will increase in size. This rework attempts to estimate how much of the score was spent in each combo radius by using the missing combo from an FC and the effectiveMissCount. Since this is a new nerf to the performance calculator, this will cause non-FCs to lose pp. In the future, removing the combo scaling factor should be considered.

A new length bonus formula to better reflect the flashlight radii was also added. The comparison can be seen here: https://www.desmos.com/calculator/bl984uzivz

Other minor changes

Accuracy changes

FL and HD now have the same accuracy multiplier to prevent rare cases where FL SS scores were worth less than HD SS scores on low difficulties. Also includes a slight buff to HDFL scores.

Slider lazy end consideration

This rework uses the LazyEndPosition for jumps between non-consecutive objects to better reflect actual cursor positions.

Small distance constant changes

Some stream maps were discovered to be slightly overweighted in the current system. Therefore the smallDistNerf and stackNerf constants were changed to penalise them a bit more.

Use DecayWeight again

As flashlight is not a mechanics based skill, it didn't make sense to only consider a small portion of the map for difficulty, so it was changed to consider all strains. This could theoretically mean an infinitely long map could give infinite pp. In the interest of not giving infinite pp and nerf very long maps slightly, DecayWeight was added back with a constant very close to 1. This will still consider all strains but give less pp to those small strains on long maps.

@smoogipoo
Copy link
Contributor

!diffcalc

@smoogipoo smoogipoo requested a review from a team May 21, 2024 15:31
Copy link

github-actions bot commented May 21, 2024

Copy link
Contributor

@apollo-dw apollo-dw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a quick parse to start with.

@smoogipoo
Copy link
Contributor

!diffcalc

Copy link

@smoogipoo smoogipoo changed the base branch from master to pp-dev December 18, 2024 14:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: In Progress
Development

Successfully merging this pull request may close these issues.

6 participants