osu-performance icon indicating copy to clipboard operation
osu-performance copied to clipboard

CS difficulty doesn't scale properly with resolution

Open rikimasan opened this issue 2 years ago • 2 comments

Currently two maps can be made identical across different letterbox resolutions by matching the resolution scaling using a different CS value and scaling the distance between all notes down, however the star rating between each map is different.

I would propose removing the current method of difficulty scaling for CS and replace it by measuring the distances between objects in terms of the radius length of each circle. Then scaling the distance value by osu pixel radius given by CS 4. (This last part is just trying to scale it back in line so star ratings don't fluctuate too much and CS4 is often the default CS used for maps, a different value may be better)

I created a video to demonstrate the issue visually which you can find here: https://www.youtube.com/watch?v=Gcc5GeBIP1k In this video the red skin is the map being played at cs4 with the playfield scaling in lazer set to 0.67 for both height and width, the blue skin is the map being played at cs6.7 edited so the distance between objects was scaled down by 2/3x using the editor feature in stable, then played with 1.0x playfield scaling in lazer. As a result the two maps look and play identically, however, the cs6.7 version is ~6.1* while the cs4 version is ~6.0*. Something like this shouldn't happen as they are effectively the same map. The maps are overlayed to show that they are indeed the same.

The slight difference is caused by my scaling the map in editor for the cs6.7 one by 2/3 since originally I was showing 720p vs 1080p but decided using lazer made more sense so I could see the updated star ratings as well as not using the exact cs value that would correspond.

rikimasan avatar Feb 04 '22 22:02 rikimasan

Hi there, these maps actually used to be treated identically, indeed!

The reason a slight boost to smaller-circle difficulty was added was a large amount of community feedback.

I can somewhat justify it like this: the equivalence stops as soon as smaller-circle maps aren’t confined to the center of the screen anymore. Then you won’t be able to build equivalent larger-circle maps anymore due to the circles poking out of the screen.

Admittedly, one could try designing the function of jump difficulty in terms of distance such that this effect is captured, but I had a hard time coming up with a working formula. The human visual/motor system just doesn’t seem to be sufficiently scale invariant in these cases. (With smaller-circle jumps with smaller distances seemingly being overproportionally harder than their larger hypothetical counterparts that would be bigger than the screen.)

In the end, it’s a lot of hardcoded fudge, though, so definitely worth being revisited.

Tom94 avatar Feb 05 '22 07:02 Tom94

That makes sense, my first thought would be to try non-linear distance scaling where increases at larger distances are worth more, and compensation nerfing aim speed for non complex patterns.

I admittedly should try such changes on my own and produce data to see what results such a change would bring however the codebase for osu performance is a bit daunting to comprehend before I know fully what impact my changes would have.

rikimasan avatar Feb 08 '22 22:02 rikimasan