github ppy/osu 2022.901.0

latest releases: 2024.911.0, 2024.906.2, 2024.906.1...
2 years ago

Thanks for following along! This is a tagged release (2022.901.0). For more information check out the osu! changelog page and dev blog.

NOTE: 🤖 ANDROID RELEASE PULLED TEMPORARILY DUE TO SOMETHING GONE WRONG

Audio

Add audio feedback for text selection (#19850 by @nekodex)

selection-sfx.mov

Fix audio glitching when showing results screen with many scores (#20025 by @peppy)

Could be heard as a soft "pop" when entering results, even when the game was muted.

Add audio feedback for invalid textbox input (#20045 by @nekodex)

textbox-error.mov

Code Quality

  • Invert creation of clocks in multi-spectator (#19911 by @smoogipoo)
  • Tidy up spectator clock/manager naming and interfaces (#19933 by @peppy)
  • Move MasterClockState handling in to SpectatorSyncManager (#19936 by @peppy)
  • No "gameplayClock" usage with playfield update mods (#19951 by @o-dasher)
  • Prefix all remaining OpenGL-specific classes with "GL" in name (ppy/osu-framework#5381 by @frenzibyte)
  • Introduce FramedBeatmapClock (and use in gameplay flow) (#19828 by @peppy)
    • First piece of getting offsets more global. This just moves the handling to an isolated class which can be used in more contexts.
  • Refactor/merge ScoreProcessor.ComputeScore() methods (#20008 by @smoogipoo)
  • Refactor scoring to remove async methods / simplify (#20011 by @smoogipoo)
  • Add LegacyTotalScore to SoloScoreInfo (#20028 by @smoogipoo)
  • Apply NRT to notification classes (#20026 by @peppy)
  • Assert non-null in ProfileHeader to appease r# (#20029 by @peppy)

Database

Always reprocess beatmaps after a user update request (#20013 by @peppy)

If a beatmap had metadata changes server-side without its content changing, the game would prompt the user to update but early-abort the update process due to not finding any file changes. Now, osu! will do a full metadata reprocess to bring things into a correct state.

20013.mp4

Editor

Add ability to split sliders into multiple pieces (#19858 by @OliBomby)

This synergizes particularly well with the merging feature added earlier, allowing splitting a part of the slider, transforming it however you want, then merging it back together.

For now you can only split on control points which have a non-inherited curve types and are not the first or last control point of the slider. It is theoretically possible to make a splitting feature which can split on any part of the slider body, but that would be more involved require some extra UX considerations. Maybe something for the future.

osu._yXwUicVEn0.mp4

Correctly apply universal and beatmap offsets in editor (#19974 by @peppy)

I did it! This was quite a journey to make happen in a semi-sane way. Should pave a path for a brighter (and more in-time) future.

Smaller changes

  • Fix flipping a slider sometimes changing the curve type from "Perfect" to "Bezier" (#19865 by @OliBomby)
  • Fix mering of hitobjects not correctly populating hitsounds (#19964 by @nanashi-1)
  • Fixed merging zero-length hitobject combinations being allowed (#19982 by @OliBomby)
    • And causing a crash as a result.
  • Adjust weirdly back-to-front fallback comparison in HitObjectOrderedSelectionContainer (#20009 by @frenzibyte)
  • Fixed merging circles at the same time causing a crash (#19984 by @OliBomby)

Framework

Gameplay

Emulate osu!stable's NaN slider velocity behavior (#19919 by @khang06)

Some loved maps (1, 2, 3) like to use NaN slider velocity timing points, which acts exactly like 1.0x but disables slider tick generation. This allows effectively going far past the 10x slider velocity limit without generating an unnecessary amount of slider ticks.

This change allows such beatmaps to function "correctly".

19919.mp4

Smaller changes

  • Ensure fail animation sequence isn't run after the player exit sequence has started (#19958 by @peppy)
  • Don't include misses in failed score statistics (#20010 by @smoogipoo)
  • Fix skip button getting stuck on screen for certain beatmaps (#20039 by @peppy)
  • Fix gameplay skipping forward during resume operation (#20014 by @peppy)

Gameplay (osu!)

Add setting to toggle metronome in "Target" mod (#20012 by @peppy)

Per a user request.

20012.mp4

Smaller changes

  • Nerf repeated angles in Flashlight skill (#19716 by @MBmasher)
    • Difficulty calculation changes. More detail coming in a news post in the near future.
  • Fix relevant note count summation in osu!'s Speed skill (#20033 by @apollo-dw)
    • Difficulty calculation changes. More detail coming in a news post in the near future.

Gameplay (osu!taiko)

  • Rewrite of the colour skill & refactoring of difficulty calculation within osu!taiko (#19571 by @vunyunt)
    • Difficulty calculation changes. More detail coming in a news post in the near future.
  • osu!taiko performance point adjustments & effective misses (#19853 by @Lawtrohux)
    • Difficulty calculation changes. More detail coming in a news post in the near future.

Multiplayer

Fix multiplayer spectator sometimes getting stuck at the end of the beatmap (#19938 by @frenzibyte)

Online

  • Add maximum_statistics to ScoreInfo (#19939 by @smoogipoo)
    • To be used for new score storage systems.
  • Add legacy_combo_increase hit result type for legacy scores (#19940 by @smoogipoo)
    • To be used for new score storage systems.

Performance

  • Fix SliderPath.Version bindings not being correctly cleaned up on path changes (#19959 by @peppy)

Reliability

Perform more initial checks when loading rulesets to avoid runtime crashes (#19830 by @peppy)

As we continue to break the ruleset API, it makes more sense to proactively check known changes and bail early during ruleset loading to avoid a user experiencing a crash at a random point during execution.

Add ruleset API versioning (#19907 by @peppy)

Should result in less crashes from outdated rulesets. Will only take effect after ruleset creators update in line with the new changes, but from that point forward things should be a lot more user-friendly, and less crashy.

Smaller changes

Song Select

Fix selecting preset containing Difficulty Adjust automatically opening customisation panel (#19783 by @bdach)

Add "date submitted" sorting (#19904 by @novialriptide)

osu.2022.08.21.-.23.16.38.01_Trim.mp4

Fix beatmap carousel not maintaining selection if currently selected beatmap is updated (#19409 by @peppy)

Smaller changes

  • Adjust rounding in mod select difficulty multiplier to match song select footer (#19898 by @bdach)
    • Now the displayed numbers should match everywhere they are shown on the song select screen.

Testing

  • Add safeties to avoid deadlock in SubmittingPlayer (#19868 by @peppy)
  • Fix some BeatmapCarousel tests not correctly reinitialising local data per run (#19956 by @peppy)
  • Ensure all mods are incompatible in both ways (#19203 by @tsunyoku)
  • Fix intermittent test failures in TestScenePlaylistOverlay (#19924 by @peppy)
  • Populate MaximumStatistics for test scores (#20024 by @smoogipoo)
  • Test editor ComposeScreen tests not adding beatmap to hierarchy (#20042 by @peppy)

Tournament

Add toggle for tournament client "auto progression" behaviour (#20041 by @peppy)

UI

Add option to copy URL rather than open an external link (#19937 by @novialriptide)

image

Fix beat synced components not applying offsets (#19973 by @peppy)

This fixes things like the main menu osu! logo and nightcore beats not adjusting with "universal offset" changes. It was a journey to make this work, but we made it.

Update notification overlay design (#20030 by @peppy)

Roughly matches web. Not interested in getting metrics perfect or removing the light. Just wanted to get ballpark visuals correct to make sure any subsequent changes don't feel too out-of-place against the rest of the game ecosystem.

notifications new design

Add toast notifications (#20032 by @peppy)

Been wanting to do this for quite a while. It greatly improves user experience almost everywhere in the game.

osu.2022-08-30.at.12.31.58.mp4

Smaller changes

New Contributors

Full Changelog: 2022.821.0...2022.901.0

Don't miss a new osu release

NewReleases is sending notifications on new releases.