1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-14 15:57:24 +08:00
osu-lazer/osu.Game
Bartłomiej Dach 08609e19d6
Fix osu! standardised score estimation algorithm violating basic invariants
As it turns out, the "lower" and "upper" estimates of the combo portion
of the score being converted were misnomers. In selected cases
(scores with high accuracy but combo being lower than max by more than
a few objects) the janky score-based math could overestimate the count
of remaining objects in a map. For instance, in one case the numbers
worked out something like this:

- Accuracy: practically 100%
- Max combo on beatmap: 571x
- Max combo for score: 551x

The score-based estimation attempts to extract a "remaining object
count" from score, by doing something along of sqrt(571^2 - 551^2). That
comes out to _almost 150_. Which leads to the estimation overshooting
the total max combo count on the beatmap by some hundred objects.

To curtail this nonsense, enforce some basic invariants:

- Neither estimate is allowed to exceed maximum achievable
- Ensure that lower estimate is really lower and upper is really upper
  by just looking at the values and making sure that is so rather than
  just saying that it is.
2024-03-06 11:40:10 +01:00
..
Audio Expose AudioFilter.IsAttached publicly 2024-02-26 21:15:44 +08:00
Beatmaps Update ImageSharp usages 2024-03-06 12:13:12 +08:00
Collections Apply safeties for AudioFilter usage around drawables which go non-present 2024-02-26 21:22:25 +08:00
Configuration Use more correct implementation 2024-02-22 09:44:59 +01:00
Database Fix osu! standardised score estimation algorithm violating basic invariants 2024-03-06 11:40:10 +01:00
Extensions Fix date failing to display on leaderboard for some scores with weird datetimes 2024-01-14 13:52:39 +01:00
Graphics Merge branch 'master' into update-framework 2024-03-06 12:36:05 +08:00
Input Add bindings for stepping backward/forward 2024-01-18 20:38:25 +09:00
IO Update usage of MathUtils 2024-03-06 12:13:12 +08:00
IPC Handle osu:// scheme links via IPC in desktop game 2022-06-20 21:26:22 +02:00
Localisation Fix "unranked explaination" tooltip text using incorrect translation key 2024-03-02 22:45:15 +03:00
Models Use native query to avoid huge overheads when cleaning up realm files 2024-01-09 15:37:29 +09:00
Online Merge pull request #27276 from bdach/medals 2024-03-06 12:31:55 +08:00
Overlays Remove unused using directives 2024-03-06 07:57:59 +01:00
Performance Add basic xmldoc on interface type 2024-02-27 20:46:25 +08:00
Properties Make medal overlay respect overlay disable via activation mode 2024-02-20 16:31:31 +01:00
Replays Show smoke in replays 2022-09-18 17:55:06 -07:00
Rulesets Never set waitingOnFrames if a replay is not attached 2024-03-06 04:37:11 +08:00
Scoring Use new ToDictionary() overload without delegates 2024-03-05 10:27:12 +01:00
Screens Merge pull request #27504 from peppy/replay-state-sanity-1 2024-03-06 09:51:09 +01:00
Skinning Update ImageSharp usages 2024-03-06 12:13:12 +08:00
Storyboards Fix storyboard animations stripping path directory on skin lookup 2024-01-17 18:39:48 +03:00
Tests Add flag to allow backwards seeks in tests 2024-02-29 23:05:28 +08:00
Updater Merge pull request #26930 from Susko3/suggest-update-only-if-available 2024-02-10 22:08:56 +08:00
Users Remove unused ruleset parameter when testing beatmap in editor 2024-03-01 20:28:52 +08:00
Utils Update usage of MathUtils 2024-03-06 12:13:12 +08:00
.editorconfig Add localisation length hinting 2022-04-28 19:26:28 +09:00
FodyWeavers.xml More realm analytic disables 2023-07-20 17:51:33 +09:00
osu!.res And then everything became one 2017-09-19 16:06:58 +09:00
osu.Game.csproj Update various packages which shouldn't cause issues 2024-03-06 12:17:00 +08:00
OsuGame.cs Merge pull request #27276 from bdach/medals 2024-03-06 12:31:55 +08:00
OsuGameBase_Importing.cs Automated pass 2023-06-24 01:00:03 +09:00
OsuGameBase.cs Move SoloStatisticsWatcher to OsuGame 2024-02-13 14:28:24 +01:00
PerformFromMenuRunner.cs Partial everything 2022-11-27 00:00:27 +09:00