taulazer / tau

A customized osu! mode surrounding a paddle and some notes.
https://taulazer.github.io/
MIT License
171 stars 19 forks source link

Add an option to highlight Hard Beats #467

Open Snootiful opened 3 weeks ago

Snootiful commented 3 weeks ago

Why I opened this PR

I've been playing with tau for some time now, and it bothered me somewhat that the hard beats have the same color as regular beats. This makes it a bit harder for me to differentiate between the two and kinda makes them blur together.

When playing with the Strict mod this gets even worse. There — because the hard beats start off quite thin — it's very difficult to differentiate between hard beats and regular beats as they look almost the same.

To alleviate this I made this PR, which adds an option that changes the color of hard beats. My goal is to improve usability for players with color blindness or impaired vision, and players with some neurodevelopmental disorders.[^1]

Changes

With the option "Highlight Hard Beats" enabled, all hard beats will now be colored orange. This includes regular hard beats, strict hard beats, and strict hard beat sliders. I picked orange for the time being since it seems to work well enough with the accent color. It also looks different enough from white to make it easier to distinguish, but it could be improved upon.

The relevant tests have been updated with additional steps to verify that these changes work as expected. Manual tests with a release build of osu! have been conducted as well.

The cached slider texture from TauCachedProperties has been removed to allow for changing the color of the hard beat sliders. It could be reintroduced in some fashion if it turns out these changes have a noticeable impact on performance. By far the easiest way to do this would be to revert the changes to TauCachedProperties and DrawableSlider.

Notes

Because I'm not very familiar with C# and don't use it often the code I deliver might not be very tidy, and there will undoubtedly be inefficiencies and strange decisions all over. I did however attempt to match the style of the code I was working with. If there is anything I could improve upon, please let me know.

[^1]: I have Autism without any visual impairments, yet I can tell that my ability to read certain patterns in both tau and standard really struggles compared to other players. Of course, I can't speak for other people with neurodevelopmental disorders, color blindness, or visual impairments.

Snootiful commented 3 weeks ago

Updated the code following the above instructions. I was able to use the cached properties again by adding an additional Texture for the visually distinct slider body. Also I renamed the option and it's variables/properties anyway to be clearer, since I like "Improve Visual Distinction" better.

naoei commented 3 weeks ago

I don't like the direction of turning this into a setting, Tau already has too many settings as-is and some settings should be ideally removed (i.e. Kiai effects).

This current implementation locks the user behind one colour (orange), and if say someone were colourblind or has some other visual impairments that would blend red and orange together, this setting would not help at all. The ideal implementation would be to allow the user to change any hit object that would require the hard beat press to any colour they want via skinning. We did have an earlier implementation of skinning, but it was very rudimentary and I'm currently thinking on how we can do better.

There's also the possibility that we might not want this feature in the future, I have a development branch on my fork that tests to see if we would want to do simultaneous button presses (only Z/X) for hard beats instead of a separate button for them.

naoei commented 3 weeks ago

Suspending this for now for previous concerns.