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

Spike difficulty / AR&FL adjustments #13483

Merged
merged 11 commits into from
Jul 22, 2021
Merged

Spike difficulty / AR&FL adjustments #13483

merged 11 commits into from
Jul 22, 2021

Conversation

emu1337
Copy link
Member

@emu1337 emu1337 commented Jun 13, 2021

Greetings! These changes are meant to alleviate some of the issues with the current pp system until a rework is ready to be implemented.

Difficulty spikes

Nearly all maps rated too high in the current system have a similar distribution of difficulty.

Examples (difficulty sections in descending order):
maps with diffspikes
diffspikes
compared to maps without any major diffspikes
no diffspikes

In the case of overrated maps, the peak difficulty only accounts for about 1 to 4 seconds of the map. This is problematic because players can sometimes 'get lucky' and perform patterns above their skill level, meaning that maps without such difficulty spikes will always lose to maps without them, despite requiring roughly the same level of skill.

We can apply a reduction to the peak difficulty values to bring problematic maps more in line.

    List<double> strains = GetCurrentStrainPeaks().OrderByDescending(d => d).ToList();

    // We are reducing the highest strains first to account for extreme difficulty spikes
    for (int i = 0; i < ReducedSectionCount; i++)
    {
        strains[i] *= ReducedStrainBaseline + Math.Log10(i * 9.0 / ReducedSectionCount + 1) * (1.0 - ReducedStrainBaseline);
    }

AR bonus & FL bonus / Wide angle jumps

One score in particular highlighted some minor issues in the system.

Currently all the visual bonuses are applied multiplicatively, however flashlight and approach rates interact in a way that doesn't justify such a large bonus.
The proposed solution is to take the larger bonus of the two, since flashlight replaces much of the difficulty of certain approach rates instead of adding to it.

    aimValue *= Math.Max(flashlightBonus, approachRateFactor);

There have been a couple of instances where wide angle jumps were observed to inflate the aim rating a bit too much, it is safe to say the bonus was slightly overtuned at implementation.
Proposed a slight nerf.

    var angleBonus = Math.Sqrt(
        Math.Max(osuPrevious.JumpDistance - scale, 0)
        * Math.Pow(Math.Sin(osuCurrent.Angle.Value - angle_bonus_begin), 2)
        * Math.Max(osuCurrent.JumpDistance - scale, 0));
    result = 1.4 * applyDiminishingExp(Math.Max(0, angleBonus)) / Math.Max(timing_threshold, osuPrevious.StrainTime);

@peppy peppy changed the title pp balance changes Spike difficulty / AR&FL adjustments Jun 14, 2021
bdach
bdach previously requested changes Jun 15, 2021
Copy link
Collaborator

@bdach bdach left a comment

Choose a reason for hiding this comment

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

Aside from the below review, there are a few code style infractions to be fixed. You can see them for yourself by running ./InspectCode.ps1 (or .sh if on Linux/macOS), which is located at the root directory of this repository.

osu.Game.Rulesets.Osu/Difficulty/Skills/OsuStrainSkill.cs Outdated Show resolved Hide resolved
osu.Game.Rulesets.Osu/Difficulty/Skills/OsuStrainSkill.cs Outdated Show resolved Hide resolved
@smoogipoo
Copy link
Contributor

smoogipoo commented Jun 16, 2021

Fyi I've deployed an osu!web build (using data from 2021-07-01): https://emu1337.smgi.me
Relevant osu-performance changes here: https://github.com/smoogipoo/osu-performance/tree/emu1337-diffspike-balance

@emu1337 emu1337 requested a review from bdach June 17, 2021 19:43
@bdach
Copy link
Collaborator

bdach commented Jun 18, 2021

The osu! SR value test was not updated; I've gone ahead and updated it myself - the values all decreased which is consistent with expectations as this change will be a universal SR nerf.

Other than that I have no other issues with the code as-is. I'm not sure I can speak about balance too much as I don't feel like I have the credentials to do so but the rationale makes sense at face value.

@bdach bdach dismissed their stale review June 18, 2021 11:01

all resolved

@smoogipoo
Copy link
Contributor

Just to list my status on this - I'm waiting for the next set of data to come out on July 1st, after which I want to grab more community feedback by posting to Twitter/etc.

@smoogipoo
Copy link
Contributor

Wanna resolve the conflicts on this one? The AR bonus was changed in #13826

@smoogipoo
Copy link
Contributor

smoogipoo commented Jul 22, 2021

On top of the above deploy, here's a spreadsheet of the top 2000 changed scores: https://docs.google.com/spreadsheets/d/1XFEnUVoPBxKZGR6mlhVe0231K9YGqLakCi3Ve18dWgE/edit?usp=sharing
Note: Differences in "old_pp" vs live are due to live pp being wrong.

It looks pretty reasonable to me - the top changed scores are all very short maps, which lend themselves much more to being spikey as described.
The other top changed score on /b/1919312 is an FL score which is also touched upon by the description.

I think this is good to go. @peppy I'll leave this in your capable hands. Note that this is both an SR and PP change. The osu-performance change has been ported here: ppy/osu-performance#137

Disclaimers because this post/sheet is being linked around:

@peppy
Copy link
Member

peppy commented Jul 22, 2021

Let's do it. I'll begin to deploy as bandwidth becomes available to me.

Note that we'll want a news article written up for all the new changes which are going to be applied (including the ones you explained in https://ptb.discord.com/channels/188630481301012481/380598781432823815/867705837178322995). Not sure who is capable/willing to do that.

@peppy peppy merged commit cde8ae6 into ppy:master Jul 22, 2021
@bdach
Copy link
Collaborator

bdach commented Jul 22, 2021

I'd be willing to do a write-up given I've been involved with previous ones already.

@Ephemeralis
Copy link
Member

@bdach If you want to do a full write-up and toss it my way, I'm happy to use it as the basis for a newspost as per last time!

@pianodude1011
Copy link

Where can I make comments/suggestions about the changes being made? As an AR11 FL player who talks with better AR11 FL players than myself, there are quite a few that are not very happy with the FL changes being made and I'd like to make a few suggestions.

@mk56-spn
Copy link
Contributor

mk56-spn commented Jul 23, 2021

The difficulty - osu! channel in the OSU ! Dev server (https://discord.gg/ppy) and the onion channel in the pp server might be good places to start

@peppy
Copy link
Member

peppy commented Jul 23, 2021

If you intend to offer feedback in the hope it will be taken on board before things go live, please ONLY use the official development discord. No one involved with the decision making progress from the team frequents community discords and we will not see discussion if you take it elsewhere.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants