github ppy/osu 2023.621.0

latest releases: 2024.625.3, 2024.628.0, 2024.625.2...
12 months ago

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 after rewind (#23936 by @peppy)

before after
osu! 2023-06-16 at 05 55 22 osu! 2023-06-16 at 05 55 36

Fix column colours not being correctly applied on Triangles skin with Dual Stages mod active (#23946 by @FrBst)

Before After
image image

Gameplay (osu!taiko)

Colour argon osu!taiko explosions based on the object hit (#23766 by @peppy)

osu.2023-06-06.at.06.46.59.mp4

Reduce argon Taiko kiai flashing (#23861 by @Xinnoh)

Cuts flash intensity by ~50%. Should make the argon skin a lot more playable.

2023-06-09.22-41-45.mp4

Smaller changes

  • Tighten up new Argon hit samples for Taiko (ppy/osu-resources#261 by @nekodex)
  • Trims a bit off from the start of the taiko-hitnormal-*/taiko-hitclap-* samples to tighten up the attack.
    Also
    re-normalized the volume of taiko-strong-hit because it looks like I missed that after converting to
    44.1khz.

Localisation

Add new languages to match osu-web (#23729 by @jtbiddle)

There may be a few missing due to considerations that have yet to be addressed (like right-to-left display).

Smaller changes

Multiplayer

  • Fix multiplayer room difficulty range sometimes not being updated (#23551 by @timiimit)

Performance

Add a very simple user cache to ScoreImporter (#23845 by @peppy)

This fixes score imports looking up user information each and every time. Should speed up imports from osu-stable
greatly.

Add disk cache for shader compilations (ppy/osu-framework#5829 by @smoogipoo)

Reduces startup time by ~1 second.

Move midi initialisation to a thread (ppy/osu-framework#5839 by @peppy)

MIDI is rarely used. On top of that, on macOS the overhead on first call to the Devices enum is very expensive (>1s)
and shouldn't delay startup of the game.

Fix very long stutters with Direct X renderer (ppy/osu-framework#5846 by @peppy)

It turns out that in cases a frame would take over a certain time to generate, the game would stall for 1 second in
addition
to the frame's time, making thing much worse than they should be.

This would happen anywhere the game takes slightly too long to render an update frame. I could reproduce:

  • Entering song select
  • Opening settings
  • Opening beatmap listing

Add source generator for HandleInputCache (ppy/osu-framework#5761 by @smoogipoo)

Reduces overhead of loading new game components slightly.

Smaller changes

Platform

Fix importing beatmaps/skins/replays on iOS via "Files" app (#23952 by @frenzibyte)

Finally fixed, has been broken for a couple of months.

Improve metal frame rendering when more than one display is connected (ppy/osu-framework#5847 by @peppy)

Incorporating ILW8's work (ppy/veldrid#20) to more correctly provide hinting to metal as to
where the window is running on the host, which allows better selection of refresh rates and display timings.

Tested on single display macbook and dual display mac pro (with two external displays). In these cases, I'm not noticing
anything working better than before, but it runs fine without any signs of regression.

Reliability

Automatically disable tablet support on error (#23719 by @peppy)

Smaller changes

  • Disabling reporting users from in-game chat (#23794 by @peppy)
  • Was causing a crash. Doesn't make sense since you'd be playing anyway. You can still do this from the lobby.
  • Fix storyboard being null if file doesn't exist (#23889 by @peppy)

Settings

Fix settings jump buttons not always seeking to correct location the first time (#23798 by @peppy)

Because some settings sections can expand in height when they load in, clicking a jump-to-category button would
sometimes jump to the wrong final position. This has now been fixed.

Fix renderer dropdown not showing current automatic selection (ppy/osu-framework#5836 by @Susko3)

Smaller changes

  • Add a few more search keywords for offset settings (#23899 by @peppy)

Song Select

Fix collection name changes not being reflected if enter is not pressed (#23741 by @peppy)

Fix song select beatmap panels sometimes not displaying correct beatmap background (#23745 by @Joehuu)

Smaller changes

  • Fix beatmap panel background looking different than usual (#23836 by @frenzibyte)
  • Fix song select rewind logic not handling deleted beatmaps (#23312 by @Renzo904)

Song select

Greatly improve song select performance by cropping beatmap backgrounds before display (#23809 by @peppy)

This is an effort to improve general performance at song select. At least on the metal renderer, I can notice very high
draw frame overheads related to texture uploads.

By reducing the size of the texture uploads to roughly match what is actually being displayed on screen (using a
relatively inexpensive crop operation), we can vastly reduce stuttering both during initial load and carousel scroll.
This also reduces overall GPU memory requirements.

Fix toggling mod presets causes too many sounds to play (#23867 by @Cootz)

Reduce delays and fades for carousel panels to improve song select initial display performance (#23811 by @peppy)

Entering song select has seen a hit since the new renderer implementations. The underlying cause is large numbers of
vertex buffer uploads (the counter hits >200k for me during the transition). We're still investigating why the upload is
so large.

Song select is in the process of being redesigned, and we are probably going to make improvements to the renderer to
alleviate this, but in the mean time we can greatly improve the user experience by reducing how long the initial fade in
delays take on panels.

Visually this doesn't look too jarring, and gives a more immediate feeling when scrolling.

Reduce CPU overhead when opening song select for the first time (#23951 by @peppy)

Add the ability to search for mods (#23414 by @Cootz)

Hit Tab after opening the mod select overlay to begin searching! Hit Enter to select the first matching mod,
and Esc to start a new search.

Subclasses of FocusedOverlayContainer must now implement Pop{In,Out}()

  • Use Anchor/Origin instead of GridContainer for drawable room background gradient (#23901 by @Joehuu)
  • Previously, subclasses of FocusedOverlayContainer were not forced to implement Pop{In,Out} themselves,
    despite
    actually needing to do so for the overlay to actually play transitions out correctly. This has now been
    changed
    and inheritors of the class must always implement Pop{In,Out}.

In practice this should not break any reasonable consumers of the class, except for the need to remove
any base.Pop{In,Out}() calls in classes that directly inherit FocusedOverlayContainer and call base
in Pop{In,Out}().

Not sure if it improves performance but maybe readability. There's also a similar case:

new FillFlowContainer
{
Depth = -1,
RelativeSizeAxes = Axes.Both,
Direction = FillDirection.Horizontal,
// This makes the gradient not be perfectly horizontal, but diagonal at a ~40° angle
Shear = new Vector2(0.8f, 0),
Alpha = 0.5f,
Children = new[]
{
// The left half with no gradient applied
new Box
{
RelativeSizeAxes = Axes.Both,
Colour = Color4.Black,
Width = 0.4f,
},
// Piecewise-linear gradient with 3 segments to make it appear smoother
new Box
{
RelativeSizeAxes = Axes.Both,
Colour = ColourInfo.GradientHorizontal(Color4.Black, new Color4(0f, 0f, 0f, 0.9f)),
Width = 0.05f,
},
new Box
{
RelativeSizeAxes = Axes.Both,
Colour = ColourInfo.GradientHorizontal(new Color4(0f, 0f, 0f, 0.9f), new Color4(0f, 0f, 0f, 0.1f)),
Width = 0.2f,
},
new Box
{
RelativeSizeAxes = Axes.Both,
Colour = ColourInfo.GradientHorizontal(new Color4(0f, 0f, 0f, 0.1f), new Color4(0, 0, 0, 0)),
Width = 0.05f,
},
}
},

Tournament

Add a the ability to change map pool display to not line break on new mod combination (#23877 by @yhsphd)

2023-06-10.17-37-50.mp4

UI

Add tooltips to all truncated text (#23829 by @Joehuu)

Truncate online play drawable room name text (#23906 by @Joehuu)

before after

Fix beatmap info length tooltip not showing actual drain length (#23954 by @Joehuu)

before after
osu!_bEoqV19jk6 osu!_XBYVh3hnyk

Fix beatmap info not showing individual difficulty bpm (#23969 by @Joehuu)

before after
Cj2csXuyAr osu!_kN7UldQOyD

Smaller changes

New Contributors

Full Changelog: 2023.617.0...2023.621.0

Don't miss a new osu release

NewReleases is sending notifications on new releases.