2022.1205.0
Thanks for following along! This is a tagged release (2022.1205.0). For more information check out the osu! changelog page and dev blog.
Chat
Add ability to view recently sent chat messages using up/down arrows (#21228 by @Terochi)
Show mods, ruleset and unicode metadata in "now playing" chat command (#21420 by @cdwcgt)
Smaller changes
- Fix chat day separator not being added on pending message resolution (#21349 by @peppy)
- Fix system messages appearing out of order in chat display (#21463 by @peppy)
Code Quality
- Apply NRT to all zero-refactor cases (ppy/osu-framework#5519 by @peppy)
- Small code quality pass on
SDL2DesktopWindow
(ppy/osu-framework#5522 by @Susko3) - Refactor and simplify text builder bounds calculation (ppy/osu-framework#5520 by @frenzibyte)
- Fix potentially incorrect implementation of double-locking in
Drawable.Scheduler
retrieval (ppy/osu-framework#5533 by @peppy) - Refactor star "DifficultyRangeFilterControl" into generic range slider (#21428 by @mk56-spn)
- Fix inconsistent body style inspection (ppy/osu-framework#5558 by @peppy)
- Remove SmoothCircularProgress component as being replaced (#21502 by @EVAST9919)
Database
Add suffix when exporting replays with same filename to avoid overwriting (#21468 by @Piggey)
Editor
Fix sliders not correctly taking on full available length after changing curve type (#21268 by @peppy)
21268.mp4
Fix editor not always playing hitsounds with clock offsets applied (#21306 by @frenzibyte)
When returning to the editor after test play, use the original editor time rather than the point of exit (#21266 by @peppy)
Matches stable. Felt weird as we had it.
Add ability to seek between control points in editor using down/up arrows (#21387 by @peppy)
Fix osu!mania editor timeline showing bright-white blueprints (#21477 by @peppy)
Fix being able to place zero-length spinners (#21496 by @peppy)
Don't seek to current editor location when location is close to (or before) the first object (#21265 by @peppy)
21265.mp4
Smaller changes
- Create "streams" icon (ppy/osu-resources#228 by @OliBomby)
- For future use.
- Fix timeline potentially scrolling at extents while not dragging (#21293 by @frenzibyte)
- Hide scroll speed control from effects section on rulesets which don't support it (#21307 by @frenzibyte)
- Fix crash when hitting 'T' to tap timing while no timing point is selected (#21386 by @peppy)
- Ensure currently selected control point always scroll into view (#21434 by @jai-x)
- Fix incorrect culture used when parsing timeline popup textbox content (#21476 by @peppy)
- Allow custom rulesets to resolve assets better in the editor (#21405 by @LumpBloom7)
Framework
- Fix incorrect nullability specific on
ITrackableConfigManager
(ppy/osu-framework#5527 by @peppy) - Fix displays sometimes not getting updated and failing assertion (ppy/osu-framework#5523 by @Susko3)
- Cleanup
LocalisationManager
and related classes (ppy/osu-framework#5536 by @Susko3) - Refactor
LocaleMapping
lookup to require an exact match toFrameworkSetting.Locale
(ppy/osu-framework#5537 by @Susko3) - Correctly return
AVERROR_EOF
inVideoDecoder
(ppy/osu-framework#5539 by @Igoorx) - Implement TriangleBorder shader (ppy/osu-resources#227 by @EVAST9919)
- Fix wrong range constrained bindable value transferal in
CopyTo()
(ppy/osu-framework#5542 by @bdach) - Move early return conditions away from CircularProgress and CircularBlob shaders (ppy/osu-framework#5544 by @EVAST9919)
- Use fully qualified name to ensure uniqueness (ppy/osu-framework#5545 by @smoogipoo)
- Fix incorrect source gen in edge cases of dependency injection (ppy/osu-framework#5547 by @smoogipoo)
- Make all Drawable classes partial (ppy/osu-framework#5543 by @smoogipoo)
- Remove dFdx/dFdy usage in TriangleBorder shader (ppy/osu-resources#229 by @EVAST9919)
- Compute texel size in the DrawNode of TrianglesV2 component (#21432 by @EVAST9919)
- Simplify resolution of dependency injection candidates (ppy/osu-framework#5548 by @smoogipoo)
- Update dependency injection to use incremental source generation (ppy/osu-framework#5550 by @smoogipoo)
- Improve TrianglesV2 antialiasing (#21446 by @EVAST9919)
- Add missing localization in
DrawableComment
(#21450 by @Feodor0090) - Adjust search container logic to address game-side issues with hiding its children (ppy/osu-framework#5530 by @bdach)
- Add Roslyn 3.11 source generator package (ppy/osu-framework#5554 by @smoogipoo)
- Add multi target file to source generator package (ppy/osu-framework#5556 by @smoogipoo)
- Remove texture usage in TrianglesV2 component (#21460 by @EVAST9919)
- Update framework (#21503 by @peppy)
- Bump
dorny/test-reporter
action to 1.6.0 (#21506 by @bdach) - Emit
global::
prefix before type names in DI source generator (ppy/osu-framework#5565 by @bdach) - Add multi phase source generator test (ppy/osu-framework#5562 by @X9VoiD)
Gameplay
Display -
symbol when tracked in-game leaderboard score is below 50 (#21191 by @Piggey)
Add ability to display arbitrary beatmap information in skin layout editor (#21065 by @C0D3-M4513R)
You can now add beatmap metadata or arbitrary text to your skin layouts (in both song select and gameplay)! This allows for a lot of flexibility and should be a welcome addition for streamers and advanced players that don't want to rely on third-party applications.
21065.mp4
Smaller changes
- Standardise scores to
long
type (#21140 by @maromalo) - Add support for storyboards with incorrect path specifications (
\\
instead of\
) (#21356 by @peppy) - Update DrawableHitObject state based on entry result during LoadComplete (#21439 by @LumpBloom7)
- Fix loss of precision in ScoreProcessor.ComputeAccuracy() (#21517 by @smoogipoo)
Gameplay (osu!)
Add support for non-square skinned smoke textures (#21343 by @goodtrailer)
21343.mp4
Gameplay (osu!catch)
Rearrange osu!catch touch input areas for better ergonomics (#21224 by @honguyenminh)
21224.mp4
Ensure the mouse cursor is hidden when playing osu!catch with relax mod (#21467 by @peppy)
21467.mp4
Gameplay (osu!mania)
Realign white line on argon hold note ends to match hit target (#21360 by @peppy)
Fix osu!mania hold notes occasionally getting in a visually incorrect hit state (#21371 by @peppy)
21371.mp4
Smaller changes
Gameplay (osu!taiko)
Add back "kiai" time hit animation support in taiko skins (#21379 by @Joppe27)
Smaller changes
Online
Fix entering gameplay while network connection is in a bad state taking too long (#21288 by @peppy)
Stop requesting messages as part of initial chat presence (#21353 by @peppy)
No longer necessary with the new websocket-based chat. Reduces network overhead and makes chat load a lot faster.
Smaller changes
Performance
Reduce unnecessary texture overhead incurred by beatmap listing (#21277 by @peppy)
The two placeholder textures were loaded at startup, even though there's a chance they would never be used. This simplifies the content update flow and also fixes the issue.
Reduce overhead of audio components until they actually attempt to play a sound (ppy/osu-framework#5532 by @peppy)
Quite a large reduction in gameplay and song select allocations, should improve load times.
Use source generator for dependency injection (ppy/osu-framework#5541 by @smoogipoo)
Huge effort to reduce the reflection overheads of systems game-wide. This reduces allocations and CPU usage, especially during load procedures. It's huge, trust me.
Smaller changes
- Avoid loading overlay headers until first open (#21278 by @peppy)
- Fix news post images never unloading from memory after first display (#21279 by @peppy)
- Eagerly dispose of triangles intro textures to avoid holding for full length of game session (#21276 by @peppy)
- Fix
NowPlayingOverlay
loading background texture too early (and permanently) (#21284 by @peppy) - Initialise BufferedDrawNode FBOs as late as possible (ppy/osu-framework#5525 by @smoogipoo)
- Rewrite bar graph implementation to use more efficient quads (#21304 by @EVAST9919)
- Add
Bindable<T>.CopyTo
and use inGetUnboundCopy
implementation (ppy/osu-framework#5531 by @peppy) - Limit how far before the first hitobject that barlines can be generated (#21351 by @peppy)
- This is intended to fix runaway cases such as #21217.
- Rework source generator to cache more (ppy/osu-framework#5560 by @smoogipoo)
Reliability
- Fix "perform from screen" invoking action on non-loaded screens (#21299 by @frenzibyte)
- Catch and gracefully handle file/directory enumeration failures during stable import (#21267 by @peppy)
- Avoid crashing when a system audio device provides a
null
name (#21352 by @peppy) - Don't hard crash on incorrect drawable patterns when they wouldn't affect the end user (ppy/osu-framework#5534 by @peppy)
- Fix first-run setup overlay crashing on mobile platforms (#21512 by @frenzibyte)
Results
Hide spinner ticks / bonus from results screen when not applicable to score (#21350 by @peppy)
Settings
Add auto-advance support when binding for ruleset key bindings (#21270 by @peppy)
21270.mp4
Smaller changes
- Move "keybindings" keyword to correct section (#21269 by @peppy)
- Fix being able to bind two non-modifier keys to the same binding (#21292 by @peppy)
- Fix incorrect rounding of tablet aspect ratio values (#21205 by @Samaoo)
- Added "prefer original language metadata" toggle to first-run overlay (#21340 by @vegguid)
- Increase maximum aspect ratio for tablet settings to 23:9 / 2.55 (#21346 by @peppy)
Song Select
Change song select to only allow volume adjusting if alt is held while scrolling (#21377 by @peppy)
Smaller changes
- Disable certain beatmap option buttons when there are no beatmaps selected (#21244 by @nanashi-1)
- Change how leaderboard mod filter works to match web-side implementation (#21338 by @RATCM)
- Avoid changing ruleset when presenting a beatmap if it can be converted (#21417 by @peppy)
Testing
- Fix beatmap options test failure due to no beatmap selected (#21286 by @frenzibyte)
- Add some debugging for multiplayer test failures (#21290 by @smoogipoo)
- Fix intermittent present beatmap test failures (#21310 by @frenzibyte)
- Fix
TestSceneTabletSettings
falling off the bottom of the screen (#21344 by @peppy) - Fix broken rank graph test (#21366 by @bdach)
- Add test coverage of input near end of hold note with nearby subsequent note (#21372 by @peppy)
- Remove unnecessary caching in dependencies tests (ppy/osu-framework#5552 by @smoogipoo)
- Fix flaky test conditions in
TestSceneReplayDownloadButton
(#21465 by @peppy) - Attempt to fix flaky
TestHoldForMenuDoesWorkWhenHidden
(#21466 by @peppy)
UI
Implement TrianglesV2 component (#21225 by @EVAST9919)
Update most game buttons to use new outlined triangles style (#21403 by @peppy)
21403.mp4
Highlight ChatLine
username on hover (#21369 by @goodtrailer)
nobox.mp4
Smaller changes
- Fix triangle button flash effect looking incorrect (#21289 by @peppy)
- Fix first run beatmap screen button colours looking incorrect with new triangle effect (#21501 by @peppy)
UX
Add winner of Triangles mapping competition as a bundled beatmap (#21215 by @jai-x)
https://osu.ppy.sh/home/news/2022-10-06-results-triangles
Full Changelog: 2022.1129.0...2022.1205.0