Thanks for following along! This is a tagged release (2022.605.1). For more information check out the osu! changelog page and dev blog.
Audio
Improve consistency of UI sound effects (#18548 by @nekodex)
Consistency pass to fix components with missing/incorrect sounds and to use more appropriate sounds in some places.
Code Quality
- Remove old chat overlay components (#18487 by @jai-x)
- Remove "V2" suffix from
ChatOverlay
components (#18495 by @peppy) - Refactor ScoreProcessor for use in more external scenarios (#18506 by @smoogipoo)
- Make NullabilityInfoContext usage thread-safe (ppy/osu-framework#5226 by @smoogipoo)
- Turns out this thing is not thread-safe 😅
Editor
Fix wrong sizing of editor timeline ticks (#18485 by @bdach)
Regressed with recent design changes.
Improve flow of adding new control points at timing screen (#18509 by @peppy)
A couple of changes here:
- Attributes from the currently selected control point are cloned when adding a new one.
- The first control point added it automatically made a timing control point.
osu.2022-05-31.at.12.51.24.mp4
Add adjustment buttons for BPM and offset (#18508 by @peppy)
Bit of an experimental UX which I'll continue to build on.
osu.Game.Tests.2022-05-31.at.12.35.19.mp4
Add the ability to lock the waveform display to a specific time location (#18505 by @peppy)
Quite often you will want to be timing using a specific section of the waveform you've identified to have a discernible beat. This allows locking the display to that region while you make further adjustments.
osu.Game.Tests.2022-05-31.at.09.45.09.mp4
Add automatic control point tracking to the timing screen (#18502 by @peppy)
The new timing controls are displayed in the right-hand area of the timing screen, which tracks the currently selected control point. To make this make more sense, the selected group should be updated as the song progresses.
osu.2022-05-31.at.06.08.12.mp4
The scroll view currently won't track off-screen (ie. it won't scroll control points into view), that will be fixed later.
Add tap for BPM button (#18523 by @peppy)
Initial implementation of a tap button.
osu.2022-06-01.at.13.16.45.mp4
Fix timeline objects disappearing prematurely on wide-screens (#18462 by @frenzibyte)
Smaller changes
- Fix context menu no longer opening for hitobjects in timeline (#18477 by @frenzibyte)
- Add background to main waveform row (#18504 by @peppy)
- Add shadow effect to bottom bar (#18444 by @frenzibyte)
- Add metronome sound (#18516 by @peppy)
- Placeholder for now.
- Fix timing screen crash when attempting to add group to self (#18528 by @peppy)
- Allow clicking away to deselect the current control point group (#18529 by @peppy)
- Improve group tracking logic to avoid switching which point type unnecessarily (#18531 by @peppy)
- Improve ramping behaviour of timeline zoom buttons (#18539 by @frenzibyte)
- Change text on timing group add button when it is going to clone instead (#18530 by @peppy)
Framework
- Add IsNull()/IsNotNull() helper extensions (ppy/osu-framework#5207 by @smoogipoo)
- Allow detecting exclusive fullscreen on Windows (ppy/osu-framework#5204 by @smoogipoo)
- Expose
ReadToFill
stream extension methods for future use (ppy/osu-framework#5215 by @peppy) - 🔧 Add prefix to Sentry release name (#18518 by @ThePooN)
- 🚑 Fix use of illegal character in Sentry's release name scheme (#18519 by @ThePooN)
- Synchronously exit
ThreadRunner
threads (ppy/osu-framework#5217 by @Susko3) - Support nullable reference types for dependency injection (ppy/osu-framework#5224 by @smoogipoo)
- Throw
OperationCanceledException
whenPerform
ing aWebRequest
afterAbort
(ppy/osu-framework#5221 by @peppy) - Fix convex polygon clipper edge cases (ppy/osu-framework#5219 by @smoogipoo)
- Simplify exiting flow (ppy/osu-framework#5211 by @Susko3)
- Fix synchronisation context disassociating scheduler on execution mode changes (ppy/osu-framework#5228 by @frenzibyte)
Gameplay (osu!)
Allow object generation algorithm to rotate sliders (#17591 by @hlysine)
The algorithm now rotates sliders according to the flow of the map and how close the slider is to an edge of the playfield. This allows random mod to randomize sliders as well (their rotations are not directly randomized by random mod, but the algorithm rotates sliders according to how previous parts of the map are randomized). This also allows the Spacing Adjust mod (#17590) to generate better maps.
Fix spinner approach circle displaying on default legacy skin (#18556 by @frenzibyte)
Gameplay (osu!mania)
Populate MaxCombo difficulty attribute for osu!mania (#18532 by @smoogipoo)
Fixes scores not displaying correctly in some contexts.
Localisation
Overlays
Display Announce type channels separately in new chat overlay (#18442 by @jai-x)
Add search bar to "currently playing" dashboard tab (#18427 by @sw1tchbl4d3r)
You can now search for users that are currently playing.
Performance
- Statically cache font parsing results to reduce unit test overhead (ppy/osu-framework#5213 by @peppy)
- Fix test performance overhead due to held references of previous
GameHost
s (ppy/osu-framework#5212 by @peppy) - Use pooled memory for texture uploads to avoid an extra memory allocation (ppy/osu-framework#5214 by @peppy)
- This reduces memory allocations by around 6% on a standard startup (mostly observed in font loading).
- Use pooled memory for memory copies performed by
ZipArchiveReader
(#18497 by @peppy) - Avoid unnecessary copy operations between
Waveform
and its draw node (ppy/osu-framework#5218 by @peppy)
Platform
Detect exclusive fullscreen on Windows (#18422 by @smoogipoo)
The game will now let you know whether it is running in exclusive fullscreen. This will help users understand why their input latency feels bad in scenarios the game couldn't enter exclusive mode.
Change default window mode to "Borderless" on macOS (#18544 by @frenzibyte)
Using "Fullscreen" takes full control away from the OS, which means that if the game were to deadlock, or if an OS pop-up which freezes the game has opened, or if a breakpoint was hit (happens a lot for me), then the game can't be escaped from and the only option available is to halt the system down using the power button.
This also shows a message when setting fullscreen mode on macOS letting the user know they might encounter issues.
Reliability
- Fix potential
ObjectDisposedException
on realm notification inSkinSection
(#18473 by @peppy) - Add sentry tag for selected beatmap (#18543 by @frenzibyte)
- Don't report sentry errors from builds targetting a different server (#18546 by @peppy)
- Fix web requests potentially being performed after cancelled (#18545 by @peppy)
Testing
- Avoid GC overhead during game load by only doing a full blocking collect at the end of a test run (ppy/osu-framework#5209 by @peppy)
- Previously this would be occurring many times during game load, causing crippling test performance in scenarios where the game takes considerable time to load.
- Fix multiple intermittent failures in chat overlay tests (#18480 by @peppy)
- Fix some more chat tests failing intermittently (#18488 by @peppy)
- Fix
OnlinePlayTestScene
request handlers potentially running requests post-disposal (#18494 by @peppy)- I am hoping this is the intermittent test failure we've been chasing for the good part of a year. It looks to match in every way, but time will tell.
- Improve safety of file chooser textbox disposal (#18536 by @bdach)
UI
Fix scroll operations sometimes not being recognised (ppy/osu-framework#5227 by @frenzibyte)
In the last few releases, we made horizontal and vertical drag scrolling work better. Unfortunately, this also meant diagonal drags at places like song select would occasionally not be recognised as scroll operations.
This fixes that issue by allowing diagonal drags to always work when scroll views are not nested.
Smaller changes
UX
Fix tutorial download state not matching correctly when already available locally (#18526 by @peppy)
Smaller changes
- Fix textbox showing incorrect selection after content is updated by the game (ppy/osu-framework#5223 by @Susko3)
New Contributors
- @sw1tchbl4d3r made their first contribution in #18427
Full Changelog: 2022.528.0...2022.605.1