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

Reduce pp awarded for short beatmaps #14

Closed
wants to merge 14 commits into from

Conversation

MillhioreF
Copy link
Contributor

@MillhioreF MillhioreF commented Mar 8, 2018

Less than 500 objects gets penalized vs current system.

Since some people don't understand the thresholds, this is how it compares to the existing system:

Less than 500 objects gets penalized.
@Remyria
Copy link

Remyria commented Mar 8, 2018

I hope it would be linear and the "potential pp" for same SR but different amount of circles would go like 500>499>284>120>71 and not 500>499=284=120=71

@Xinnoh
Copy link

Xinnoh commented Mar 8, 2018

It's not really threshold based. The code looks like <If over 500 objects give bonus>, but they're just used as an arbitrary value to accelerate the change. The go to chart for what this means:
https://user-images.githubusercontent.com/30382015/37148944-2c20339e-2307-11e8-83e1-33c57858c5f1.png

@peppy
Copy link
Sponsor Member

peppy commented Mar 8, 2018

Since this is getting visibility from many places, here's how this is going to work:

As I stated here, I will be setting up a deployable testbed which covers both SR and PP modifications, hopefully in a way we can easily understand.

I'm not going to spend a huge amount of time on it (plan to have something done over the weekend), but at very least it should allow anyone interested to have access to a deployable test setup where algorithm can be applied, producing comparisons of how the changes affect map star rating and player rankings of the top x,000 players.

Once we have an idea of how this looks, we will iterate on constants before deploying anywhere.

If you're interested in helping out (or just following along) please join us on the dev discord. Note that this is a serious forum for focused discussion only.

@ghost
Copy link

ghost commented Mar 8, 2018

Truly a good start. And listen to Francesco's opinion plz.

image

Copy link

@Zapffe Zapffe left a comment

Choose a reason for hiding this comment

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

There are missing closing parentheses and else clauses in lines 107, 108, 170, 171

@SnoWFLakE0s
Copy link

Coming from a normal player, I do think that the note density idea will be most plausible, but then mappers can then add more triples/streams/droplets to make the note density higher. I also think it might be better to base the calculations on a bigger set of reference data (i.e. use global average note density to determine a certain level of "difficulty") or would that be too difficult?

@CrypticStorm
Copy link

If this change is going to be implemented, I think the lengthBonus being applied again for Flashlight needs to be adjusted as well. See https://github.com/MillhioreF/osu-performance/blob/8e7170f2521fa895e73b958a73a85be220e348a9/Src/Processor/Standard/StandardScore.cpp#L153 where the Flashlight bonus pp scales the aim value by lengthBonus * 1.45. For a starting value of 0.95 this isn't an issue as the bonus starts above 1.0 but at 0.55 the bonus is actually less than zero until 137 objects if my math is correct. Not sure exactly how this should be adjusted, maybe just maximize the multiplier to 1 after being multiplied by 1.45?

@MillhioreF
Copy link
Contributor Author

Good catch, fixed.

@Toasterly
Copy link

Heyo, normal player here; First of all I'm not a PP farmer in any way, probably the furthest from one that is possible. In my opinion changing the entire system due to the original giving too much PP for certain things isn't the type of thing that a game like Osu! should do. If the system has been based like this for some time, and I'm assuming it has, why change it now when so many people have spent sometimes even hours on these maps to FC them, to randomly waking up one morning and seeing their top PP play being worth a lot less PP than they originally got. The Touchscreen nerf was a special case, not one I agree with as I see it as shutting one out due to their playstyle, like giving a buff to trackpad players because trackpad is harder to use than mouse and tablet, but that's besides the point. I don't know if its an issue with morals or something like that, but with a game like this, I don't think changing an entire way of scoring the game under people's noses without properly shouting this type of thing out to get mass amounts of feedback about it is not the best thing to do. A lot of people would be angry with this, and a lot of people would be happy with this. But the question I have now is why change this after so much time of having it one way. I believe the people who decide what maps get ranked should be capable enough of not letting maps such as these get ranked in the first place, not having the dev team change something that would generally piss off the community more than bring it together.

@destroyerwilly
Copy link

Just some quick suggestions and opinions that i think may help:
Looking at the graph above, it appears that once we get to 500 it levels out to the same as the old version, in my opinion, I think that the increase for consistency on longer maps should be a little higher, i feel like we should have better incentive for players to do longer maps, the line should be linear after the 500 mark and should have a slightly higher coefficient than it is right now.

@willyosu
Copy link

willyosu commented Mar 8, 2018

@ToastersPlease osu! itself has gone through two whole different ranking systems before (score and ppv1) because the ultimate goal of rankings in any game is to represent all players' ability/skill compared to each other. The ranking system is and has always meant to be ever-changing to keep everything fair, but we've just fallen behind recently without Tom here to help develop further iterations. People have spent many hours playing the game in the current performance system, but what is really the point if they are earning undeserved points that go against the whole idea of a ranking system in the first place. A lot of people would be angry you say, but would they be angry about the integrity of the game's ranking really, or just that they lost some of their pp. Changing the ranking system has happened multiple times and I believe that each time was for the better (getting closer to a more accurate ranking), so now is a better time than any to try and sit down and have a real discussion about a better ranking system.

