-
-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
Replace lazer scoring with "ScoreV2" #23638
Conversation
Introduces some error at all times, but if we're to store scores everywhere as `long`, then the same precision should be applied to the "during gameplay" path as well.
For the decision to accept to go with something that is not "recalculatable", I think this is a good decision if you indeed do not want to store all combos and their associated judgment counts. I'm glad your going in that direction. However, I hope that the "familiarity" argument will not be used against suggestions of future changes/improvements to the formula. And more importantly, there's two things which I think are mistaken:
I think this is a huge mistake. A formula that is best for tournaments is also best for solo play (the reverse might not be true), and it would be simpler to have the same formula everywhere for most things in the future. The use of custom formulas should only be needed for tournaments that want to have original rule-sets (e.g., combo-only tournaments).
It doesn't make sense to say that when the scoring implemented in the fork is not more complex than score v2. So overall, compared to v2, saying that it "adds a lot of complexity" seems totally exaggerated. The only real "complexity" that I suggested to introduce was to be able to test and adjust the combo exponent based on user feedback without the need to reset leaderboards each time, but this is not something needed permanently and can even be fully discarded if we don't want to go that way. We tried a combo exponent of 0.5, it seems to work well and we could just as well decide to use this value directly and store a single "ComboScore" just as needed for Scorev2. |
Any changes to be made will be made before things go live. We will never make changes again in the future to scoring. If you have any suggestions, please make them after this is merged within the next few months.
You may be reading into this wrong. This is a disclaimer that if changes are required to scoring for tournament play, they CAN be done local to the multiplayer system. All this is saying is any changes will NOT be applied to solo play. This is non-negotiable from our end. I ask that you wait for this to be merged and deployed rather than making this PR a discussion thread, but also ask that you follow up with feedback once we are live. There's still room to make changes and the idea here is to get the new scoring out so people can try it more easily. |
You misunderstood my intentions. The complexity is in trying to make it re-calculatable. The addition of members to As far as I can tell, you can't recalculate It isn't helped by the implementation being different from anything I've seen thus far - it makes it harder for me to go into code and refactor it, as I have to both understand and refactor the code at the same time. Don't take it as dismissal of your code, I'm just taking a different path of returning to something that's very simple and well known (as a player but also as a developer - both peppy and I have seen this code before), and building it out from there. Maybe the changes that you mentioned are beneficial to have and can be applied over the existing ScoreV2 implementation. That's part of the "building it out from there" point. |
Thank you for your answers, all good then. Just wanted to be sure that we agreed on those points and that the plan is not to use v2 as the final lazer solo scoring. 👍 I'll take my suggestions of improvements over score v2 into a new discussion thread once this has been merged. |
…ode` change This isn't strictly required, but only because of a kind of hacky behaviour where `HUDOverlay` will recreate all components on a scoring mode change currently (see https://github.com/ppy/osu/blob/8f6df5ea0f7f721c630fc8cad93bb3eef869d1d9/osu.Game/Screens/Play/HUDOverlay.cs#L410-L418). Best we do this just in case that happens to go away in the future.
…` handling I don't feel too confident with the default scoring function being assigned in the constructor to a publicly settable delegate. This just feels a bit more elegant, and handles the (likely-never-used) case where we need to restore the default function. An alternative would be to provide the function as a `ctor` argument, but I believe that wasn't done here to allow using the `ILeaderboardScore` interface.
I've done an initial pass on this and think it should be okay to move forward with. @smoogipoo can you take a look over my changes and make sure nothing stands out as wrong? |
The changes are good. |
oh my god, it's happening |
Please forgive my ignorance if I am commenting in the wrong place. For the continuous update of osu!lazer, I think any changes are worth looking forward to, including this score calculation formula.
This means that my past play scores on osu!lazer will continue to be preserved. I'm a new player who only became active in April this year, because I use the In a better situation, I may only need to work hard for a few more months; in a worse situation, I may not be able to break through again in this life: I'm not a professional gamer, and it is impossible to become a professional gamer. The current situation caught me off guard. I have thought about clearing the local score, or switching back to version Right now, I'm confused, I don't know if I can keep playing osu! and continue to hone my skills in osu!. I don't know if this request is reasonable, but if so, I hope osu!lazer will come up with some solutions in the future to solve the dilemma similar to the one I'm currently facing. |
@LianSheng197 I understand your frustration, but please read #23782 (comment). Online leaderboards will get wiped to remove all lazer scores set with the old score algorithm. |
@bdach Thank you for such a quick response. Thank you very much! |
Do note that there is no estimate as to when this reset will happen, but it is planned. See #23761 (comment). |
Thank you, I'm very much looking forward to that day. |
One of the issues with scoring that's being consistently brought up is its linear combo scaling nature. This has triggered discussions like #20717, which has been turned into an implementation here.
The problem with the implementation above is that it adds a lot of complexity in an effort to make score re-calculatable, but it's not going to be unless all judgements or some metadata for them are to be stored. On top of that, it changes scoring completely unlike anything we've seen thus far, which is neither a bad thing nor a good thing.
I believe the best path forward is to return to something that everyone's familiar with that has been tried and tested. ScoreV2 seems appropriate.
For the most part, this is a 1:1 implementation of osu!stable's ScoreV2. osu!catch has not been exactly implemented, since its implementation drastically increases complexity and I've been told the simple combo/accuracy portions are fine, from those that have attempted to improve on the osu!stable algorithm for tournament purposes.
Of note: