-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
add OsuDifficultyTuning object to enable better rebalancing tools #36087
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
base: pp-dev
Are you sure you want to change the base?
Conversation
0c6b44a to
5f38d33
Compare
|
|
||
| namespace osu.Game.Rulesets.Osu.Difficulty | ||
| { | ||
| public record OsuDifficultyTuning |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not sure about the naming of this. i'd be happier with something like OsuDifficultyConstants (but wait for other's opinions before renaming).
|
I'm not a big fan of having a giant diffcalc config like that - it'd be a really convenient thing tools-wise, but at the same time a massive eyesore code-wise |
Yeah, I don't think it's a major regression but I understand that it is a regression in ergonomics here. I do think the potential tools it enables are worth the cost. The other approaches for getting these tools online unfortunately fall short. I see 2 major benefactors of the change.
|
|
Just wanted to add my 2 cents on this, not conceptually but after having watched it get tested for a bit. This change is a strong increase in the quality of performance point development. Typically, balancing manually is a multi-week gruelfest of changing values a little bit (while practically shooting in the dark) and waiting for tools to reload, which can be really demotivating when trying to make more drastic changes than 5 liners. One of the biggest problems I've had with this is that humans just don't have a good intuitive sense for these multi dimensional optimization problems, so trying to fix problem maps by hand can cause really unfortunate nerfs to some really good values. After testing with a really large-scope rework (branch is located here), the workflow shifts towards modelling pp for most of the time, using a parameter optimizer with target values for scores you think are representative, and adding problem maps as they come up in profiles. Iterating becomes about 100x faster, not exaggerating, and that fact came with the review that it would make more drastic structural changes in the attached branch go from insurmountable to fairly easy. I do really think this has potential, and I'd love to see that taken into consideration instead of disregarding this solely because ergonomics/aesthetics are a little worse. |
Takes all magic numbers used for balancing and combines them into an object that is optionally passable to the performance calculator to enable quick recalculation with different balancing parameters from external programs like osu tools. A quick example program for what is enabled by this is the automated rework balancing tool. Happy to address any concerns. Functionally does nothing on its own in this PR to improve ease of review.