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

CS difficulty doesn't scale properly with resolution #161

Open
rikimasan opened this issue Feb 4, 2022 · 2 comments
Open

CS difficulty doesn't scale properly with resolution #161

rikimasan opened this issue Feb 4, 2022 · 2 comments

Comments

@rikimasan
Copy link

rikimasan commented Feb 4, 2022

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.

@Tom94
Copy link
Collaborator

Tom94 commented Feb 5, 2022

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.

@rikimasan
Copy link
Author

rikimasan commented Feb 8, 2022

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.

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

No branches or pull requests

2 participants