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

Add osu!taiko mod Quarterize #30731

Open
wants to merge 16 commits into
base: master
Choose a base branch
from

Conversation

Hiviexd
Copy link
Member

@Hiviexd Hiviexd commented Nov 17, 2024

This mod converts 1/8 and 1/6 patterns to 1/4, and 1/3 patterns to 1/2 (all based on user preference via the mod's settings)

A video showcase can be found here: https://www.youtube.com/watch?v=8T7XPkR04Lc

Why should this mod (and similar mods) exist

This stands out as the first mod that alters objects via deleting them/changing their position. osu!taiko is visually a very simple game mode which makes it challenging to express creativity, which means that rhythm, coloring, and SVs are the most important variables at our disposal for creating mods for taiko, unlike osu! where you have endless possibilities with circle/slider positions, sizes, their approach circles, and so on.

In osu!taiko, using 1/6 (and 1/8 to a lesser extent), is a very common improvisation method in higher difficulty beatmaps, where you'd often find isolated 1/6 patterns, or have them inside of 1/4 patterns/streams (see the 2nd beatmap in the video). This kind of improv poses a higher barrier of entry skill-wise, so this mod aims to make these beatmaps more accessible to lower-skilled players, hence why it's a difficulty reduction mod.

@minisbett
Copy link
Contributor

minisbett commented Nov 17, 2024

You should ensure this does not produce complications with difficulty & pp calculation. (eg. beatmap + SR vs. beatmap + SR done by hand)

@Hiviexd
Copy link
Member Author

Hiviexd commented Nov 17, 2024

I've set up a test beatmap with 2 difficulties and compared them with osu-tools.

Theoretically, 1/6 diff + SR mod 1/6 diff manually converted (hand-made SR conversion) on NoMod should be the same exact beatmap.

You'll find the difficulty info of the 1/6 diff NoMod, 1/6 diff +SR, and the 1/6 diff manually converted NoMod in this gist.

You'll notice identical SR and very negligible difference in PP (325.76 vs 325.74), which I'm personally suspecting a small margin of error because of potential 1ms unsnaps (rounding errors).

Additionally when making the mod, there was an expected and sane SR/PP drop on every beatmap I tested, I feel pretty confident that difficulty calculation shouldn't be affected negatively by this.

@Hiviexd Hiviexd changed the title Add osu!taiko mod Simplified Rhythm Add osu!taiko mod Simplified Nov 18, 2024
Copy link
Collaborator

@bdach bdach left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mod needs unit tests for correctness of applied processing

osu.Game.Rulesets.Taiko/Mods/TaikoModSimplified.cs Outdated Show resolved Hide resolved
osu.Game.Rulesets.Taiko/Mods/TaikoModSimplified.cs Outdated Show resolved Hide resolved
osu.Game.Rulesets.Taiko/Mods/TaikoModSimplified.cs Outdated Show resolved Hide resolved
osu.Game.Rulesets.Taiko/Mods/TaikoModSimplified.cs Outdated Show resolved Hide resolved
@Hiviexd
Copy link
Member Author

Hiviexd commented Nov 20, 2024

So, adding the tests has revealed an unexpected and niche issue.

The first run of every test passes, however subsequent runs of the tests that edit the objects' offsets break, mainly because the beatmap is not properly reloaded.

Important notice that this issue is only present in tests, and does not happen in regular play due to beatmaps being fully loaded/reloaded.

I've briefly talked to frenzi about this and the main gist is states are being polluted, as usually the beatmap is cloned in GetPlayableBeatmap but it seems the references of the hitobjects stay the same.

Apparently, the osu! Random mod manages to successfully modify an object's state so I'll look into that tomorrow, alternatively I'll look into potentially creating new hitobjects rather than editing them directly.

@DarkStoorM
Copy link

DarkStoorM commented Nov 21, 2024

I decided to check this mod on a map with lots of different snaps, like this one. It also turns it into a 0.5 Star Rating, but that's a different story.

I found a weird section, where having both 1/3 and 1/6 conversions on is not working as expected (I think?)
Example section: (02:20:997). There is a 1/6 (dddk kd). In the (kd) part, I don't know what happened there, but it looks like the don got snapped to 1/12

image

It's this particular pattern that's causing this, a 1/6 hit + double (like you'd insert a 1/6 quad and removed the second hit) and it only happens while having both 1/3 and 1/6 conversions on.

image

I know it will affect a very, very tiny portion of beatmaps, but I'm just wondering if that's a mistake or some combinations will just not work/are not supposed to be used together.

@Hiviexd
Copy link
Member Author

Hiviexd commented Nov 22, 2024

Issue with tests should be fixed now thanks to #30819.

I've also adjusted the conversion logic to remove every 2nd note and adjust every 3rd note as that's a much safer approach, because moving the 2nd note would risk it interfering with existing patterns in unintended ways, but moving back the 3rd note would just make it closer to the start of the pattern, therefore making offset changes entirely within the interval of the pattern itself.

It also turns it into a 0.5 Star Rating

Also got fixed with the improved conversion logic, now that maps convert in a relatively much safer way.

@Hiviexd Hiviexd changed the title Add osu!taiko mod Simplified Add osu!taiko mod Quarterize Nov 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants