Thanks for following along! This is a tagged release (2022.1117.0). For more information check out the osu! changelog page and dev blog.
Audio
Add sound effect for disabled components (ppy/osu-resources#224 by @nekodex)
21097.mp4
Smaller changes
Beatmap Listing
- Fix beatmap cards still potentially showing twice in listing (#21109 by @frenzibyte)
Chat
Receive chat messages in real-time (#20991 by @smoogipoo)
Chat now uses the newer websocket API, allowing more efficient and faster delivery of chat messages. This also paves the path forward towards in-game notifications (that match the experience you get on the website).
20991.mp4
Smaller changes
- Remove chat messages from silenced users (#21073 by @smoogipoo)
Code Quality
- Generalise
HubClientConnector
intoSocketClientConnector
(#20990 by @smoogipoo) - Clean up taiko classes in preparation for new skin implementation (#21074 by @peppy)
- Remove nullable disable in the checks. (#21017 by @andy840119)
- Fix
FrameworkSetting.Locale
not changingInputThread
culture (ppy/osu-framework#5504 by @Susko3) - Apply nullability considerations to all skin related classes (#21183 by @peppy)
- Remove triangles skin specific implementation from base osu!taiko
DrawableHit
(#21171 by @peppy) - Skinnable class naming pass (#21184 by @peppy)
- Fix NRT causing CI failure (#21197 by @Susko3)
- Move first tick tracking logic inside
TickPiece
(#21150 by @peppy) - Move major barline portion to default implementation to allow for further customisation (#21148 by @peppy)
- Fix various issues surrounding hit judgements (#21151 by @peppy)
- Remove
internal
access modifier fromCompositeDrawable.AddInternal
(ppy/osu-framework#5510 by @peppy) - Apply NRT to all zero-refactor cases (ppy/osu-framework#5519 by @peppy)
Comments
Add ability to report comments (#20765 by @Feodor0090)
Editor
Add conversion algorithm for lazer slider curves to work with stable (#20952 by @OliBomby)
This code is largely ported from my Mapping Tools code base. The part about CircularArcProperties
is copied from osu!framework and it would require a change to framework to make that thing public to prevent code duplication. Will be used in the future to make lazer beatmaps work better when exported to .osz
format.
Fix editor playing too many sounds when user performs a manual seek during playback (#21185 by @peppy)
Add the ability to toggle off hit marker displays in the editor (#21173 by @peppy)
21173.mp4
Add ability to toggle background dim in editor (#20907 by @cdwcgt)
20907.mp4
Smaller changes
- Fix editor selection behaviour regressions due to new path visualiser optimisation (#21122 by @peppy)
- Fix editor hard crash when beatmap file specified out-of-range timeline zoom value (#21147 by @peppy)
- Fix combo colour normalisation setting not applying to editor test play (#21257 by @peppy)
Framework
- Update dependencies (#21115 by @peppy)
- Implement antialiasing for CircularProgress shader (ppy/osu-framework#5465 by @EVAST9919)
- Fix disabling
UseFullGlyphHeight
does not trim top part of sprite text glyphs (ppy/osu-framework#5427 by @HiddenNode) - Default
CurrentCulture
to system culture (ppy/osu-framework#5505 by @Susko3) - Cursor trail shader: target rounded fragment shader (ppy/osu-resources#226 by @Tom94)
- Target rounded fragment shader (#21208 by @Tom94)
- Fix possible NRE in
GetAsync
betweenDllResourceStore
andResourceStore
(ppy/osu-framework#5514 by @Flutterish) - Fix
FallbackSampleStore.GetAsync
fallback logic (#21227 by @Susko3) - Fix
Dropdown
callingGenerateItemText
before it's loaded (ppy/osu-framework#5516 by @Susko3) - Make
IBindable : IFormattable
to allow formatting its value withInvariantCulture
(ppy/osu-framework#5515 by @Susko3) - Refactor
SpriteIcon
tests to allow slowly adding new icons (ppy/osu-framework#5517 by @peppy)
Gameplay
Fix automated skip not skipping more than once when required (#21093 by @peppy)
Normalise combo colour brightness (#20736 by @smoogipoo)
This aims to resolve long standing issues that people have historically had where you can get blindsighted by a beatmap having very dark combo colours. It's more important with the new "argon" skin which requires a certain amount of contrast to look good and be usable.
20736.mp4
Smaller changes
Gameplay (osu!)
Add arc-shaped progress bars to "argon" spinner (#20793 by @frenzibyte)
Second pass on "argon" spinner, mainly including the arc-shaped progress bars on the sides which have been pending framework-side support for the rounded caps.
Fix slider ticks appearing before sliders are done snaking in with Freeze Frame (#21235 by @mk56-spn)
21235.mp4
Smaller changes
- Fix spinner centre size being updated every frame using transforms (#21095 by @peppy)
- This led to bad looking animation (and a lot of performance overhead).
Gameplay (osu!taiko)
Fix taiko barlines not rendering correctly (#21165 by @frenzibyte)
First pass osu!taiko "argon" skin (#21153 by @peppy)
21153.mp4
Smaller changes
- Difficulty Calculation: Basic tl-tapping consideration for stamina (#20558 by @vunyunt)
- Fix argon and triangles swells incorrectly flashing on every hit (#21243 by @peppy)
- Add basic osu!taiko "argon" swell visual (#21256 by @peppy)
Performance
Remove all usage of Add
/RemoveMemoryPressure
(ppy/osu-framework#5506 by @peppy)
Especially in cases like song select, we are churning a lot of GPU memory. This will eventually be fixed, but until then it seems that making the GC aware of this usage is detrimental to performance. In some very non-scientific benchmarks, removing these calls reduced gen 2 GC run counts by around 40-50% while paginating at song select.
Use (high resolution) waitable timers on windows when available (ppy/osu-framework#5501 by @peppy)
Intends to fix the remaining inaccuracy that can be seen when running at frame rates close to the maximum precision provided by Thread.Sleep
on windows.
You can count the individual frames being run. In both profile runs above, the reported frame rate is 1,000, but in the first multiple frames were being coalesced into single back-to-back executions (which is basically pointless to us).
Don't yield when game can't keep up (ppy/osu-framework#5503 by @peppy)
This might help marginally in cases where the game is not able to keep up with the user's specified frame limiter, by removing the yield overhead (~0.2ms for me, but maybe higher on lower end hardware).
Especially when users have "game mode" enabled, this should be beneficial with no downsides.
Use rounded fragment shader exclusively (ppy/osu-framework#5512 by @Tom94)
Apply pooling support to hit error metres (#21240 by @peppy)
Fixes one of the remaining large sources of drawable allocation churn during gameplay.
Settings
Fix inaccurate tablet area dimensions when applying aspect ratio (#21192 by @Samaoo)
When applying my current aspect ratio 16:9
to my tablet width 165mm
, the height will be 92mm
, but when you calculate it 165/(16/9)≈92.8
it's closer to 93mm
. This fixes that and also moves the calculation into functions because there are multiple occurrences.
Fix default value being wrong for 24 hour time preference (#21164 by @Susko3)
Fix "reset to full area" button not always working correctly (#21255 by @peppy)
Song Select
Maintain selection of common mods when switching rulesets (#20758 by @frenzibyte)
Matches stable, and generally saves the effort of checking out a mod between different rulesets without having to re-select it every time.
20758.mp4
Storyboard
- Fix sprites not displaying in storyboard if filename extension is missing in script (#21168 by @peppy)
- Fix some issues with storyboard variables (#21167 by @peppy)
- Fix incorrect handling of storyboard events with
end_time
beforestart_time
(#21144 by @peppy)
Testing
- Fix velocity test failing with no audio device (#21094 by @smoogipoo)
- Fix failing gameplay bindings test (#21207 by @bdach)
- Load genuine font for text builder test in favour of hardcoded glyph numbers (ppy/osu-framework#5518 by @frenzibyte)
Tooling
- Fix Realm package downgrade issue in mobile projects (#21126 by @bdach)
- Add script helpers to use local framework (#21134 by @peppy)
- Change game thread prefixes to suffixes (ppy/osu-framework#5502 by @peppy)
- Log sources of VBO flushes (aka batching interruptions) to global statistics (ppy/osu-framework#5509 by @peppy)
- Add helper scripts for using local resources (#21209 by @bdach)
- Fix tool overlays not scaling with DPI / window size (ppy/osu-framework#5511 by @peppy)
- Display tool overlays in front on toggle (ppy/osu-framework#5513 by @peppy)
Tournament
- Increase the maximum seed range for tournament client (#21092 by @peppy)
- Fix multiple issues with seeding screen in tournament client (#21154 by @peppy)
UI
Standardise "Visual Settings" components to fix mismatched paddings and labels (#21070 by @peppy)
Add ability to click user profile badges (#21111 by @Joehuu)
Adjust transition effect for main menu backgrounds (#21118 by @peppy)
Reduces the amount of concurrent motion to give a better overall experience.
21118.mp4
Make chat line timestamp adjust to 24-hour time setting (#21145 by @Joehuu)
Improve song select transition to gameplay (#21112 by @peppy)
Replaces the screen-wide scale with an animation that feels less bad.
21112.mp4
Update settings UI animation to better suit immediacy of sound effects (#21121 by @peppy)
osu.Game.Tests.2022-11-04.at.10.08.29.mp4
Improve triangles particle effect (#21242 by @EVAST9919)
Fixed changing triangle scale may cause big problems
Previously changing the scale was not causing AimCount
to recompute, which could cause big problems when changing the scale of already drawn triangles. Example: set scale to something small, so there are thousands of triangles being drawn, then increase the scale. Now we have thousands of big triangles rendered, which causes massive performance drop.
Fixed incorrect number of added triangles
This is was caused by a small overlook which caused half of needed triangles being drawn on first frame which leaded to other half to be added on the second one and looked as a bias in random function.
Improved triangles distribution on initial draw
Smaller changes
- Fix multiple notifications arriving for imports in edge cases (#21071 by @peppy)
- Fix preposition for exclusive fullscreen prompt (#21135 by @CenTdemeern1)
UX
Improve clickable area of beatmap card icon buttons (#20743 by @frenzibyte)
CleanShot.2022-10-13.at.15.41.16.mp4
Always display menu cursor when game is not focused (#21163 by @frenzibyte)
Automatically close settings and notification overlays when opening main overlay (#21166 by @peppy)
Change default beatmap listing key binding to Ctrl
+B
(#21203 by @peppy)
Makes more sense as a default.
Smaller changes
- Fix parsing of
Language
when using system default language (#21199 by @Susko3) - Fix beatmap card expanded content not blocking clicks from behind (#21226 by @Joehuu)
New Contributors
Full Changelog: 2022.1101.0...2022.1117.0