2023.716.0
Audio
Add new notification sounds (#24145 by @nekodex)
Beep boop, new notification sounds.
The basic notification and error notification have been replaced with less ear-grating versions. This also adds distinct sounds for progress notifications, cancelling notifications, and chat highlight notifications.
Smaller changes
- Fix music sometimes restarting twice if exiting song select with no beatmap selected (#23888 by @peppy)
- Add new notification sound effect resources (ppy/osu-resources#268 by @nekodex)
Code Quality
- Apply NRT to all files where it can be easily applied (#24021 by @peppy)
- Fix NRT-related issues found game-side (ppy/osu-framework#5868 by @bdach)
- Apply required nullability changes in line with framework update (#24019 by @peppy)
- Fix
OpenUserProfile
links having multiple argument types (#24022 by @frenzibyte) - Rename taiko hitsounds to match standards (ppy/osu-resources#264 by @peppy)
- Move all remaining osu!taiko sample playback logic out of
DrawableHitObject
s (#24088 by @peppy) - Update
SDL2{Desktop}Window
usages in line with frameworkIWindow
changes (#24102 by @Susko3) - Add generated code hints in editorconfig / dotsettings (ppy/osu-framework#5908 by @peppy)
- Use OsuScoreProcessor in the scoring test scene (#24178 by @Zyfarok)
- Split texture upload performance test into own
TestScene
(ppy/osu-framework#5922 by @peppy) - Update localisation analyser packages (#24187 by @smoogipoo)
- Replace most usages of
IsDynamicCodeCompiled
withIsDynamicCodeSupported
(ppy/osu-framework#5914 by @frenzibyte) - Refactor performance test scenes (ppy/osu-framework#5927 by @peppy)
- Resolve
Clipboard
via DI (#24183 by @Susko3)
Database
Reattach any orphaned scores when a beatmap is imported (#24081 by @Cootz)
This means if you delete a beatmap then re-import it at a later point, your scores will automatically show up.
Smaller changes
- Fix delete difficulty flow not actually deleting the difficulty from realm (#24067 by @bdach)
- Fix incorrect realm copy logic when a beatmap becomes detached from its set (#24060 by @peppy)
- Bring realm library up-to-date (#24135 by @peppy)
- Ensure scores always have the correct linked
BeatmapInfo
(#24114 by @peppy)
Editor
Add support for Ctrl
+ <
/ >
to rotate selection in editor (#24059 by @peppy)
I've also added a visual effect when hotkeys are used to trigger the buttons for better visibility.
osu.Game.Tests.2023-06-27.at.08.03.30.mp4
Fix pressing Ctrl-C in composer not copying timestamp to system clipboard with empty selection (#24171 by @bdach)
Add beatmap drain time check (#24175 by @NiceAesth)
Fix slider blueprint placement not ending when clicking outside the playfield (#24181 by @peppy)
Improve performance when saving a beatmap with a large beatmap database (#24210 by @OliBomby)
Smaller changes
- Fix undo not working when flipping selection (#24070 by @peppy)
- Fix edge cases where selection buttons go outside playfield bounds (#24099 by @bdach)
Framework
Bump OpenTabletDriver version to 0.6.1.0 (ppy/osu-framework#5859 by @X9VoiD)
Includes support for many new tablets, and improved support for existing tablets.
Add support for alternative clipboard keys (ctrl-insert / shift-delete / shift-insert) (ppy/osu-framework#5870 by @peppy)
Generally considered windows first, but also seems to be supported on linux so let's just make them global.
Smaller changes
- Improve nested
ScrollContainer
tests (ppy/osu-framework#5845 by @Susko3) - Cleanup Veldrid shader resource layouts and add header guard (ppy/osu-framework#5857 by @smoogipoo)
- Remove assembly dropdown from visual test browser (ppy/osu-framework#5855 by @peppy)
- Maintains support for multiple assemblies but removes the dropdown as proposed a while back on discord.
- Don't apply
RenderBufferFormat
s to effect buffers (ppy/osu-framework#5865 by @EVAST9919) - Apply NRT to all files where it can be easily applied (ppy/osu-framework#5867 by @peppy)
- Update deployment workflow to automatically run on new tag (ppy/osu-framework#5873 by @peppy)
- Update veldrid (ppy/osu-framework#5876 by @peppy)
- Make
IWindow
andIGraphicsSurface
implementationsinternal
(ppy/osu-framework#5881 by @Susko3) - Work around iOS linker including
ApplicationServices
framework during compilation (ppy/osu-framework#5886 by @frenzibyte) - Fix game benchmarks being completely broken (ppy/osu-framework#5884 by @peppy)
- Fix game tools being rendered outside safe area (ppy/osu-framework#5887 by @frenzibyte)
- Fix frame statistics display showing
CADisplayLink
callback delays under "WndProc" time (ppy/osu-framework#5898 by @frenzibyte) - Pool and limit how many GC boxes can be displayed on
FrameStatisticsDisplay
at once (ppy/osu-framework#5899 by @peppy) - Fix
PerformanceOverlay
autosize not working due to incorrect anchor (ppy/osu-framework#5900 by @peppy) - Add back removed comment on creating texture images with no background specification (ppy/osu-framework#5910 by @frenzibyte)
- Add generated code hints in editorconfig / dotsettings (#24154 by @peppy)
- Redesign "local input" toggle in manual input tests to be more user-friendly (#24150 by @peppy)
- Apply code changes required for a future update to .NET 7/8 (ppy/osu-framework#5909 by @smoogipoo)
- Update framework (#24174 by @peppy)
- Make frame statistics display usable on mobile platforms (ppy/osu-framework#5897 by @frenzibyte)
- Fix
FrameBufferScale
not working whenPixelSnapping
is enabled (ppy/osu-framework#5926 by @peppy) - Fix texture uploads getting corrupted on Metal with non-Apple GPUs (ppy/osu-framework#5924 by @frenzibyte)
- Fix potential texture corruption on Veldrid (ppy/osu-framework#5928 by @frenzibyte)
- Revert vertex batch buffer changes (ppy/osu-framework#5930 by @peppy)
Gameplay
Allow notifications while the game is paused (or in break time) (#23972 by @peppy)
Add hotkeys to save / export replays (#23967 by @peppy)
Defaults to F1
to save and watch, F2
to export to a file in a similar way to osu!stable.
Add "Argon" skin key counter design (#23926 by @ItsShamed)
As with all components, this can be mixed-and-matched with other skins.
Remember state of replay settings visibility and allow key customisation (#24129 by @peppy)
Ctrl+H could already be used to hide the replay settings overlay, but you'd have to reapply it each time. Now the state is persisted, exposed in settings, and the key is customisable should you ever want to change it.
Add support for skinnable "retry" sound (#24134 by @peppy)
Fix incorrect slider stacking on very old beatmaps (#24188 by @peppy)
The stable code has had a bug in this logic forever. So we reimplemented the bug. That's how it be.
Allow autoplay to fail (#24197 by @peppy)
Feels more correct. Original logic to stopping fails was intended for user replays where the original score was not a failure, but in the case of autoplay, we should respect failures as it is an.. "actual" fail.
Smaller changes
- Adjust
GameplaySampleTriggerSource
to only switch samples when close enough to the next hit object (#23976 by @peppy) - Add links to nested objects' lifetime entries to
HitObjectLifetimeEntry
(#24118 by @bdach) - Fix fallback for
Judged
to be more correct (#24121 by @peppy) - Fix
GameplaySampleTriggerSource
not handling rewinds correctly (#24142 by @peppy) - Fix
GenerateTicks
being lost during osu! beatmap conversion process (#24165 by @bdach)
Gameplay (osu!catch)
Fix combo counter on legacy skins flipping when "Floating Fruits" mod is active (#23999 by @peppy)
Change "floating fruits" mod to only apply adjustments to the playfield (#24009 by @peppy)
Avoids things like touch screen inputs also being flipped.
Gameplay (osu!mania)
Fix 1 million score being unachievable on some mania beatmaps (#23917 by @bdach)
Due to complicate ordering stuff and new scoring changes.
Gameplay (osu!taiko)
Implement new argon osu!taiko hitsounds (#24119 by @peppy)
Second attempt, much more contained than last time.
Quoting @nekodex:
This PR aims to enhance Taiko hitsounding by adding more variety to in-game sample playback, without diverging too > much from the established or being too distracting. This is achieved through a few different methods, listed roughly > in increasing order of noticability:
- Adding (subtle) left/right panning depending on which side the player hits
- Support different hit/rim samples depending on hitobject volume (by default the thresholds are: 0-59 soft, 60-89 > medium, 90+ hard, but I envision these being changable by mappers). Similar idea to banks, but with less > distinctiveness between each. The goal was to (crudely) simulate how the timbre of real drums change as you hit them harder, allowing for quieter sounding hits during softer sections whilst still being able to belt it out during loud sections.
- Unique samples for strong hits and strong rim hits - I believe 'stable' osu! layered hitfinish on top of strong hits to do something similar, but this PR replaces that layering (for Argon) and handles the strong playback at input time so players can mash it for fun. This also fixes the issue with strong hits being too loud (due to identical sample being played twice) by cancelling playback of the first sample when a double-hit is detected.
- Added a 'flourish' sample to strong rim hits. By default these get added automatically to beatmaps (in reverse, to bias towards the end of combos), leaving at least 2s between each. I envision mappers will be able to add these in manually eventually
Legacy skins should still sound/behave as they did before, apart from balance changes.
Fix osu!taiko swells sometimes eating of upcoming hit objects (#24196 by @peppy)
Fix taiko maps sporadically not completing with Hidden mod active (#24233 by @chayleaf)
Smaller changes
- Fix taiko hit overlay animation timing not accounting for timing section start time (#24120 by @peppy)
Localisation
- Fix '?' instead of spaces used as separator for score numbers in some locales (ppy/osu-resources#265 by @bdach)
- Localise multiplayer countdown buttons (#24039 by @bastianpedersen)
- Update translations (ppy/osu-resources#266 by @peppy)
- Localise common game notifications (#24064 by @bastianpedersen)
- Localise chat related notifications (#24076 by @bastianpedersen)
- Use more correct localised string source for "sign out" text (#24068 by @peppy)
- Update localisations (ppy/osu-resources#267 by @peppy)
Multiplayer
Fix "goto beatmap" buttons not working while in a multiplayer room (#23974 by @peppy)
Broke recently. This time around, it supports all scenarios, including the one requested here
- If you are host, and at the match setup screen, it will update the beatmap to open the room with.
- If you are host and there's only one item in the playlist, it will open song select to edit that item.
- If you are host and there's more than one item, or if you are a player and the room supports it, it will open song select to add a new item.
Fix skip not always triggering in multiplayer (#24053 by @bdach)
Add handling of "unknown" beatmap availability in multiplayer flow (#24071 by @peppy)
Until now, the server was not resetting beatmap availability when the current beatmap changes. The clients would be left to update their state at their own accord. This was roughly okay, hinging on the fact that the client would not allow a user to enter the ready state unless they have the beatmap available (and the server was resetting ready states on beatmap change), but as we are now going to allow idle players to participate in gameplay, this needs to change.
Performance
Ensure triple buffer never uses the same buffer twice in a row (ppy/osu-framework#5853 by @peppy)
A safer way of implementing the draw node triple buffer. It ensures that the last read buffer will never be written to. This may be helpful in scenarios where an external resource (ie. the GPU) is still interacting with the last read object's content.
Reduce VBO buffer count to 2 (ppy/osu-framework#5896 by @peppy)
Reduces overall GPU memory overhead further towards sanity.
Disable front-to-back pass by default on all platforms (ppy/osu-framework#5905 by @peppy)
When it works well, it works very well (ie. in isolated tests) but it's very rare for performance improvements to be seen as a result of front-to-back being enabled.
I've chosen to leave it in the debug configuration manager so we have the option of toggling it on to test localised cases in the future.
Avoid initialising textures when unnecessary (ppy/osu-framework#5901 by @peppy)
This has insane performance effects across the whole game. Basically all my stutters are gone, including song select and player loading transition. These stutters were caused from buffered containers changing size and triggering this upload every frame.
Smaller changes
- Make shaders with passthrough layouts deterministic again (ppy/osu-framework#5889 by @smoogipoo)
- Fixers some shaders not being cached.
- Reduce complexity overhead (and avoid one copy) when obtaining character SSDQs in
SpriteTextDrawNode
(ppy/osu-framework#5883 by @peppy) - Switch osu!framework iOS projects to use AOT compilation on release configurations (ppy/osu-framework#5903 by @frenzibyte)
- Add basic visual performance test scenes (ppy/osu-framework#5904 by @frenzibyte)
- Add source generator for IsLongRunning property (ppy/osu-framework#5906 by @smoogipoo)
- Re-use vertex buffers after batch flushes until filled completely in Veldrid (ppy/osu-framework#5894 by @frenzibyte)
- Fix Veldrid texture uploads allocating new command buffers and resources (ppy/osu-framework#5911 by @frenzibyte)
- Add caching for Veldrid staging buffers in favour of
CommandList.UpdateBuffer
(ppy/osu-framework#5913 by @frenzibyte) - Add test scene covering vertex upload performance (ppy/osu-framework#5916 by @peppy)
- Revert recent changes to UBO upload method for non-metal renderers for now (ppy/osu-framework#5917 by @peppy)
- Add a fence pool for frame tracking fences (ppy/osu-framework#5921 by @peppy)
- Revert veldrid update (ppy/osu-framework#5929 by @peppy)
- Compute the top local rank directly without an expensive detach call (#24235 by @AkiSakurai)
Platform
Fix window rarely getting wrong size after switching window mode (ppy/osu-framework#5880 by @Susko3)
Improve DPI support on windows (ppy/osu-framework#5877 by @Susko3)
Improve Clipboard
support on android (ppy/osu-framework#5919 by @Susko3)
Smaller changes
- Fix android safe area not updating after returning to game with a different orientation (ppy/osu-framework#5872 by @Joehuu)
- Merge
app.manifest
s and let framework set DPI awareness options (#24092 by @Susko3)
Reliability
- Fix rare crash when binding textures under new renderers (ppy/osu-framework#5862 by @smoogipoo)
- Fix crash when mashing exit key to exit the game (#24141 by @peppy)
- Fix osu!mania scores failing to convert to new standardised score due to cast failure (#24219 by @peppy)
Results
Adjust results screen transition tweens to feel better (#24152 by @peppy)
The background no longer dims as much. This was a complaint as users want to be able to recognise the background when taking a screenshot. It will play better once I update the rest of the results statistics items to have their own backgrounds.
Before:
osu.2023-07-07.at.08.39.10.mp4
After:
osu.2023-07-07.at.08.37.18.mp4
Touch up various results screen component's metrics (#24204 by @peppy)
Baby steps.
Before | After |
---|---|
Smaller changes
- Fix timing distribution graph sometimes not displaying correctly (#24191 by @peppy)
- Make results / statistics visual testing easier with better data population (#24203 by @peppy)
- Fix some minor issues with results screen (#24206 by @peppy)
Scoring
Convert osu!stable imported scores to new standardised score algorithm (#24072 by @smoogipoo)
This will run in the background and is the final step to once again bring all lazer local score in line with each other, including those that were set on stable.
Make lazer aware of scores set on osu!stable with "ScoreV2" mod (#24169 by @bdach)
Settings
- Update design of "revert to default" button (#24199 by @peppy)
- I keep getting feedback that the old design looked like anything but a button to revert defaults. Including people clicking it expecting opposite behaviour.
This is intended to be a temporary design until we get the full new UI components online (where this is moved to the right-hand-side).
before | after |
---|---|
Skin Editor
Disable beatmap skinning support when entering the skin editor (#23975 by @peppy)
This avoids user skins getting polluted with beatmap specific changes.
Song Select
Add exact match support for song select searches (#24045 by @peppy)
You can now search for "exact matches"
of phrases.
Add "title=" search support at song select (#24057 by @peppy)
Add support for matching full terms at song select using suffixed !
(#24058 by @peppy)
You can now search for "full exact matches"!
.
Given the following beatmap artists:
- artist
- The artist name
- The artistic
You now have three methods of searching:
artist
will match all three (term can appear anywhere, even inside a word)"artist"
will match the first two (term must be isolated in a phrase, not inside a word)"artist"!
will only match the first (full term must match)
The !
suffix is non-standard, but feels like it will work well and also be easy for users to remember. It also has the advantage that you can add it without moving the cursor backwards in the string (which... is not currently possible at song select).
Works with artist="test"!
style searches too.
Increase the minimum size of the scroll bar (#24097 by @peppy)
Allows easier targeting when there is a lot of content in the scroll view
Remove beatmap info wedge rotation animation (#24137 by @peppy)
It looked jank and also causes performance overheads (since fixes). But mostly because it looked jank.
Allow saving changes to mod presets using enter key (#24202 by @peppy)
Also removes hiding of the mod overlay when no search is entered. This felt a bit weird in hindsight.
Tournament
Tint username of team members in tournament chat according to the team colour (#23890 by @cdwcgt)
Use beatmap cache to populate beatmap information in tournament client (#24037 by @cdwcgt)
Can greatly speed up initial population when the number of beatmap that should be requested is small and the team count is large.
Smaller changes
- Fix tournament chat potentially crashing due to null current match (#24033 by @cdwcgt)
- Fix tournament bracket parsing regression (#24139 by @peppy)
UI
Only require exit confirmation when there are background operations (#23987 by @peppy)
This reduces the amount of unnecessary prompting when exiting the game under most scenarios, unless there'a an import or download happening in the background.
- When exiting to install an update, the user is not prompted for confirmation unless there are ongoing operations
- When performing an operation that requires a restart (ie. changing rendrer) on a platform that supports it (ie. windows) the game will no longer confirm and will automatically restart as one would expect.
- When there are ongoing operations, a dangerous confirmation is required, and a list of the ongoing operations is shown in the confirmation dialog.
osu.2023-06-23.at.06.31.13.mp4
Update login overlay appearance to match new designs (#23331 by @letsgoawaydev)
Before | After |
---|---|
Remove the ability to cancel all "in progress" tasks (#24144 by @peppy)
I don't think anyone would want to do this. It could only be a misclick. For ongoing operations, a user should have to cancel each one manually.
Smaller changes
- Disable posting comments when logged out (#23971 by @tybug)
- Exclude U+202F NARROW NO-BREAK SPACE from being treated as fixed-width (ppy/osu-framework#5869 by @bdach)
- Never remove significant digits from star rating displays (#24080 by @peppy)
- Ensure "tablet support disabled" notification is only shown once (#24087 by @peppy)
- Fix cancelled progress notifications requiring exit confirmation (#24115 by @peppy)
- Add length limit to chat text box (#24173 by @bdach)
- Replace emoji unicode with
[emoji]
(#24190 by @novialriptide)
New Contributors
- @jtbiddle made their first contribution in #23729
- @Renzo904 made their first contribution in #23312
- @FrBst made their first contribution in #23946
- @letsgoawaydev made their first contribution in #23331
- @Zyfarok made their first contribution in #24178
- @NiceAesth made their first contribution in #24175
Full Changelog: 2023.605.0...2023.716.0