Skip to content

Design implementation pass of Song Select v2 #32715

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

Draft
wants to merge 39 commits into
base: master
Choose a base branch
from

Conversation

frenzibyte
Copy link
Member

@frenzibyte frenzibyte commented Apr 7, 2025

peppynote: took over this PR to knock some sense into things for review. this is a working draft until further notice!

@peppy
Copy link
Member

peppy commented Apr 8, 2025

First impressions aren't great:

osu! 2025-04-08 at 07 18 37

osu! 2025-04-08 at 07 18 22

Left and right halves are overlapping with a pretty normal aspect ratio. @frenzibyte can you confirm this is how you left things and I haven't fucked something up?

@peppy
Copy link
Member

peppy commented Apr 8, 2025

Leaderboard doesn't seem to show placeholders on failures:

osu.2025-04-08.at.07.20.43.mp4

@peppy
Copy link
Member

peppy commented Apr 8, 2025

Something is going very wrong with this display:

osu! 2025-04-08 at 07 21 32

@frenzibyte
Copy link
Member Author

frenzibyte commented Apr 8, 2025

  • For the wedge/leaderboard measurements, yes this is how things stayed. I think the fix would be to limit the size of the wedge to not eat the header, roughly 650px last time I tried.

  • For leaderboard issues, the design has not been hooked up with a fetching backend yet (see code), also from previous PR chain:

    This branch in its current state does not hook up the rankings section with actual score fetching backend yet. I've used Extract leaderboard fetch logic from song select beatmap leaderboard drawable #32494 temporarily during my own testing and also to record the preview video below. I've left the code necessary to consume the components by the linked PR commented, so that if the PR goes in then attaching it to the components here is simple.

    TL;DR: I've made functionality of leaderboard dependant on Extract leaderboard fetch logic from song select beatmap leaderboard drawable #32494

    Design implementations can be checked using TestSceneBeatmapRankingsWedge.

  • For the wedge statistics looking broken on 4:3, it is also an issue that I'm not yet sure how to fix and I've left it as a follow-up task / up to discussion (since it's a minor issue surrounded by the gigantic diff of everything design). I'm foreseeing the right-hand difficutly statistics shortening to CS/OD/HP/AR to give breathing room for the left-hand statistics.

mapperText.Text = beatmap.Value.Metadata.Author.Username;
}

var playableBeatmap = beatmap.Value.GetPlayableBeatmap(ruleset.Value);
Copy link
Contributor

@smoogipoo smoogipoo Apr 8, 2025

Choose a reason for hiding this comment

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

Without doing a full review, I'll just mention that this is causing a beatmap load on the update thread resulting in FPS spikes when loading beatmaps.

Copy link
Member Author

Choose a reason for hiding this comment

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

Good point, I guess this explains why previous BeatmapInfoWedge was performing asynchronous load of content, pointless move from me to remove that in here.

@peppy peppy mentioned this pull request Apr 8, 2025
18 tasks
@peppy peppy force-pushed the song-select-v2-header branch 4 times, most recently from 9d334c8 to 4cb4d89 Compare April 10, 2025 11:40
@peppy peppy marked this pull request as draft April 10, 2025 16:19
@peppy peppy changed the title Implement majority of song select v2 design and functionality Design implementation pass of Song Select v2 Apr 10, 2025
@peppy peppy force-pushed the song-select-v2-header branch 8 times, most recently from 2561cb9 to c362779 Compare April 11, 2025 11:30
@peppy peppy force-pushed the song-select-v2-header branch from 863ac52 to 0d655d3 Compare April 16, 2025 09:51
@peppy
Copy link
Member

peppy commented Apr 16, 2025

I've done what I can with this PR, but I'm still not happy to merge it. There's too many issues with implementation details to even start reviewing. I've voiced concerns with @frenzibyte and he's going to make an attempt to split out the changes here into compartmentalised pieces with the following in mind:

  • The "placeholder functionality" – data hookups or otherwise – in new components should either match the original component in functionality and test coverage, or be removed. One of the major issues I have had during review is that things are implemented just enough to make it look like they work but once you delve into the code you realise that's a facade. A good example is checking this new code which has functional and code quality issues – the null case doesn't clear existing display, and the check for matching labels creates drawables for no reason.
  • Any of the follow up commits and fixes I've made should be squashed down (they don't need to exist). There should only be one (or a handful of relevant) commits per new component
  • Each new component should get its own PR, unless multiple components are very closely related and the resultant PR size is <500 LoC changed
  • New component PRs should not be touching any existing code (unless it's only a few stray lines)
  • All design updates / functionality changes to existing components should be in their own PR(s)

I've already split out some changes in #32817, #32818, #32819. There are around 65 files left to work with.

Will leave this PR open for now, as it may be used to compare on an ongoing basis, but eventually this will be closed with new 100% isolated PRs taking its place.

Copy link
Member

@peppy peppy left a comment

Choose a reason for hiding this comment

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

As commented.

@peppy peppy self-requested a review April 18, 2025 02:47
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.

4 participants