Thanks for following along! This is a tagged release (2022.810.0). For more information check out the osu! changelog page and dev blog.
Code Quality
- Remove nullable disable annotation in mods for osu ruleset. (#19407 by @andy840119)
- Remove nullable disable annotation in audio namespace (#19500 by @andy840119)
- Update nullability specifications in osu!catch and osu!taiko mods (#19534 by @andy840119)
- Improve
IBeatSyncProvider
interface and reduce beatmap track dependence (#19548 by @peppy)- As a preliminary step to moving out more of the clock/offset logic to a higher level, I want to start by reducing dependence on
WorkingBeatmap.Track
. Most of the usages outside of editor/player are for beat sync purposes (ie. animating various components), so I've gone through each of these usages and removed any references to the beatmap itself.
- As a preliminary step to moving out more of the clock/offset logic to a higher level, I want to start by reducing dependence on
- Remove nullable disable in the osu.Desktop (#19552 by @andy840119)
- Clean up SoloScoreInfo serialised output (#19575 by @smoogipoo)
- Remove nullable disable annotation in the clock namespace (ppy/osu-framework#5337 by @andy840119)
- Fix possible null assignment inspection in
TestScenePreviewTrackManager
(#19635 by @frenzibyte) - Don't serialise empty mod settings (#19582 by @smoogipoo)
- Apply
IRenderer
changes (#19560 by @smoogipoo) - Fix typo in
IBindable
xmldoc (ppy/osu-framework#5340 by @peppy) - Simplify task logic in
ModPresetColumn
(#19640 by @peppy) - Remove nullable disable annotation in the threading namespace. (ppy/osu-framework#5338 by @andy840119)
Framework
- Internalise vertex batches and expose via
IVertexBatch
(ppy/osu-framework#5325 by @smoogipoo) - Internalise
FrameBuffer
and expose viaIFrameBuffer
(ppy/osu-framework#5326 by @smoogipoo) - Internalise
Shader
and expose viaIShader
(ppy/osu-framework#5327 by @smoogipoo) - Internalise
TextureGL
and rewriteTexture
to take its role (ppy/osu-framework#5330 by @smoogipoo) - Remove
GLWrapper
and move implementation toIRenderer
(ppy/osu-framework#5332 by @smoogipoo) - Move vertices out of the OpenGL namespace (ppy/osu-framework#5336 by @smoogipoo)
Gameplay
Fix circular song progress display incorrectly blocking mouse input from gameplay (#19564 by @peppy)
2022.810.0-progress-fix.mp4
Gameplay (osu!)
Imitate osu!stable's slider followcircle behaviour at ticks (#19262 by @goodtrailer)
This change is most visible in two ways:
2022.810.0-default-slider-tick-transform.mp4
The default skin will now bounce when reaching a tick, just like classic skins.
2022.810.0-classic-slider-breaks.mp4
Classic skins will now correctly wait until the next tick before dismissing the follow circle.
Add "strength" setting for wiggle mod (#16589 by @mk56-spn)
2022.810.0-wiggle-strength.mp4
Gameplay (osu!mania)
Adjust visuals of osu!mania barlines to be less present (#19642 by @peppy)
Roughly matches the new design. Metrics adjusted to fit with the existing design. This also makes also barlines less opaque than before. We'll continue to adjust as the new gameplay designs are introduced.
2022.810.0-mania-barlines.mp4
Gameplay (osu!taiko)
Allow osu!taiko hitsounds to fall back to classic skin rather than use non-taiko samples (#19467 by @frenzibyte)
Smaller changes
- Add taiko hitsound samples for the "drum" sampleset (ppy/osu-resources#206 by @frenzibyte)
Multiplayer
Fix multi-spectator potentially getting stuck for passed players (hotfix) (#19597 by @frenzibyte)
2022.810.0-multi-spectator-results.mp4
Smaller changes
- Fix host room status incorrectly showing "ended" after playing (#19668 by @smoogipoo)
Performance
Adjust pooling to fix stutters during some special beatmaps (#19587 by @peppy)
This basically means we are preloading more hitobjects. For weird edge cases like beatmaps containing sliders with 1,000 repeats or ticks, preloading is now heuristically aware and will prepare for the worst.
This should add minimal overhead during beatmap load but greatly smooth performance on more intensive beatmaps.
Smaller changes
Platform
Refactor android input handling (ppy/osu-framework#5317 by @Susko3)
This is especially important if the game/device is lagging. Previously we were dropping a lot of events. I expect the UI to feel marginally smoother with historic handling, and scrolling/dragging to be more precise.
Update SDL (ppy/osu-framework#5339 by @peppy)
Includes a fix for startup crashes on macOS with certain display configurations.
Smaller changes
Reliability
Fix common editor crash when returning from testing a beatmap (#19516 by @peppy)
Smaller changes
- Fix
ModelBackedDrawable
attempting to mutate children after disposal (ppy/osu-framework#5329 by @peppy) - Fix migration failing on single file copy failure (#19514 by @peppy)
- Fix playlist settings reference leak due to unsafe binding (#19536 by @frenzibyte)
- Guard against work being queued on an already-disposed
ThreadedTaskScheduler
(ppy/osu-framework#5320 by @peppy)
Skinning
Ensure skin samples are looked up in correct order (#19574 by @smoogipoo)
For skins which contained '.ogg' files, the lookup order may have meant that the skin samples were never used.
Song Select
Fix newly imported beatmaps not sorting into place correctly (#19532 by @frenzibyte)
Show "locally modified" pill when local modifications have been made (#19529 by @peppy)
2022.810.0-locally-edited.mp4
Add mod preset column to solo mod select overlay (#19622 by @bdach)
2022.810.0-mod-presets.mp4
This is only supported in solo for the time being, as it is the simplest case.
Smaller changes
- Add persistence of mod presets to realm (#19510 by @bdach)
- Fix song select not updating selected beatmap card on editor resume (#19479 by @frenzibyte)
- Along with all other components, selected beatmap card will get refreshed on screen resume to ensure it doesn't become out of sync.
- Add flow for deleting mod presets (#19613 by @bdach)
- Fix spurious sample playbacks from already-removed mod preset panels (#19651 by @bdach)
Testing
- Add test coverage of deserialisation of skin layouts (#19504 by @peppy)
- Add more missing realm
Refresh()
calls to new beatmap import tests (#19517 by @peppy) - Change all filter control button state test to until steps (#19570 by @peppy)
- Safely restore TPL capacity after test failures (ppy/osu-framework#5334 by @smoogipoo)
- Fix gameplay tests crashing when run multiple times (#19656 by @smoogipoo)
- Refactor dodgy test to avoid TPL exhaustion (ppy/osu-framework#5342 by @smoogipoo)
- Update multiple tests to use new assert output for easier to understand failures (#19664 by @peppy)
- Splitting out some of the larger auxiliary changes from incoming clock refactorings.
Tooling
- Isolate development builds' storage from release builds (#19513 by @peppy)
- I've also updated the game title/name to better know when an instance is running in development mode.
- Fix GetLocalisableDescription() crashing on unnamed enum values (ppy/osu-framework#5335 by @smoogipoo)
- Fix
TestBrowser
potentially crashing from null ref on quickly switching scenes (ppy/osu-framework#5333 by @peppy) - Unify usages of
GetCultureInfo
and fixLocalisationManager
throwing on invalid culture (ppy/osu-framework#5341 by @Susko3)
UI
Display readable error message when reaching download limit (#19522 by @frenzibyte)
Display connecting / failing states on toolbar user display (#19658 by @peppy)
2022.810.0-connection-interrupted.mp4
Smaller changes
- Prevent tags overflowing on beatmap info overlay (#19508 by @gutyina70)
- This isn't the final solution (pending larger design changes), but at least it looks more correct.
- Fix broken sheared button autosizing logic (#19538 by @bdach)
- Hide F rank from the beatmap overlay filter (#19535 by @naipofo)
- Fix textbox initial commit of empty string being considered "new" due to null equality (ppy/osu-framework#5331 by @peppy)
- Add missing icons to UserProfileRecentSection (#19323 by @LukynkaCZE)
- Unify implementations of deletion dialogs (#19612 by @bdach)
- Implement selection logic for mod preset panels (#19621 by @bdach)
UX
Prevent capturing arrow keys on playlist creation (#19507 by @naipofo)
You can now once again use the arrow keys to navigate song select during playlist creation.
Don't clear chat overlay textbox when pressing "back" key binding (#19543 by @peppy)
Fix FPS counter disappearing even when hovered (#19637 by @its5Q)
The intention was for it to stay visible when hovering, in case a user wants to monitor it for longer.
Fix incorrect FPS damping implementation (#19639 by @peppy)
Resolves a case where the FPS display would show way too high values after returning to the game from a suspended state. Also fixes the frame time display not updating to new values as fast as intended.
Smaller changes
New Contributors
- @gutyina70 made their first contribution in #19508
- @its5Q made their first contribution in #19637
Full Changelog: 2022.731.1...2022.810.0