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 toSpectatorSyncManager
(#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
- Add method to get configuration from a
ConfigManager
for logging purposes (ppy/osu-framework#5372 by @peppy) - Expose method to allow implementations to perform operations when drawable items change in
RearrangeableListContainer
(ppy/osu-framework#5376 by @peppy) - Avoid performing
Seek
operations on a decoupled source when the source is not running (ppy/osu-framework#5380 by @peppy) - Add callbacks to text selection events of TextBox (ppy/osu-framework#5366 by @nekodex)
- Add
Name
to samples and channels (ppy/osu-framework#5384 by @peppy)
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
toScoreInfo
(#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
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
- Fix crash if file with incorrect filename format is in font cache directory (ppy/osu-framework#5370 by @peppy)
- Fix editor crashing on mobile releases (#19906 by @peppy)
- Big oops.
- Fix a crash if a slider bar is disabled during a drag operation (ppy/osu-framework#5373 by @peppy)
- Include framework configuration in sentry output (#19909 by @peppy)
- Fix crash with legacy import from incomplete installs (#19995 by @its5Q)
- Fix crash when attempting to watch a replay when the storage file doesn't exist (#20031 by @peppy)
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)
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.
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
- Fix language change removing mod column bold text (#19905 by @smoogipoo)
- Change most ruleset-accessible string types to Localisable strings (#19695 by @naoei)
- Do not apply hidden state to system drives in directory selector (ppy/osu-framework#5374 by @mashiro-azure)
- Add profile url context menu to user container (#19934 by @novialriptide)
New Contributors
- @o-dasher made their first contribution in #19951
- @vunyunt made their first contribution in #19571
- @nanashi-1 made their first contribution in #19964
- @khang06 made their first contribution in #19919
Full Changelog: 2022.821.0...2022.901.0