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

buff default small cs & slow jumps #15481

Closed
wants to merge 13 commits into from

Conversation

GoldenMine0502
Copy link
Contributor

@GoldenMine0502 GoldenMine0502 commented Nov 5, 2021

one of patch of https://docs.google.com/document/d/14REVGc-2Ubg5f6MHaITKLOY3HarZuL-ozU5Ow6ng2ig/edit

Changing the aim calculation algorithm (Aim.cs)
screenshot021
As you know, we are using the code calculating jump, Distance / StrainTime.
So, The two jump patterns have same value.

In fact, I think the yellow pattern is harder because we should locate the aim more longer.

for example, 4* dt map https://osu.ppy.sh/beatmapsets/338293#osu/753445 gives 372pp with SS.
6* none map https://osu.ppy.sh/beatmapsets/863227#osu/1805627 gives 380pp with SS. (same pp)
I think 6* none is more harder.

In the current ppv2 system, no matter how far the distance between notes is, if strainTime is long, they are regarded as a short jump.

But from now on, if the distance is far between the notes regardless of strainTime, they are given a bonus.

166ms means almost 90bpm(180bpm) jump.

In code, the original calculation result is slightly reduced,
and the static jump calculation is divided by 166ms.

plus, i changed the scalingfactor to give default small cs bonus. Mainly cs7+, It is underprevilieged i think.

As a result, it buffs HR.

https://www.desmos.com/calculator/vrjxscpa91 (old)
result scalingfactor graph
x-axis means CS
y-axis means ScalingFactor

before = red line
after = blue line
캡처_2021_11_27_02_21_35_423

https://www.desmos.com/calculator/hc3ffb1koe
result static jump calculation graph
x-axis means BPM
y-axis means aimStrain when distance in px = 200.

before = green line
after = red line
difference = purple line
캡처_2021_11_27_02_20_32_122

overall nerfed

JumpPlayers.txt

overall buffed

HRPlayers.txt

@GoldenMine0502 GoldenMine0502 changed the title buff default small cs buff default small cs & slow jumps Nov 5, 2021
Copy link
Member

@stanriders stanriders left a comment

Choose a reason for hiding this comment

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

Reasoning behind these changes seems incorrect to me. Your screenshot does indeed show movements with the same difficulty.
Overall this is a purely "meta change" instead of difficulty calculation improvement, which I think are considered a bad way forward. You're skewing the algorithm towards kinds of maps you think deserve more pp without actually improving parts of difficulty calculation that make those maps underrated. This also lacks any testing or balancing or even low-mid player level consideration - HR is already meta there.

@@ -109,7 +109,7 @@ private double computeAimValue()

double approachRateFactor = 0.0;
if (Attributes.ApproachRate > 10.33)
approachRateFactor = Attributes.ApproachRate - 10.33;
approachRateFactor = (Attributes.ApproachRate - 10.33) / 1.5;
Copy link
Member

Choose a reason for hiding this comment

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

Why? How lowering high AR bonus supposed to buff slow jumps?

Copy link
Contributor

@Wieku Wieku Nov 24, 2021

Choose a reason for hiding this comment

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

@stanriders as always they start from pretty old base with conflicts. Current value is

double approachRateFactor = 0.0;
if (Attributes.ApproachRate > 10.33)
approachRateFactor = 0.3 * (Attributes.ApproachRate - 10.33);

both for aim and speed, so they indeed buffed it

Copy link
Contributor Author

@GoldenMine0502 GoldenMine0502 Nov 25, 2021

Choose a reason for hiding this comment

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

i should apply newer value. please wait a minute.

the reason why i nerfed high AR is to remain HDDTHR similarly, buff HR to pow scaling factor.
we have a lot of top performance of HDDTHR records. so i think we should remain HDDTHR records result.

