Skip to content

Ability to display beatmap conversions from non-osu! ruleset beatmaps via interfaces #9263

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

Open
swoolcock opened this issue Jun 12, 2020 · 1 comment · May be fixed by #32535
Open

Ability to display beatmap conversions from non-osu! ruleset beatmaps via interfaces #9263

swoolcock opened this issue Jun 12, 2020 · 1 comment · May be fixed by #32535
Labels

Comments

@swoolcock
Copy link
Contributor

Describe the new feature:
Currently, BeatmapConverter subclasses do not care about the ruleset of the source beatmap, but only osu!standard maps can be selected for conversion from within the game.

Proposal designs of the feature:
Add a method of detecting valid conversions for the currently selected ruleset and use it as part of the song select filter.

@enoslayd
Copy link

enoslayd commented Jun 12, 2020

This can be useful to mvis ruleset too by allowing access to all modes (including catch and mania) since some Beatmaps are exclusive to one mode

@bdach bdach added the area:beatmap-parsing .osu file format parsing label Jun 12, 2020
@peppy peppy changed the title Ability to display beatmap conversions from non-standard maps Ability to display beatmap conversions from non-osu! ruleset beatmaps via interfaces Mar 3, 2021
WebFreak001 added a commit to WebFreak001/osu that referenced this issue Mar 22, 2025
Supersedes ppy#23875, fix ppy#9263

Gives the ruleset full control which maps to show both with and without converts enabled - e.g. a competitive/harder version ruleset such as for mania could make mania maps show without enabling converts, as well as control which ones to support only if conversions are enabled in the settings.

There is a CanConvert function in BeatmapConverter which I considered using as well, however it looks like this beatmap converter isn't directly accessible in the carousel and adding it may be quite severe on performance impact.

This way, maps may also show if they fail in conversion, but playing them will show a notification that the maps aren't playable. For the future an async task that just goes through maps to try and see if they are convertible for different modes and caches that might be useful. (e.g. generally mania->taiko converts might be good to have, but a quality control function inside CanConvert could make the conversion fail if it's unplayable)

This enables the following additional conversions since in my small testing using the default bundled osu maps they worked quite well:

ctb -> mania (gives surprisingly fun beginner 7k maps)
ctb -> taiko

If wanted I can also move this into a new interface, however I think the FilterCriteria interface fits quite well actually
WebFreak001 added a commit to WebFreak001/osu that referenced this issue Mar 23, 2025
Supersedes ppy#23875, fix ppy#9263

Gives the ruleset full control which maps to show both with and without converts enabled - e.g. a competitive/harder version ruleset such as for mania could make mania maps show without enabling converts, as well as control which ones to support only if conversions are enabled in the settings.

There is a CanConvert function in BeatmapConverter which I considered using as well, however it looks like this beatmap converter isn't directly accessible in the carousel and adding it may be quite severe on performance impact. Also consider for example generally mania->taiko converts might be good to have, but a quality control function inside CanConvert could make the conversion fail if it's unplayable, so two different interfaces make more sense in that case.

This way, maps may also show if they fail in conversion, but playing them will show a notification that the maps aren't playable. For the future an async task that just goes through maps to try and see if they are convertible for different modes and caches that might be useful.

I did not change how the default rulesets behave, this is just for custom rulesets to be able to play more maps and start off with a larger pool of maps, which I think is an important part of custom ruleset adoption. I adjusted the scrolling example ruleset (pippidon) to include this as well.
WebFreak001 added a commit to WebFreak001/osu that referenced this issue Mar 23, 2025
Supersedes ppy#23875, fix ppy#9263

Gives the ruleset full control which maps to show both with and without converts enabled - e.g. a competitive/harder version ruleset such as for mania could make mania maps show without enabling converts, as well as control which ones to support only if conversions are enabled in the settings.

There is a CanConvert function in BeatmapConverter which I considered using as well, however it looks like this beatmap converter isn't directly accessible in the carousel and adding it may be quite severe on performance impact. Also consider for example generally mania->taiko converts might be good to have, but a quality control function inside CanConvert could make the conversion fail if it's unplayable, so two different interfaces make more sense in that case.

This way, maps may also show if they fail in conversion, but playing them will show a notification that the maps aren't playable. For the future an async task that just goes through maps to try and see if they are convertible for different modes and caches that might be useful.

I did not change how the default rulesets behave, this is just for custom rulesets to be able to play more maps and start off with a larger pool of maps, which I think is an important part of custom ruleset adoption. I adjusted the scrolling example ruleset (pippidon) to include this as well.
WebFreak001 added a commit to WebFreak001/osu that referenced this issue Mar 23, 2025
Supersedes ppy#23875, fix ppy#9263

Gives the ruleset full control which maps to show both with and without converts enabled - e.g. a competitive/harder version ruleset such as for mania could make mania maps show without enabling converts, as well as control which ones to support only if conversions are enabled in the settings.

There is a CanConvert function in BeatmapConverter which I considered using as well, however it looks like this beatmap converter isn't directly accessible in the carousel and adding it may be quite severe on performance impact. Also consider for example generally mania->taiko converts might be good to have, but a quality control function inside CanConvert could make the conversion fail if it's unplayable, so two different interfaces make more sense in that case.

This way, maps may also show if they fail in conversion, but playing them will show a notification that the maps aren't playable. For the future an async task that just goes through maps to try and see if they are convertible for different modes and caches that might be useful.

I did not change how the default rulesets behave, this is just for custom rulesets to be able to play more maps and start off with a larger pool of maps, which I think is an important part of custom ruleset adoption. I adjusted the scrolling example ruleset (pippidon) to include this as well.
WebFreak001 added a commit to WebFreak001/osu that referenced this issue Mar 23, 2025
Supersedes ppy#23875, fix ppy#9263

Gives the ruleset full control which maps to show both with and without converts enabled - e.g. a competitive/harder version ruleset such as for mania could make mania maps show without enabling converts, as well as control which ones to support only if conversions are enabled in the settings.

There is a CanConvert function in BeatmapConverter which I considered using as well, however it looks like this beatmap converter isn't directly accessible in the carousel and adding it may be quite severe on performance impact. Also consider for example generally mania->taiko converts might be good to have, but a quality control function inside CanConvert could make the conversion fail if it's unplayable, so two different interfaces make more sense in that case.

This way, maps may also show if they fail in conversion, but playing them will show a notification that the maps aren't playable. For the future an async task that just goes through maps to try and see if they are convertible for different modes and caches that might be useful.

I did not change how the default rulesets behave, this is just for custom rulesets to be able to play more maps and start off with a larger pool of maps, which I think is an important part of custom ruleset adoption. I adjusted the scrolling example ruleset (pippidon) to include this as well.
@WebFreak001 WebFreak001 linked a pull request Mar 23, 2025 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants