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

Implement Blinds performance calculation in osu! #14921

Merged
merged 15 commits into from
Oct 8, 2021

Conversation

apollo-dw
Copy link
Contributor

@apollo-dw apollo-dw commented Oct 1, 2021

Pushing on with my quest for lazer mods in difficulty calculation, here's a blinds-related buff for osu!

The important talking points to consider are:

  • As it stands, Blinds completely negates HD-based buffs. I think this is justified since the visual difficulty that Hidden provides becomes unimportant when the circles are never seen.
  • Acc pp and Speed pp get a flat multiplier, whereas Aim gets one that is scaled by multiple factors (buffed by object count, nerfed by miss count & lower accuracy & higher HP drain rates)
  • Yes, nerfed by higher HP drain rates. On a surface level, this seems contradictory, however it's important to note that the playfield is way more likely to be more revealed on higher drain rates.

The desmos link for the aim formula: https://www.desmos.com/calculator/vu1x6r0e4s
Some example values: https://hastebin.com/raw/lesufiyuga

Values were balanced with feedback from ppdev discord, in particular around C-TYPE [Bonsai's BasS-Type] +DT, since that's likely to be the most abusable ranked map with Blinds at the moment. -GN suggested a value of 750pp with BLDT, and I decided to balance around a little lower than that value just to stay on the safe side.

EDIT: After discussing values with MBMasher, I have buffed the effect of Blinds on aim pp. I've updated the links above with these changes.

@peppy
Copy link
Member

peppy commented Oct 1, 2021

How do you have one commit per line of change?

Comment on lines +112 to +114
if (mods.Any(m => m is OsuModBlinds))
aimValue *= 1.3 + (totalHits * (0.0016 / (1 + 2 * countMiss)) * Math.Pow(accuracy, 16)) * (1 - 0.003 * Attributes.DrainRate * Attributes.DrainRate);
else if (mods.Any(h => h is OsuModHidden))
Copy link
Collaborator

Choose a reason for hiding this comment

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

Hidden and Blinds are not actually incompatible in game (although maybe they should be?) but the way these bonuses are set up means that they are mutually exclusive. Was this intentional?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yeah, that's right. In the original comment I said I think it's justified since Blinds essentially displaces the visual difficulty of Hidden.

@bdach bdach requested a review from a team October 2, 2021 16:58
MBmasher
MBmasher previously approved these changes Oct 3, 2021
Copy link
Member

@MBmasher MBmasher left a comment

Choose a reason for hiding this comment

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

Yeah, this is good. Eventually we would look into making a difficulty skill for this (Visual+Memory skills?) however it scales fine as it is.

smoogipoo
smoogipoo previously approved these changes Oct 8, 2021
@smoogipoo smoogipoo merged commit 17e0498 into ppy:master Oct 8, 2021
@apollo-dw apollo-dw deleted the blinds-pp branch October 8, 2021 14:26
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.

5 participants