{
float smallCircleBonus = Math.Min(30 - (float)BaseObject.Radius, 5) / 50;
float smallCircleBonus = Math.Min(35 - (float)BaseObject.Radius, 0) / 40;
Copy link
Member

Choose a reason for hiding this comment

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

You give bonus for small circles staring from cs ~4.2. Current bonus starts from cs ~5.5 which makes more sense to me.

Copy link
Contributor Author

@GoldenMine0502 GoldenMine0502 Nov 25, 2021

Choose a reason for hiding this comment

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

it makes scalingFactor according to CS has continuity.

note)Radius = 64 * ((1.0 - 0.7 * (CS - 5) / 5) / 2)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

note) and same 54.4-4.48*cs

Copy link
Contributor Author

@GoldenMine0502 GoldenMine0502 Nov 25, 2021

Choose a reason for hiding this comment

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

Copy link
Contributor Author

Choose a reason for hiding this comment

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

and in my feel, we should buff from 4.2 to 5.4.

Copy link
Contributor Author

@GoldenMine0502 GoldenMine0502 Nov 26, 2021

Choose a reason for hiding this comment

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

something strange need to change, min not max

@@ -29,6 +29,16 @@ public Aim(Mod[] mods)
private double skillMultiplier => 23.25;
private double strainDecayBase => 0.15;

private double calculateDefaultVelocity(double distance, double strainTime)
Copy link
Member

Choose a reason for hiding this comment

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

Why are you buffing velocity below 90 bpm and nerfing everything above? If you think velocity isn't being calculated correctly it shouldn't be changed here, it should be changed in the difficulty object processing

Copy link
Contributor Author

Choose a reason for hiding this comment

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

in OsuDifficultyHitObject, we should calculate it stupidly like
MovementDistance = calculateDefaultVelocity(MovementDistance, MovementTime) * MovementTime;

in conversation, it is.
In fact, I think the yellow pattern is harder because we should locate the aim more longer.
imagine insane HDDT farming maps and 180bpm 6* None farming maps. (the two type of maps give same pp)

@apollo-dw
Copy link
Contributor

I completely disagree that the yellow pattern is harder. Furthermore, there is statistics works and experimental data that prove that the deviation of a hit spread on an object (which can be used to model difficulty) scales linearly with the velocity of a jump, which implies that the 2 patterns you posted in fact should have the same difficulty assuming both have the same velocity, see https://docs.google.com/document/d/1pXNl9sduYkQ_vXbO4v8SMM6uBk-zX8tHfDvB9kgX9dg/edit#

@GoldenMine0502
Copy link
Contributor Author

GoldenMine0502 commented Nov 25, 2021

I completely disagree that the yellow pattern is harder.

give me logical reason. i said why the yellow pattern is harder.
6* jump map versus 4* dt jump map

on high bpm, short jump is also hard, so i applied the value limited to long, slow jump.

experimental data that prove that the deviation of a hit spread on an object

honestly, the biggest problem is there's no code or formula. so i can't say anything about it.

when a player get more greater aim skill, the standard deviation is decreased although the distance is longer.
for example, when playing easy map(example 1* or 2*), expert player has low standard deviation but newbie player has high standard deviation.

to prove your work, we need to compare same map with 1 digits jump player and 3 digits jump player, and we should get there's no deviation difference between them.

and i can't understand the difference between the standard deviation and simple linear function.
stat

last, applying statistical value on not statistical factor is too hard to code.

@stanriders
Copy link
Member

stanriders commented Nov 26, 2021

give me logical reason

It has been statistically proven by collecting replay data on test map by multiple people.

6* jump map versus 4* dt jump map

