Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@buyaspacecube
Copy link
Member

@buyaspacecube buyaspacecube commented Jul 10, 2025

This change is a bandaid fix nerfing the multiplier given to plays with hidden without the classic mod. Because lazer allows you to see as much as a 16:9 playfield with hidden compared to the maximum 4:3 on stable (this is intended as far as i know), players are able to add hidden to maps on lazer that would be much harder on stable for the same pp. Until a proper reading rework accounting for effective note velocity with hidden, this is probably the best we can do

Copy link
Member

@Lawtrohux Lawtrohux left a comment

Choose a reason for hiding this comment

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

fine by me. as much as i dislike conditionals spammed, its both unavoidable and the payoff is worth.

@buyaspacecube buyaspacecube requested a review from a team July 10, 2025 11:18
@buyaspacecube buyaspacecube moved this from Pending Review to Pending Maintainers Review in Difficulty calculation changes Jul 10, 2025
Copy link
Member

@tsunyoku tsunyoku left a comment

Choose a reason for hiding this comment

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

Could we turn the classic check into a field against the performance calculator that gets set at the start and then referenced where necessary? it should read a little bit cleaner and make the conditionals more terse. You can look at osu ruleset for inspiration if you want.

Also, please reformat so that the conditionals take up 2 lines rather than 1 (1 for condition, 2 for the actual block) - reading this is a nightmare right now

@tsunyoku
Copy link
Member

Also, the combination of these 3 conditionals is really impossible to parse for me. You're checking for classic and convert status individually and then finally doing a check with both. What is the intended flow here?

@Givikap120
Copy link
Contributor

Givikap120 commented Jul 10, 2025

Also, the combination of these 3 conditionals is really impossible to parse for me. You're checking for classic and convert status individually and then finally doing a check with both. What is the intended flow here?

4 cases:
lazer + convert => 0 lines triggered, 0 bonus
lazer + nonconvert => 2nd line triggered, 0.02 bonus
stable + convert => 1st line triggered, 0.025 bonus
stable + nonconvert => all 3 lines triggered, 0.1 bonus

tho I agree it's very unreadable and should be refactored.
also I don't understand why lazer + convert has 0 bonus instead of some small one.

IMO it should just decrease bonus if CL mod is not present in one line. Something like this:

double bonus = isConvert ? 0.025 : 0.1;
if (!isLegacy) bonus *= 0.2;
difficultyValue *= 1 + bonus;

@stanriders
Copy link
Member

Just to be sure, @ppy/team-client 16:9/4:3 difference in taiko playfield is intentional right? That's gonna stay as is?

@bdach
Copy link
Collaborator

bdach commented Jul 10, 2025

Don't ask me. Last this came up productively was #27136. Unproductively - #32773. I do not feel comfortable making any shot calls on that.

@Lawtrohux
Copy link
Member

As far as we are aware, yes, the difference in the playfield is intentional. There were some discussions taking place (lord knows if they were through official networks or not), whether this would be changed - the earliest notion of this was a PR by vunyunt (which bdach mentions above).

Whilst it's not intrinsically a bad thing that it has changed to be a lot more accessible to both newer players and current players alike, it serves a point to be the way it is now - that is to prevent the use of widescreen and other elements to make things easier to read.

Regardless of if its staying or not, it makes sense either way - yet provisions will need to be made, as lazer is marginally different to the classic implementation, so whether this is a blanket fix or we make proper provisions, some sort of assessment needs to be made.

This is the same with the ability to scale things a lot differently in lazer too (making hard reading maps very easy to play), but this serves as an entirely different discussion.

@buyaspacecube
Copy link
Member Author

yeah more discussion on what's intended and how to account for it can be done eventually but this is pretty necessary for this deploy. i'll refactor into something like what givikap put in a little while

@stanriders
Copy link
Member

I'm concerned about it staying or not because we might end up with a situation where like 1.5 years worth of ranked scores are done on one playfield and the rest on the other. That'd be a pain to consider and would be a necessity that we can't skip, so I'd rather ask the dev team to finally make a decision on this topic sooner than later (especially considering how many years it's been a pain point already)

@buyaspacecube
Copy link
Member Author

buyaspacecube commented Jul 11, 2025

went with basically exactly what givikap sent, i didn't think to penalise the bonus itself originally so tyvm. also moved the classic check next to isConvert so its much cleaner. won't rerequest review until we get a verdict on 16:9 hidden being intended

@stanriders
Copy link
Member

Does CL force 4:3 on lazer or is it only a stable thing? Because otherwise lazer CL scores will have the same advantage as all lazer scores now

@buyaspacecube
Copy link
Member Author

currently only stable, #27136 that bdach mentioned earlier was trying to implement it

@buyaspacecube
Copy link
Member Author

looks like the relevant code is at

if (LockPlayfieldAspectRange.Value)
locking the aspect ratio between 5:4 and 16:9. @peppy do you know of any plans to change this behaviour for specific mods to better match stable before the upcoming pp deploy?

@buyaspacecube
Copy link
Member Author

don't wanna ping anyone again but we wanna feature lock this deploy soon and it looks like nothing will change before then

@buyaspacecube buyaspacecube requested a review from tsunyoku July 29, 2025 19:07
@buyaspacecube buyaspacecube requested a review from tsunyoku July 30, 2025 13:54
@tsunyoku
Copy link
Member

Fix whitespace (it's failing code quality)

@buyaspacecube
Copy link
Member Author

whoops, sorted

@tsunyoku tsunyoku merged commit dbb16fc into ppy:pp-dev Jul 30, 2025
3 of 9 checks passed
@github-project-automation github-project-automation bot moved this from Pending Maintainers Review to Pending Deploy in Difficulty calculation changes Jul 30, 2025
@buyaspacecube buyaspacecube deleted the sorry branch August 2, 2025 11:31
Finadoggie pushed a commit to Finadoggie/osu that referenced this pull request Aug 18, 2025
* Reduce multiplier for hidden on lazer

* Refactor

* Quality

* The space
@stanriders stanriders moved this from Pending Deploy to Deployed in Difficulty calculation changes Oct 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Deployed

Development

Successfully merging this pull request may close these issues.

6 participants