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

January 2025 Diffcalc/PP release #31595

Open
wants to merge 70 commits into
base: master
Choose a base branch
from
Open

January 2025 Diffcalc/PP release #31595

wants to merge 70 commits into from

Conversation

stanriders
Copy link
Member

@stanriders stanriders commented Jan 20, 2025

ppy/osu-infrastructure#31

This PR includes all changes listed in the diffcalc project marked as Ready for deploy. Some changes were already merged to master before pp-dev branch was created

Deployment considerations:

  • Includes 3 rulesets: osu, taiko and catch. Mania only has a small refactor change that doesn't affect values
  • All rulesets have difficulty changes, catch doesn't have performance changes
  • 1 new difficulty attribute for osu: AimDifficultSliderCount
  • 5 difficulty attributes have been removed: ApproachRate, OverallDifficulty, GreatHitWindow, OkHitWindow, ScoreMultiplier
  • New taiko attributes are NOT to be databased

osu! changes: https://pp.huismetbenen.nl/rankings/players/master
Taiko changes: https://pp.huismetbenen.nl/rankings/players/master_taiko
Newspost: ppy/osu-wiki#12699

Lawtrohux and others added 30 commits December 18, 2024 18:16
…o being too inflated (#31067)

* low sr

* merge two line

* update decimal

* fix formatting

---------

Co-authored-by: StanR <[email protected]>
…utes (#31191)

* refactor + countdifficultstrain

* norm in utils

* adjust scaling shift

* fix comment

* revert all value changes

* add the else back

* remove cds comments
…31195)

* revert acc scaling shift to previous values

* increase variance in accuracy values across od

* move return values, move nullcheck into return

---------

Co-authored-by: James Wilson <[email protected]>
* Simplify osu! high-bpm acute angle jumps bonus

* Add aim wiggle bonus

* Add hitwindow-based aim velocity decrease

* Revert "Add hitwindow-based aim velocity decrease"

This reverts commit bcebe96.

* Move wiggle multiplier to a const, slightly decrease acute bonus multiplier

* Make sure the previous object in the wiggle bonus is also part of the wiggle

* Scale the wiggle bonus multiplayer down

* Increase the acute angle jump bonus multiplier

* Make wiggle bonus only apply on >150 bpm streams, make repetitive angle penalty

* Reduce wiggle bonus multiplier to not break velocity>difficulty relation

* Adjust wiggle falloff function to fix stability issues

* Adjust wiggle consts

* Update tests
… fix slider drop penalty being too lenient (#31055)

* Change slider drop penalty to use actual number of difficult sliders, fix slider nerf being too lenient

* Move cubing to performance calculation

* Add separate list for slider strains

* Rename difficulty atttribute

* Rename attribute in perfcalc

* Check if AimDifficultSliderCount is more than 0, code quality fixes

* Add `AimDifficultSliderCount` to the list of databased attributes

* Code quality

---------

Co-authored-by: James Wilson <[email protected]>
* Use `lastAngle` when nerfing repeated angles on acute bonus

* Bump acute multiplier

* Correct outdated wiggle bonus comment

* Update test

---------

Co-authored-by: StanR <[email protected]>
* implement bell curve into diffcalcutils

* remove unneeded attributes

* implement new rhythm skill

* change dho variables

* update dho rhythm

* interval interface

* implement rhythmevaluator

* evenhitobjects

* evenpatterns

* evenrhythm

* change attribute ordering

* initial balancing

* change naming to Same instead of Even

* remove attribute bump for display

* Fix diffcalc tests

---------

Co-authored-by: StanR <[email protected]>
…su! ruleset (#21211)

* Set speed distance to 0

* Reduce speed & flashlight, remove aim

* Remove speed AR bonus

* cleanup autopilot mod check in `SpeedEvaluator`

* further decrease speed rating for extra hand availability

* Pass all mods to the speed evaluator, zero out distance bonus instead of distance

---------

Co-authored-by: tsunyoku <[email protected]>
Co-authored-by: StanR <[email protected]>
…scaling to wide bonus (#31320)

* Fix angle bonuses calculating repetition incorrectly, apply distance scaling to wide bonus

* Buff speed to compensate for streams losing pp

* Adjust speed multiplier

* Adjust wide scaling

* Fix tests
* fix colour

* review fix

Co-authored-by: StanR <[email protected]>

* remove cancelled out operand

* increase nerf, adjust tests

* fix automated spacing issues

* up penalty

* adjust tests

* apply review changes

* fix nullable hell

---------

Co-authored-by: StanR <[email protected]>
* Simplify angle bonus formula

* Simplify further

* Simplify acute too

* Tests
* Apply a bunch of balancing changes to aim

* Update tests

---------

Co-authored-by: James Wilson <[email protected]>
* Make aim accuracy scaling harsher

* Use deviation-based scaling

* Bring the balancing multiplier down

* Adjust multipliers, fix incorrect deviation when using slider accuracy

* Adjust multipliers

* Update osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceAttributes.cs

Co-authored-by: James Wilson <[email protected]>

* Change high speed deviation threshold to 22-27 instead of 20-24

* Update tests

---------

Co-authored-by: James Wilson <[email protected]>
* Remove problematic total deviation scaling, rebalance aim

* Fix tests
* stamina considerations

* remove consecutive note count

* adjust multiplier

* add back comment

* adjust tests

* adjusts tests post merge

* use diffcalcutils

---------

Co-authored-by: StanR <[email protected]>
Code quality CI runs have suddenly started failing out of nowhere:

- Passing run: https://github.com/ppy/osu/actions/runs/12806242929/job/35704267944#step:10:1
- Failing run: https://github.com/ppy/osu/actions/runs/12807108792/job/35707131634#step:10:1

In classic github fashion, they began rolling out another runner change
wherein `ubuntu-latest` has started meaning `ubuntu-24.04` rather than
`ubuntu-22.04`. `ubuntu-24.04` no longer has .NET 6 bundled.

Therefore, upgrade NVika to 4.0.0 because that version is compatible
with .NET 8.
* rebalance

* revert pp scaling change

* further rebalancing

* comment

* adjust tests
* further considerations for rhythm

* new rhythm balancing

* fix license header

* use isNormal to validate ratio

* adjust tests

---------

Co-authored-by: StanR <[email protected]>
…ty.Utils (#31520)

* Move error function implementation to osu.Game.Rulesets.Difficulty.Utils

* Rename ErrorFunction.cs to DifficultyCalculationUtils_ErrorFunction.cs
…nsity" (#31512)

* Penalise reading difficulty of high velocity notes at high densities

* Use System for math functions

* Lawtrohux changes

* Clean up density penalty comment

* Swap midVelocity and highVelocity back around

* code quality pass

---------

Co-authored-by: Jay Lawton <[email protected]>
Co-authored-by: StanR <[email protected]>
* Implement fix for catch buzz sliders SR abuse

* Run formatting

---------

Co-authored-by: StanR <[email protected]>
@peppy peppy self-requested a review January 23, 2025 14:44
Copy link
Member

@BabySnakes101 BabySnakes101 left a comment

Choose a reason for hiding this comment

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

Taiko looks good, some code and magic could be clearer but hopefully some refactoring can be done in the near future.

tsunyoku and others added 14 commits January 30, 2025 13:58
…difficulty attributes (#31735)

* Calculate hit windows in performance calculator instead of databased difficulty attributes

* Apply mods to beatmap difficulty in osu! performance calculator

* Remove `GreatHitWindow` difficulty attribute for osu!mania

* Remove use of approach rate and overall difficulty attributes for osu!

* Remove use of hit window difficulty attributes in osu!taiko

* Remove use of approach rate attribute in osu!catch

* Remove unused attribute IDs

* Code quality

* Fix `computeDeviationUpperBound` being called before `greatHitWindow` is set
@peppy
Copy link
Member

peppy commented Feb 10, 2025

I've glossed over a lot of implementation details here, but I think this is about as good to go as it's going to get in my eyes. @smoogipoo do you want to do another pass before we get this going?

Also I think we want to try and synchronise a client release of this better this time around, so I am not going to merge for the upcoming lazer release. We will delay one release cycle (or even do an interim release) so server updates can be prepared and we can have everything go out roughly-together. Sound good?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.