This is incredibly biased and also makes little sense. In my opinion both types of maps are relatively the same (assuming we're talking about the same mapping style on both ofc)

the biggest problem is there's no code or formula

There is, it's all in the linked docs

The rest I'm not too sure what supposed to mean, except the "graph" though - you pretty much proven yourself that relation is linear.

@GoldenMine0502
Copy link
Contributor Author

GoldenMine0502 commented Nov 26, 2021

It has been statistically proven by collecting replay data on test map by multiple people.

it's not for the statistical thing. you got wrong point.

and i said, "The better aim skill, The smaller the deviation.".

we should compare expert player and newbie player at same map to prove.

"when a player get more greater aim skill, the standard deviation is decreased although the distance is longer.
for example, when playing easy map(example 1* or 2*), expert player has low standard deviation but newbie player has high standard deviation.

to prove your work, we need to compare same map with 1 digits jump player and 3 digits jump player, and we should get there's no deviation difference between them."

This is incredibly biased and also makes little sense. In my opinion both types of maps are relatively the same (assuming we're talking about the same mapping style on both ofc)

for example, 4* dt map https://osu.ppy.sh/beatmapsets/338293#osu/753445 gives 372pp with SS.
6* none map https://osu.ppy.sh/beatmapsets/863227#osu/1805627 gives 380pp with SS. (same pp)

do you really think 4* dt map is harder or same? i definitely no.

There is, it's all in the linked docs

really i can't find anything except osu-aim-tool. idk. where is pp calculation?

The rest I'm not too sure what supposed to mean, except the "graph" though - you pretty much proven yourself that relation is linear.

i said the statistical thing is wrong before. why should i prove already wrong thing?

@bdach
Copy link
Collaborator

bdach commented Nov 26, 2021

@GoldenMine0502 Please keep caps lock and bold font off. There is no reason to get heated.

I, for one, cannot logically follow the argument you are trying to make. It's possibly because things are getting lost in translation, so let me ask some questions.

when a player get more greater aim skill, the standard deviation is decreased although the distance is longer.

The standard deviation of what, precisely?

to prove your work, we need to compare same map with 1 digits jump player and 3 digits jump player, and we should get there's no deviation difference between them.

Even if this is true, how does this relate to buffing slow jumps?

and i can't understand the difference between the standard deviation and simple linear function.

I don't understand the point the picture there is trying to make. What is the squiggly line? What is the straight line?

@GoldenMine0502
Copy link
Contributor Author

GoldenMine0502 commented Nov 26, 2021

The standard deviation of what, precisely?

to prove your work, we need to compare same map with 1 digits jump player and 3 digits jump player, and we should get there's no deviation difference between them.

and i can't understand the difference between the standard deviation and simple linear function.

this is not direct related to my pr. its from the docs, https://docs.google.com/document/d/1pXNl9sduYkQ_vXbO4v8SMM6uBk-zX8tHfDvB9kgX9dg/edit#

@bdach
Copy link
Collaborator

bdach commented Nov 26, 2021

I don't think it's unrelated if the document in question is being quoted as directly contradicting the changes in this pull request, which as I understand, it is being quoted as such.

@GoldenMine0502
Copy link
Contributor Author

GoldenMine0502 commented Nov 26, 2021

overall nerfed

JumpPlayers.txt

overall buffed

HRPlayers.txt

I think it works.
We could nerf lengthbonus to prevent buff stream

@stanriders
Copy link
Member

we should compare expert player and newbie player at same map to prove.

That's what the research does. Data came from a range of players from 3 digits to 6 digits, all running the same test maps.

Maps you linked are very different in structure and difficulty, so comparing them isn't valid.

really i can't find anything except osu-aim-tool. idk. where is pp calculation?

Pp calculation is the end result of the research that will eventually come, but isnt required for the research to be valid. There are formulas in the docs though, not sure how you missed them.

If you really want to see it in the code form you can frost's repository in the pp dev discord, it's pinned in the related channel.

@abraker95
Copy link

abraker95 commented Nov 26, 2021

we should compare expert player and newbie player at same map to prove.

That's what the research does. Data came from a range of players from 3 digits to 6 digits, all running the same test maps.

Just to clarify. While the doc examines data from a single player, data collected from other players demonstrate that the linearity still holds. Data from all players is made available in this spreadsheet. Those files can be loaded either via the aim tool found here or examined via the numpy python library.

@smoogipoo
Copy link
Contributor

Closing due to inactivity to lessen the PR burden. Please discuss future changes in the PP discord. @ppy/performance-points-committee poke me if this is an incorrect closure and the change is good-to-go.

@smoogipoo smoogipoo closed this Apr 13, 2022
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.

8 participants