Skip to content

Releases: ppy/osu

2023.812.0

12 Aug 12:40
d2baffa
Compare
Choose a tag to compare

Editor

Fix legacy beatmap exports not working correctly for osu!catch banana showers (#24511 by @bdach)

Reliability

Full Changelog: 2023.811.0...2023.812.0

2023.811.0

11 Aug 18:14
Compare
Choose a tag to compare

Code Quality

  • Fix nullability inspection in NowPlayingOverlay (#24421 by @bdach)
  • Remove #nullable disable in tournament (#24409 by @cdwcgt)

Cosmetic

Add kiai fountains to main menu (#24208 by @peppy)

osu.2023-07-13.at.11.30.12.mp4

Fix now playing overlay occasionally showing incorrect background (#24418 by @peppy)

Smaller changes

Editor

Change beatmap editor to always select the closest object in time via clicking (#24289 by @peppy)

Matches osu!stable.

osu.Game.Tests.2023-07-19.at.07.58.34.mp4

Add support for cyclic selection in beatmap editor (#24291 by @peppy)

osu! 2023-07-19 at 08 26 24

Update various editor design language (and centre playfield / timeline) (#24220 by @peppy)

Brings us closer to the latest designs. Also centres the playfield and timeline centre as proposed in #24207.

Before After
osu! 2021-09 at 10 49 13 osu! 2023-07-14 at 10 48 13

Fix "key count" setting showing as "circle size" in osu!mania editor (#24317 by @peppy)

Add ability to export beatmaps from editor in a stable-compatible format (#24186 by @OliBomby)

This adds a menu button that lets you explicitly export a beatmap set for compatibility with osu!stable. With this feature it becomes a lot more feasible to create beatmaps in Lazer using the full range of features available in Lazer.

osu!_U9q1Aii7XI

The default 'For editing' option now creates the file extension '.olz' (osu! lazer zip) which is accepted by osu! lazer but not by osu! stable, while 'For compatibility' creates a '.osz' file which obviously is accepted by both osu! stable and lazer. This makes it less likely to confuse the two formats.

Note that the 'For compatibility' option is not lossless, and as such shouldn't be used for cases where you want to make further adjustments to the beatmap.

Improve visuals of editor spacers (#24333 by @peppy)

Before After
2023-07-23 14 13 51@2x 2023-07-23 14 13 06@2x

Fix editor blueprints being selectable for too long when hit markers are enabled (#24288 by @peppy)

Smaller changes

  • Add checks for breaks obtained via external edits (#24259 by @NiceAesth)
  • Fix osu!taiko editor playfield getting cut off incorrectly (#24374 by @peppy)
  • Disallow interacting with the global track state in Player and Editor (#24361 by @peppy)
  • Refactor rotation handling in editor to facilitate reuse (#24341 by @bdach)
    • A starting point required to implement more advanced manipulation controls, like the rotation dialog everyone's waiting for.
  • Block beatmap editor from testing/exiting/exporting when saving fails (#24467 by @Joehuu)

Framework

Gameplay

Change offset calibration control to adjust for all difficulties of the current beatmap set (#24290 by @peppy)

Generally all difficulties in a beatmap set share the same timing information, so it only makes sense to apply a user offset everywhere.

Fix storyboard being see-through in some contexts (#24443 by @peppy)

Before After
osu! 2023-08-02 at 06 51 22 osu! 2023-08-02 at 06 49 48

Gameplay (osu!)

Change spinner rotation animation to match input 1:1 (#24360 by @peppy)

Originally this was halved to make the newer designs look "better" (subjectively) but in testing I think it's fine to apply this across the board. It definitely feels better as a user to have non-slipping control over spinners.

Gameplay (osu!taiko)

Fix not always being able to hit objects when "hidden" mod is applied (#24305 by @chayleaf)

Integration

Fix discord not displaying status after being closed while osu! is running (#24189 by @peppy)

Originally disabled due to performance concerns. Performance issues have now been fixed.

Multiplayer

Add ability to toggle all free mods quickly at multiplayer song select (#24294 by @peppy)

Until now, one would have to open up free mod select and click select all to enable all free mods. Given how common enabling free mods is, the button now allows direct toggling and saves a few clicks.

osu.2023-07-19.at.10.09.35.mp4

General visual improvements to mutliplayer spectatator screen (#24415 by @peppy)

This is an initial pass before I try some more experimental changes.

  • Individual screens now have rounded corners and shadows
  • The zoom-to-focus now doesn't completely hide other screens, and should feel better in general
  • The game toolbar is hidden when entering multiplayer spectator
2023-07-30.02.42.00.mp4

Fix multiplayer spectator not correctly proceeding to the next beatmap in all cases (#24438 by @peppy)

Improve choice of where to start playback of multiplayer spectator (#24448 by @peppy)

This was originally intended to try and fix the startup delay, but the majority of the delay comes from elsewhere.

Regardless, this algorithm should be much better than what we had (and avoid situations where one client being super far behind delays start of the session by forcing you to watch them catch up).

Smaller changes

  • Fix deadlock when logging out while at the create match screen (#24295 by @peppy)
  • Fix multiplayer screen transitions not always working as expected (#24422 by @bdach)
  • Fix centred player not animating correctly (#24440 by @peppy)

Performance

Improve vertex upload performance significantly on iOS (ppy/osu-framework#5931 by @frenzibyte)

With the new performance test scenes we have, VBO uploads have shown to be quite poor on iOS, even when building in AOT.

After multiple days of investigation (interrupted by regressions in our rendering systems), it turns out the intermediate vertex storage allocated in VeldridVertexBuffer have a significant hit on performance. In an isolated environment, there's +7ms aggregate CPU overhead when uploading to an intermediate vertex storage followed by uploading to the GPU buffer, from uploading & drawing 10k quads.

Shaving that overhead off improves performance on iOS significantly, especially in scenes with a high number of vertex uploads.

Re-enable AOT on android / iOS to greatly improve performance (#24338 by @frenzibyte)

This was disabled when we switched to the new renderer because it was crashing. It turns out this had a huge effect on performance.

This also enables Mono Interpreter as a fallback for areas where dynamic code is utilised. I will look into the steps necessary to remove it to close up any remaining possibilities for gains, but I'll do that as a separate follow-up effort later because building osu! with AOT compilation is quite a tedious task, and the performance gain in this PR alone is probably more than enough.

This adds a magnificent boost in rendering performance on iOS and android. Anyone who's been struggling with performance before on their iPhones/iPads should give this release a try!

Note that due to a startup crash, this is only live for iOS this time around. We'll revisit android!

Fix beatmaps being queued for reprocessing every startup when logged out (#24350 by @peppy)

Smaller changes

Read more

2023.803.0

03 Aug 07:36
Compare
Choose a tag to compare

A hotfix for a critical issue.

Gameplay

Fix global timing potentially entering a bad state (#24449 by @peppy)

This is likely responsible for offset drift some users have reported. As a result of this bug, interpolation of audio is being bypassed by per-frame seeks when things enter a bad state.

Hard to really explain why this happened or what it will affect, but trust me that this is serious enough to warrant its own hotfix only days before the next major release.

Full Changelog: 2023.717.0...2023.803.0

2023.717.0

16 Jul 19:56
a472fe6
Compare
Choose a tag to compare

Hotfix release

What's Changed

  • Fix potential crash in confirm exit dialog while attempting to exit game by @bdach in #24246
  • Fix several issues in multiplayer exit-on-disconnection flow by @bdach in #24255

Full Changelog: 2023.716.0...2023.717.0

2023.716.0

16 Jul 10:35
50e6f0a
Compare
Choose a tag to compare

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

Code Quality

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)

image

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

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 w...
Read more

2023.621.0

21 Jun 04:13
Compare
Choose a tag to compare

video changelog

What's Changed

Code Quality

Editor

Fix gameplay playfield border being affected by beatmap track time (#23767 by @peppy)

Add beat snap grid for osu!catch editor (#23770 by @peppy)

Add ability to cycle beat snap divisor using hotkeys (#23799 by @peppy)

Defaults to Ctrl+Shift+Wheel (as per stable).

Reduce the radius of note-to-note snapping in osu! editor (#23812 by @peppy)

Ball-parked to match stable as close as possible. Allows for more precise positioning.

Improve usability of beat divisor control (#23722 by @peppy)

A few changes of interest here:

  • Remember the last used custom divisor when cycling divisor types
  • Adds support for cycling back to the last custom divisor used. Previously it would be lost after switching back
    to common or triplets.
  • Use better defaults of 1/4 and 1/6 when cycling types

Add setting to limit distance snapping to current time (#23837 by @peppy)

You can now choose whether the distance snapping grid allows placing objects in the past/future, or behaves like
stable (only allowing placement at the current point in time).

Fix performance degradation at timing screen when seeking far into track (ppy/osu-framework#5843 by @peppy)

before after
osu Framework Tests 2023-06-16 at 07 41 08 osu Framework Tests 2023-06-16 at 07 40 21

Fix distance snap grid circles not correctly being centred on snap point (#23938 by @peppy)

before after
Pixelmator Pro 2023-06-16 at 08 21 16 Pixelmator Pro 2023-06-16 at 08 22 25

(red lines are added in post to show the centre point)

Smaller changes

  • Fix weird right-toolbox distance snapping display in osu!catch editor (#23832 by @peppy)
  • Fix playback controls in editor handling key repeat when they probably shouldn't (#23904 by @peppy)

Framework

Gameplay

Add animations to the argon key counter (#23751 by @ItsShamed)

ryou.mp4

Still coming soon (tm) to gameplay pending actual skinnable component implementation..

Fix audio adjustment settings not displaying while watching a replay (#23841 by @peppy)

Adjust argon progress display to work well on bright backgrounds (#23884 by @peppy)

before after
osu Game Tests 2023-06-12 at 07 26 47 osu Game Tests 2023-06-12 at 07 28 31
osu Game Tests 2023-06-12 at 07 27 30 osu Game Tests 2023-06-12 at 07 28 45
osu Game Tests 2023-06-12 at 07 31 58 osu Game Tests 2023-06-12 at 07 29 43
osu Game Tests 2023-06-12 at 07 32 10 osu Game Tests 2023-06-12 at 07 29 01

Note that these screenshots are worst-case scenarios. Generally beatmap backgrounds are not pure white (and users have
some degree of background dim).

Smaller changes

  • Don't show offset calibration controls when "relax" mod is active (#22934 by @peppy)

Gameplay (osu!)

Fix black jaggies around argon hitcircles (#23853 by @smoogipoo)

before after
image image

Fix not being able to receive full score for extremely short sliders with repeats (#23866 by @bdach)

This case seems relatively rare, so it's probably not worth a special hotfix. This is also why I'm not bumping the score
version in the legacy score encoder again.

Add "Synesthesia" mod for osu! ruleset (#23520 by @jtbiddle)

This is a mod for osu!standard that colors hit circles and sliders based on their beat division in the song. For
example, objects that are on full notes are white, half notes are red, and quarter notes are blue. This is a simple
implementation using the function for the snap coloring preference in osu!mania, and shares the same colors. I
implemented this in an attempt to make reading complicated rhythms easier, especially for low AR or hidden.

snapcolour.mov

Gameplay (osu!mania)

Update argon osu!mania column colours in line with latest proposal (#23769 by @peppy)

Fix osu!mania bar lines showing in front of notes (#23795 by @peppy)

Fix osu!mania hold notes sometimes looking incorrect...

Read more

2023.617.0

16 Jun 17:50
Compare
Choose a tag to compare

Hotfix release number 3! More fixes for score migration and import. Who would've guessed?!

Scoring

Fix reimporting old lazer scores undoing standardised score recalculation (#23930 by @bdach)

Fix score migration not migrating all scores properly (#23934 by @peppy)

We were missing a rounding consideration which means that.. probably half of the scores which should have been converted were not being. Luckily this is easy to resolve and can be simply re-run on top of an existing database with no further considerations.

Full Changelog: 2023.614.1...2023.617.0

2023.614.1

14 Jun 09:43
Compare
Choose a tag to compare

Hotfix release number 2 ahoy! Local score fixes!

What's changed

Gameplay

Fix flashlight mods not working on Metal (ppy/osu-resources#262 by @frenzibyte)

Has been broken for a couple of releases. Finally fixed!

Scoring

Migrate old standardised scores to new algorithm (#23892 by @peppy)

We originally weren't considering fixing old scores set by users in their local client, but due to a sizable number of requests we've added a migration for these.

After you run this release, all your local score will be converted to the new standardised scoring system.

Note that this is a best-effort implementation. It inserts misses in a way that gives the user the best possible combo streaks considering the only information we know (MaxCombo). So if anything, you'll have to try a tiny bit harder to beat your old scores.

But at least you CAN actually beat them now, right? :)

Full Changelog: 2023.610.0...2023.614.1

2023.610.0

09 Jun 19:04
Compare
Choose a tag to compare

Hotfix release ahoy!

What's Changed

Editor

Store timestamp of beatmap's last edit time in local database (#23711 by @timiimit)

Now when you open the editor it will load right back to where you were last time you opened each individual beatmap.

Fix ticks being created after the end of drum rolls in osu!taiko editor (#23768 by @peppy)

Gameplay

Fix flashlight mods not working on Metal (ppy/osu-resources#262 by @frenzibyte)

Has been broken for a couple of releases. Finally fixed!

Fix triangles song progress bar blinking during gameplay (#23781 by @bdach)

Gameplay (osu!mania)

Change osu!mania scoring ratio to 99% acc (to match previous lazer scoring) (#23816 by @peppy)

We've had a lot of negative feedback from users after switching to the new score v2 based scoring. While there's still plenty of time to balance things, this change reverts the combo/acc ratio to what we had, and what users were used to.

Of note, other rulesets didn't change in a similar way so match (roughly) correct.

Settings

Fix osu!mania scroll speed milliseconds having too much precision in some locales (#23776 by @peppy)

Full Changelog: 2023.605.0...2023.610.0

2023.605.0

05 Jun 11:43
f828992
Compare
Choose a tag to compare

Check out changelog and video!

What's Changed

Code Quality

Database

Improve startup database reliability (#23695 by @peppy)

A couple of fixes here:

  • Previously, if the backup procedure failed, startup would continue and the user's realm database may be deleted. I think in such a fail case I'd rather the game didn't startup so the user gets in touch (or reads the log files themselves) rather than potentially losing data.
  • Reduced the number of cases a database would be marked as "corrupt". We've seen a couple of reports where a user has provided a "corrupt" database that has worked just fine, so hopefully this change will stop that happening.

Editor

Update metronome samples (ppy/osu-resources#257 by @nekodex)

Did a pass on the metronome samples, mainly to remove the pre-delay before the main transient, but also to make it 'snappier' overall. This should make it easier to hear over music and judge timing more accurately.

I originally had the pre-delay there to help soften the attack of the metronome (so it would sound more organic and less ear-piercing) under the assumption that people would be using it in conjunction with the visual waveform in the editor to dial in the timing/offset. However, it seems some people prefer to use their ears when timing and a pre-delay/offset messes with their ability to do that. Hopefully these new samples will resolve that.

Allow commiting / undoing placement of blueprints using back / select bindings (#23508 by @peppy)

With default bindings, this restored hitting "Escape" to exit placement mode.

Force placement of in-progress object when changing tools in the editor (#23509 by @peppy)

Just like in the osu! stable editor, you can now switch from slider to select or hitcircle placement and it will place an in-progress slider rather than throwing it away.

Fix sample banks not saving correctly when adjusting via editor (#23564 by @peppy)

Broke at some point recently.

Fix timeline blueprint display not showing correct combo number / colour during placement (#23582 by @peppy)

osu.Game.Tests.2023-05-17.at.08.55.03.mp4

Of note, in stable the way the editor behaves is slightly differently. The placement object is inserted into the beatmap before being placed, causing future objects to update their combo index, colour, etc.

I'm not ready to commit to that same behaviour (it will be more complicated to manage), but will deal with feedback on this in the future.

Fix undo/redo not working for slider velocity and sample changes (#23631 by @bdach)

Allow deselecting any selection in the editor using the Back binding (escape key) (#23651 by @peppy)

Matching much-loved stable behaviour.

Update beat divisor control to show ticks in more visually correct locations (#23581 by @peppy)

Before:

osu Game Tests 2023-05-17 at 07 36 08

After:

osu Game Tests 2023-05-17 at 07 35 33|

Add sample bank selection controls (and hotkeys) to editor (#20829 by @peppy)

Mostly for the hotkeys, since they've come up multiple times.

osu.Game.Tests.2022-10-19.at.12.47.23.mp4

Ensure editor selection buttons remain on screen when selection is near edge (#23649 by @peppy)

Purely visual and if it regresses in the future, it's going to be in a completely unpredictable way, so opting to not add tests.

2023-05-24.22-05-34.mp4

Fix slider path placement incorrectly snapping to distanced snapping grid when it makes no sense (#23662 by @peppy)

Fix placing objects before the first control point in the osu!taiko editor failing (#23667 by @peppy)

Before:

osu.2023-05-26.at.11.02.23.mp4

After:

osu.2023-05-26.at.11.01.04.mp4

Fix slider bars and text boxes fill colour not being fully defined in some screens (#23708 by @peppy)

Before:

osu! 2023-05-31 at 14 26 02

After:

osu! 2023-05-31 at 14 24 52|

Fix hit objects popping in and out of existence at edges of timeline (#23701 by @EVAST9919)

Smaller changes

  • Move blueprint validity conditions to allow more correct external usage of EndPlacement (#23507 by @peppy)

Framework

Show more information in frame statistic display (ppy/osu-framework#5801 by @peppy)

A result of smoogi not being able to tell which frame limiter is applied on high refresh monitors (where they all become 1000 Hz). Obviously this is a fault of the frame limiters, but fixing that is for another day.

osu Framework Tests 2023-05-18 at 07 47 05|

Fix input thread reporting too much elapsed time in single thread mode (ppy/osu-framework#5819 by @peppy)

Well, no, potentially not just WndProc but other counters too. Basically if BeginCollecting is called with no items in the stack, it will not consume the stopwatch time, meaning the next EndCollecting call will also include all time passed since the previous EndCollecting call.

Ouch.

Before:

osu Framework Tests 2023-05-31 at 08 38 08

After:

osu Framework Tests 2023-05-31 at 08 37 49|

Smaller changes

Gameplay

Remove flavour text from the pause / fail screens (#23646 by @peppy)

Didn't read too well, can't think of anything better so let's chop it.

Before:

osu Game Tests 2023-05-24 at 09 26 13

After:

osu Game Tests 2023-05-24 at 09 27 44|

Show current progress on pause screen (#23647 by @peppy)

Just because I could. I was also experimenting with adding more features to this screen, but feel that anything beyond this simple addition should be done by implementing skinning of the screen (quite low effort).

osu Game Tests 2023-05-24 at 09 34 20

Replace lazer scoring with "ScoreV2" (#23638 by @smoogipoo)

One of the issues with scoring that's being consistently brought up is its linear combo scaling nature. This has triggered discussions like this, which has led to an alternative scoring implementation here.

The problem with this implementation is that it adds a lot of complexity in an effort to make score re-calculable, but it relies on all judgements or some metadata being stored server-side (which we are not confident on moving forward with). On top of that, it changes scoring completely unlike anything we've seen thus far, which is neither a bad thing nor a good thing.

After internal discussion, we believe the best path forward is to return to something that everyone's familiar with that has been tried and tested. ScoreV2 seems appropriate.

For the most part, this is a 1:1 implementation of osu!stable's ScoreV2. osu!catch has not been exactly implemented, since its implementation drastically increases complexity and I've been told the simple combo/accuracy portions are fine (by people that have attempted to improve on the osu!stable algorithm for tournament purposes).

A few pointers regarding this change:

  • Going forward we won't be calling this ScoreV2 – it will still be referred to as lazer scoring for the time b...
Read more