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

osu! Standard Aim Rework for tech, none, HR #15323

Closed
wants to merge 46 commits into from

Conversation

GoldenMine0502
Copy link
Contributor

@GoldenMine0502 GoldenMine0502 commented Oct 27, 2021

https://docs.google.com/document/d/14REVGc-2Ubg5f6MHaITKLOY3HarZuL-ozU5Ow6ng2ig/edit
please check the above docs(its latest). I writed all of things about this rework.

I’m sorry for using translator some parts. My english is not so good ;-;

** all of specific value and weight is not fit perfectly **
yeah, we should test a lot now.
maybe we should do linear regression… we should consider a lot of factors from now on.

Past PR at #14863

Nerfing non-spaced streams
i nerfed short fast stream because it is easier to do doubletap.
although it is not best(ideal) solution, this nerfs some dt farming maps and doubletap maps.

Current PR at #15323

Changing the aim calculation algorithm (Aim.cs)
screenshot020

As you know, we are using the code calculating jump, Distance / StrainTime.
So, The two jump patterns have same value.

Why?

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

Basically, the reason hard rock farming is difficult is that you couldn’t get the AR bonus that is applied only when you put double time. We are only able to take the bonus that I could take on average by 20% only in DT.

I wanted to theoretically establish the difficulty multiplier as the circle gets smaller (I originally thought about the square), but the pp result was not good, so I temporarily applied ^1.15.

This basically completed the buff for the small CS, so the high AR buff is no longer needed. HRDT farrming remains similar, but Hard Rock can be greatly buffed.

In the current ppv2 system, no matter how far the distance between notes is, if the time difference (strainTime, term) between notes is large, it is regarded as a short jump.
But from now on, if the distance between the notes is far, it is designed to give a certain amount of bonus.

Overall, this patch will have buffs in all modes except Double Time.

To briefly summarize the algorithm, the term between all notes is fixed at 320ms, and then the distance is set and a bonus is given. osuCurrent.StrainTime in the source code means the actual inter-note term, and the original calculation result is slightly reduced and fixed to 320ms, and the calculated result is added so that there is no problem in the overall pp calculation.

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

In conclusion, the problem of being considered a wide jump due to a short term even if the distance is short has been resolved to some extent.

New Structure for Past-Calculation(a lot of files)
I created PrePerNoteStrainSkill, calculating before skill like Aim, Speed….
I want to put values for “variancing factor”.

this OOP structure sucks but it will work maybe.

I give you two pattern types like this:
imagine the notes are 150bpm term.
screenshot018
screenshot019
when the bpm is high, the latter pattern is more harder. because we should consider tap as well as aim flow.

So angleVariance comes to mind. This is to give a bonus to the pattern as the angle changes a lot as above.

The slider speed change buff is also in the same paragraph. If the slider speed goes up and down over and over again, the player will inevitably get tired.

I'm not sure if this is a very good direction for OOP structure, but we have prepared preSkills for 4 modes. It will be a good helper in applying the above case to other mods in the future.

i give a bonus when the angle is changed frequently.
Math.Sin(Math.Max(Math.Abs(angle - lastAngle) - Math.PI / 2, 0)) * 0.1

and default acute, obtuse bonuses
0.01 * Math.Max(Math.Sin(osuCurrent.Angle.Value - angle_bonus_begin), 0);
Math.Sin(Math.Max((Math.PI / 2 - angle), 0)) * Math.Min((deltaTimeToBpm - 150), 50) / 50 * 0.1

for influancing more far notes, i give decaybase a lot.
protected override double StrainDecayBase => 0.75;

and I multiplied it on final aim value result.

sliderBonus is only affecting on travelDistance.but we maybe apply even jumpDistance.

Angle Variance Bonus(NoteVarianceAngle.cs)
screenshot016

for example, this pattern has a lot of angle variance.
to buff this notes overall, i should do Past-Calculation. check NoteVarianceAngle.cs.

I did same code on NoteVarianceSliderVelocity.cs.
cuz changing sv a lot in short time is hard.

Slider Bonus(NoteVarianceSliderVelocity.cs)
most pp maps uses sv up to 0.5.
so, if a map uses sv 0.5 or higher, the slider will get a lot of bonus.

Finger Control Bonus(NoteVarianceFingerControl.cs)
calculates the percentage of alternative.
when bpm is 150, it gives 0.
when bpm is 200, 1.
as a result, when bpm is 200, we consider the note has 100% of percentage of alternative.

among the three bonuses, the patch makes https://osu.ppy.sh/beatmapsets/1357624#osu/2809623 almost 1000pp.
https://osu.ppy.sh/beatmapsets/855677#osu/1787848 almost 1100pp.

Small CS buff (OsuDifficultyObject.cs)
to make hard rock-related farming easier.
In addition, it is also a correction for the next High AR nerf.
Maps with cs 7 or higher receive a major buff through the current patch.

High AR nerf (OsuPerformanceCalculator.cs)
only DT mods could get this high AR bonus.
so this makes DT farming easier.
I nerfed this to farm HR easier, DT harder.

Nerf lengthBonus (OsuPerformanceCalculator.cs)
we already buffed stream, so we could nerf this.

I think the lengthbonus is not good value. because it couldn’t consider how many harder parts contain on the map.
in ideal patch, the lengthbonus should be removed i think.

this patch is approached slightly on the ideal.
so i nerfed the lengthbonus.

same paragraph, i think the speed value would be merged to the aim value to buff alternative.

@bdach
Copy link
Collaborator

bdach commented Oct 27, 2021

  • There are conflicts with master here already.
  • What's the status of your previous PR? (nerfing fast non-spaced(overlapped) streams #14863)
  • This really needs a more detailed description than what you gave. With rationale as to why each change was made, preferably.

@bdach bdach added the missing details Can't move forward without more details from the reporter label Oct 27, 2021
@GoldenMine0502
Copy link
Contributor Author

could you give me any examples? i posted why/how i changed the code on the docs

@bdach
Copy link
Collaborator

bdach commented Oct 27, 2021

Well there were decisions made here about what to buff and what to nerf. What was the thought process behind nerfing or buffing something? What were the adjustments to nerf or buff something based on? Do they fit with the community feedback from the last survey? I'd expect that information to be there in the doc. As is it mostly states what was done and not why.

@GoldenMine0502
Copy link
Contributor Author

oh i see. i will check and post all of things containing past pr as soon as.

@GoldenMine0502 GoldenMine0502 changed the title Buffing except DT and Nerfing DT osu! Standard Aim Reworks for tech, none, HR Oct 29, 2021
@GoldenMine0502 GoldenMine0502 changed the title osu! Standard Aim Reworks for tech, none, HR osu! Standard Aim Rework for tech, none, HR Oct 29, 2021
@GoldenMine0502
Copy link
Contributor Author

this is now also up to date.

@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
Labels
area:difficulty missing details Can't move forward without more details from the reporter ruleset/osu! size/XL
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants