2017 04 28

published 28 Apr 2017

Song select performance

I spent some time today addressing the stuttering performance at song select. Being the centre of osu!, song select is important to get right. There are a lot of piece working together, so it’s essential to get the threading and debouncing logic correct from the get-go.

The changes I worked on today improve performance when quickly selecting multiple beatmaps (especially when using the arrow keys), as well as begin cleaning up the event flow of panel selection which was quite convoluted until now.

Improved lead-in time support

There were still a few remaining issues with lead-in time which have now been resolved. As of the next release all maps with any amount of lead-in should be playable, finally!

Other things

No release today!

Waiting to get a few more pull requests merged before pushing out the next build.

Oh and you may have noticed I skipped a day’s blog yesterday. While I will try and keep up daily blogs, I am not holding myself to it. I regularly need to take breaks from coding to catch up on email, accounting, support, etc. so keep that in mind if you don’t hear from me for a period of time :).


2017 04 26

published 26 Apr 2017

Continued work on clocks and seeking support

Here’s a very raw preview of seeking support utilising speed changes. Rewind support isn’t completely implemented, but can be generally fixed with a few lines of change (though the correct solution will take a bit more thinking, as this was achieved by disabling some game-wide optimisations).

The end goal is to allow seeking in both directions with completely accurate scoring and playback. I actually already achieved this on lazer-transitional in a distant past and am using similar techniques to reimplement this on lazer, so it’s quite familiar (yet still daunting) territory!

Added support for lead-in time

Makes a lot of maps playable that previously weren’t. Haven’t extensively tested this yet, and it will likely receive further revisions over the next few days.

Other things

  • Fix disabling mouse buttons causing auto to stop working #677.
  • osu!taiko difficulty calculations are in! Note that this will only apply to newly imported beatmaps #675.
  • osu!taiko drumroll conversion has received some minor fixes #663.
  • ..as have swells (spinner converts) #676.
  • My changes from yesterday have been merged (improving replay playback accuracy) #672 & #667.

New release available

2017.426.0 is now available from github releases (or via auto-update if you already have lazer installed)! Contains everything above.


2017 04 25

published 25 Apr 2017

Frame-accurate replay playback

I realised while reviewing code today that we were not playing back replays in a frame-accurate manner. I spent most of today fixing that. Frame accurate playback means that the playback will result in the same score no matter how slow/fast it is played back. It means that if there is lag recorded in the replay, it will be reproduced in the replay. Likewise, if there is lag in the client during playback, the replay will be unaffected by this.

Getting this right is a prerequisite to being able to have free reign over replay playback, including adjusting speed and seeking (something I plan on working on over the next couple of days), so it is imperative that we get this right.

Unfortunately I don’t have much to show from this work. I have managed to speed up replay playback to up to 50x with no errors, but as the audio track is not synced, it would not make for a good video. Hopefully things will be ready to share tomorrow!

Other things

  • Menu music and welcome/goodbye voices can now be toggled as expected #634.
  • Configuration settings which were (in osu-stable) 0..100 or -100..100 ranges have been switched to float 0..1 or -1..1 ranges #658.
  • Project READMEs received some minor updates #671

New release available

2017.425.0 is now available from github releases (or via auto-update if you already have lazer installed)! Contains everything from previous days, but not the stuff mentioned above; isn’t reviewed yet.


2017 04 24

published 24 Apr 2017

Beatmap info wedge design update

Some minor (but long overdue) changes to the beatmap info wedge



What changed?

  • Coloured bar on the left represents the difficulty level at a quick glance.
  • The source and artist are in the correct place now.
  • The weird double-dash is replaced with an em-dash as expected.

Note that this isn’t the final design still (there’s a lot more refinements that are waiting in the todo list!), so keep an open mind for the time being!

Online metrics are now loaded

You will now be able to see beatmap fail/retry times and online ratings if you are logged in. They are cached only until you exit song select once, but will definitely be cached for longer in the future. You’ll notice the display dim while it’s fetching new values from the intertubes.

The last tab you were viewing at song select is now also remembered between startups.

Rigid body physics

Tom94 seems to have gotten a bit restless while on vacation and implemented the basics of rigid body physics simulation in osu-framework (see #656)! I won’t even begin to pretend that I understand the math behind this, but the implementation looks pretty solid.

Not sure how often we will use this in the case of osu!, but at very least the fail animations could be a lot more interesting than before!

Other things

  • Music control regression fixed (wasn’t changing songs) #667.
  • Visual Studio Code CLR debug support added (now a viable alternative to visual studio on windows) #666.
  • Fix regression causing menu cursor to stick to screen edges #664.
  • Decrease memory traffic in the thread scheduler#657.
  • Linux clipboard support added (read-only for now) #653.
  • Slider repeat sounds are now correctly reproduced #662.
  • The beginning of localisation support is now in at a framework level #651.

No release today

Let’s wait another day so the above changes can be completely reviewed and added!


2017 04 21

published 21 Apr 2017

Speed adjust mods

Double Time, Nightcore and Half Time are now active! You can hear the effect of these mods from the song select screen, too.

Audio offset

Had a few requests to add universal offset support, so it has been done.

Splash page design update

Yesterday a new version of the (logged out) home page design went live. Go check it out here (make sure you’re logged out!).

Disqus beatmap comments are on the new site

Go check out the updated beatmap page design, now featuring comments. We’re slowly reaching a point where we can switch over to the new site.

Other things

New release available

2017.421.0 is now available from github releases (or via auto-update if you already have lazer installed)! Contains everything mentioned above (bar localisation and hitsound improvements).