Overall future direction for calculating pp #16122
Replies: 2 comments 5 replies
-
How much do you want to share between Speed and Aim? For example, could this be handled by ordering the skills such that I think we can't have BPM is probably a bad example because it isn't a complex calculation, but one other thing to consider is extracting that calculation to an object which is common to both. For example let's suppose that BPM was hard to calculate, I would rather extract that into a helper class like |
Beta Was this translation helpful? Give feedback.
-
so old. i close this |
Beta Was this translation helpful? Give feedback.
-
Existing structure is not great
A comment of another player:
In the current pp system, we measure 'aim,' 'speed,' 'acc,' and 'flashlight' independently, and the problem arises here; the parts where 'aim' and 'speed' are mixed at a considerable level together, cannot be properly measured. (i.g. tech parts)
We can think of A and B maps. A map has hard jumps in the front part and hard streams in the last part. The jumps and streams of the B map themselves are a little easier than the ones of the A map, but they appear simultaneously. So the overall difficulty we feel in the B map would be higher than the one in the A map.
The point is, in the current system, the measured difficulty of the A map could be similar to what we feel, but the one of the B map would be much lower level to what we feel. We can't consider the synergistic effect that increases the actual difficulty when two ( or more ) elements are mixed now. I want to say this is because the 'aim' and 'speed' are measured independently. When relatively measured, we can alleviate this to some extent.
Because all skills (including unimplemented) have systematic relations.
How do you think about 150bpm notes? is it jump? or stream?
We couldn't answer this problem in detail definitely.
For example,
Speedy jump patterns exist. (400bpm jump)
Patterns which contain half speed and half jump exist. (i.g. alternative)
But we couldn't calculate those precisely.
As a result, we should rely on graph, and establish standard for calculating which patterns give same pp/strain/difficulty.
For example,
We choose distances giving same pp on specific bpm.
like when bpm is 100, 100px,
when bpm is 110...
bpm is 120..
130..
140..
when bpm is 150, 40px,
...
when bpm is 200, 20px... etc
After these, we could establish final graph fit to (distance/strainTime) multiplier. (simplified explanation but i believe you understand)
this will be our main work we should do for calculating aim precisely.
In this situation, speed should calculate only speedy thing (not use distance). because fast bpm stacked notes are hard.
and We will combine aim and speed.
This is result direction. I will show you that we could buff tech easily if you accept.
I agree my refactoring is not perfect
(about #15485)
idk how osuteam think.
Aim and Speed classes have been being bigger. The classes now have a lot of lines.
In future, We will meet cases applying to both Aim and Speed.
We will meet cases to calculate small total strain (for example, calculating only slider strain or angle variance strain below).
or you may find other complex thing.
So I think we should separate big code to small to work easily.
I contain ProcessInternal() on Aim and Speed class. i think its not good solution. agreed.
But we have a lot of new solution. maybe osuteam know. if you dont know, i will introduce about it.
Why we should have new class
In my PR, to get previous specific skill strain per note, i used new class.
Why?
I should calculate "frequency" which gives ours how hard patterns arise.
I give straindecaybase big multiplier, and calculating value small multiplier.
For example, just one note from acute to obtuse isn't too hard. (angle variance)
But patterns changing acute and obtuse frequently are really hard.
Next pattern is hard because of this.
https://osu.ppy.sh/beatmapsets/1357624#osu/2809623
https://osu.ppy.sh/beatmapsets/405011#osu/880496
in this context, We could apply this to same paragraph, slider variance.
changing slider velocity frequently is really hard.
last opinion
i have a lot of idea for calculating tech.
but because i cant be sure these changes will apply at least one... so I don't have courage to write next thing.
Beta Was this translation helpful? Give feedback.
All reactions