@Francesco149
Copy link

should this really affect the FL bonus at all? even though you cap it so it doesn't go below 1, it's still kinda like nerfing the map twice for fl scores

@MillhioreF
Copy link
Contributor Author

I think that's actually a good thing since flashlight was already super overweighted on maps with less than 200 combo (see: bill nye)
The 250-500 combo range probably shouldn't be nerfed, but that's a bit trickier to figure out.

f32 LengthBonus = 0.55f + 0.4f * std::min(1.0f, static_cast<f32>(amountTotalHits) / 250.0f) +
(amountTotalHits > 250 ? 0.1f * std::min(1.0f, static_cast<f32>(amountTotalHits - 250) / 250.0f) +
(amountTotalHits > 500 ? 0.3f * std::min(1.0f, static_cast<f32>(amountTotalHits - 500) / 1500.0f) +
(amountTotalHits > 2000 ? log10(static_cast<f32>(amountTotalHits) / 2000.0f) * 0.5f : 0.0f);

This comment was marked as off-topic.

@peppy peppy added the proposal label May 10, 2018
@peppy peppy changed the title Short map nerf test Nerf pp awarded for short beatmaps May 10, 2018
@peppy peppy changed the title Nerf pp awarded for short beatmaps Reduce pp awarded for short beatmaps May 10, 2018
@peppy
Copy link
Sponsor Member

peppy commented Jul 24, 2018

In discussions today with some players, a proposal was made to reduce the reduction/nerf here based on the original SR of the beatmap. ie. there should not be a reduction for lower star difficulties, to reduce the negative effect that may be felt on lower skill level players.

@Silomaromare
Copy link

This thing should scale with SR in general, not only in terms of reduction. Say a 2* map should get the nerf on less than 200 objects, and a 7* map on less than 700 objects.

This won't demotivate new players to play, since low SR maps barely have more than 200 objects, and high rank players should be able to FC maps longer than 500.

Obviously the numbers "100 objects per one Star" can be adjusted, but something around 100 sounds good to me.

@MillhioreF
Copy link
Contributor Author

Made some changes here based on feedback.

  • Scaling from 0 to 500 is now exponential instead of piecewise linear to avoid arbitrary award jumps
  • Low star rating maps are less affected and need less objects to return to the old scaling (currently reaches full harshness at 5 stars)

@NoMoreDiv
Copy link

Apologies in advance if this is a bit of a ramble, was the first revision of me throwing ideas at paper.

Anyway;

Before we agree that this is a good change, let’s try to understand how skill (the thing we are trying to measure with PP) works.

In a broad form, skill can be split up into two main types; skill ceiling, and consistent skill.

Skill ceiling is the absolute highest amount of skill you can reach, for the shortest possible time.
In osu! your skill ceiling would be you hitting a pattern that would take you thousands of attempts to nail, but eventually, you would get it.

Consistent skill in relation to osu! would be the patterns that fit inside your 95% FC comfort range.

By targeting only short maps, we are assuming that the skill ceiling required to FC, is lower than that required for a longer map of the same star rating. However a 30 second long map with a 5* difficulty for the entire duration, will be more difficult than a 2 minute map with only 10 seconds of 5* difficulty, although the maps will be similar overall star rating, due to the difficulty spike in the longer map.

Currently osu! already calculates strains in 400ms chunks.
My proposal is that we use these strain chunks to calculate for aggregate difficulty. Much like how UR emits outliers in hit timing to calculate an average; this system would not so much emit, but weigh more lightly, outlier strains, toward a more average map difficulty – or rather an effective map difficulty.
Note: outliers below and above an average would not be weighted the same as each other, a spike is still harder to play than a lull.

By applying a length bonus on top of this change for nerves etc., we would see rewarded performance points decrease for maps with large spikes, and maps with consistent difficulty would stay similar to what they are worth now, or even become worth more.

@Francesco149
Copy link

@NoMoreDiv it's a solid idea, but you might wanna first try playing with the weight decay and making it less harsh instead of switching to a flat average, which might nerf diff spikes a bit too hard.

atm I'm not up to the task of running tests but my suggestion is to take the current top pp scores and run them through these tweaks, make spreadsheets, compare and see which represents difficulty better

@NoMoreDiv
Copy link

@Francesco149 Unfortunately I don't have the knowledge to create something physical, just putting the concept out there. I would be more than happy to sit along side someone to do it to make sure the points are covered however.

@MillhioreF
Copy link
Contributor Author

Closing this for now - there's some promising work being done in #osu-performance which will render this change obsolete should it work out.

@MillhioreF MillhioreF closed this Oct 7, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet