Thanks for following along! This is a tagged release (2022.621.0). For more information check out the osu! changelog page and dev blog.
Code Quality
- More clean-up work on realm/beatmap import flow (#18712 by @peppy)
- More model importer clean-ups (delete
BeatmapModelManager
) (#18733 by @peppy) - Remove
RealmArchiveModelManager
from hierarchy (#18734 by @peppy) - Remove one more
RealmArchiveModelImporter
Import
method (#18776 by @peppy) - Remove null default value in
ImportSkinTest
helper method (#18778 by @bdach) - Remove necessity to provide
BeatmapDifficultyCache
as a function toScoreManager
(#18779 by @peppy) - Rename importer
PostImport
toPresentImport
and add properPostImport
(#18780 by @peppy)
Database
- Fix database migration potentially hard crashing during backup process without informing the user why (#18731 by @peppy)
- Silence exception and provide more log output when import fails due to empty
.osu
files (#18777 by @peppy)
Difficulty Calculation
Rework double-tap detection in osu!'s "Speed" evaluator (#18692 by @apollo-dw)
Addresses pp awarded by maps such as this one being far too high.
Desmos link for the maths: https://www.desmos.com/calculator/vr8nzfqo4b
Rankings for this proposal: https://pp.huismetbenen.nl/rankings/players/apollo2
This proposal rebalances the state of doubletappable doubles, punishing them more accurately for how easily cheesable they are. This is done by calculating the time to press the current and next object, as well as comparing the intervals to the 300 hitwindow.
This takes advantage of the fact we can access the next object to work out the "doubletapness" of the current object, can refer to the code / desmos since it pretty much speaks for itself... also switches strain decay to take in StrainTime
instead of DeltaTime
. Results here appear to be a lot better IMO than the previous iteration on quite a few notable maps with cheesable doubles / 2B.
Editor
Fix new hitobject placements not taking on the existing sample settings (#18754 by @peppy)
Similar to velocity / difficulty points, a user expectation is that volume and sample settings will be transferred to newly placed objects from the most recent one.
Fix adjusting offset via button seeking to timing point's offset unexpectedly (#18762 by @peppy)
This was added with the intention of tracking the offset when already at the start (the most common case when you're using the tap timing wizard), but was also seeking when the user may be much further beyond or before it.
New audio feedback for metronome (#18744 by @nekodex)
Now with a unique tick sound, different for downbeats. Also a nice click when locking into the stopped position.
Smaller changes
- Cancel previous metronome sound playback on pause (#18752 by @frenzibyte)
- There is still mistimed sound playback when pausing/resuming rapidly, but that's pending further discussion.
- Avoid filename issues by using specific names for audio and background files (#18703 by @frenzibyte)
- To avoid issues with unicode text and what not, background and audio tracks now get automatically renamed to
bg.xyz
/audio.xyz
. This also matches stable editor behaviour (for the audio track at least).
- To avoid issues with unicode text and what not, background and audio tracks now get automatically renamed to
- Always use beatmap ruleset in editor gameplay test mode (#18771 by @bdach)
- Fix metronome playing mistimed beat sounds on editor clock resume (#18753 by @frenzibyte)
Input
Fix toolbar music button handling keys while not hovered (#18737 by @frenzibyte)
This was a regression in the last release, causing volume to be adjusted during gameplay when using arrow keys. Sorry about that!
Fix skin editor scene selection buttons not working (#18761 by @frenzibyte)
This was another oops in the last release. All fixed.
Localisation
- Update crowdin strings and pulled localisations (ppy/osu-resources#198 by @peppy)
Multiplayer
- Block multiplayer operations until beatmap selection completes (#18708 by @smoogipoo)
Platform
Fix crash on android when pressing multiple mouse buttons at once (ppy/osu-framework#5252 by @peppy)
Add mouse input settings for android and iOS (#16464 by @Susko3)
Add ability to handle osu://
scheme links via IPC on desktop (#18786 by @bdach)
Worked until now when the game wasn't open, but this also allows clicking external links while the game is already running.
Note that further association work is reuired to make this work on windows still.
Reliability
- Add several protections when creating game-global available mods (#18715 by @bdach)
- Fix unsafe sample playback in
GameplaySampleTriggerSource
(#18728 by @peppy) - Fix
Disclaimer
screen handling user change events after initial display (#18726 by @peppy) - Fix skin editor crash if dragging a selection while exiting (#18747 by @ggliv)
Spectator
Reset spectator speed after the last frame is reached (#18768 by @smoogipoo)
Now if spectator mode is set to playback gameplay at over 1x, it will reset to 1x on catching up to the user's play.
Tooling
- Run template tests on CI (#18723 by @smoogipoo)
- Add templates to compile + inspectcode, deploy templates with framework (ppy/osu-framework#5250 by @smoogipoo)
- Add explicit
Exported = true
toAndroidGameActivity
(ppy/osu-framework#4966 by @Susko3) - Enable NRT by default (#18743 by @smoogipoo)
- Work around macOS agent regression affecting iOS CI builds (ppy/osu-framework#5253 by @frenzibyte)
- Implement search text box within the draw visualizer (ppy/osu-framework#5254 by @naoei)
Tournament
Improve tournament player JSON storage using lightweight model (#18750 by @frenzibyte)
This is a first step towards improving the overall size of brackets JSON file on larger tournaments, as requested in #18681.
On a tournament with only 8 teams in which each team consists of 3 players, this lowers the overall size of the brackets JSON file from 75.4KB down to 8KB, i.e. 90% off.
Improve tournament beatmap JSON storage using lightweight model (#18751 by @frenzibyte)
On a tournament with one round beatmap and one seeding beatmap, this lowers the overall size from 20KB down to 4KB (~80% off).
UI
Replace flag assets with twemoji-derived ones matching web (ppy/osu-resources#197 by @bdach)
Smaller changes
UX
Silence important notifications during first-run setup (#18695 by @frenzibyte)
Previously the first run overlay could be rudely dismissed by a notification arriving. Now notifications will be delayed until it finishes.
Fix "see you next time" getting cut off when restarting for update (#18760 by @peppy)
Now the restart-for-update flow follow a more standard game exit sequence. Note that this means a confirmation is shown. This will only show in the future when required (ie. when a download will be interrupted), rather than on all restarts.
Smaller changes
- Fix mouse cursor not displaying on menu elements while in latency certifier (#18736 by @frenzibyte)
Full Changelog: 2022.615.0...2022.621.0