2017 05 12

published 12 May 2017

Better chat tabs

I finished implementing most of the updates to the chat design today #741.

More song progress information

Can now see time elapsed, time remaining and percentage complete, thanks to some work by Evast.

Other things

  • You can now hit enter after typing a search in the playlist controller to play the first match #722.
  • Regression fix for ruleset not always getting populated in a WorkingBeatmap #743.
  • Added the ability to search options #728.
  • Resizable chat #740.
  • Multiple chat channels #739.
  • Fixed occasional unexpected logouts (oauth refresh token wasn’t correctly being read from config) #736.
  • Fixed chat textbox not always keeping focus #735.
  • The osu!mania implementation is going smoothly. More on that from smoogi tomorrow, maybe!
  • Fix for global hotkeys (like alt-enter) not working when a textbox has focus #706.

New release available

2017.512.0 is now available from github releases (or via auto-update if you already have lazer installed)! Contains everything from the last couple of days.

comments

2017 05 11

published 11 May 2017

A few days without a post. Alas, I’ve been busy with the AX announcement, accounting and general catching-up. There’s also quite a bit of lazer progress to cover!

Chat tabs

I completed basic support for subscribing to multiple chat channels today. While you can’t choose which channels you join (they are hard-coded) and can only post in #lazer due to API limitations, this is a step forward towards having fully flexible chat.

Searchable options

Back on parity with osu-stable.

Other things

  • Fixed occasional unexpected logouts (oauth refresh token wasn’t correctly being read from config) #736.
  • Fixed chat textbox not always keeping focus #735.
  • The osu!mania implementation is going smoothly. More on that from smoogi tomorrow, maybe!
  • Fix for global hotkeys (like alt-enter) not working when a textbox has focus #706.

No release today

Would’ve, could’ve, but there’s a regression I’d like to fix before pushing anything out.

comments

2017 05 08

published 08 May 2017

Been quite a bit going on, even though I missed a post on Friday. Let’s catch up!

Mod overlay

Building on some work by Evast, we now have an in-game overlay showing currently enabled mods. Here’s an example of how it looks:

With this came some further refactoring to the way mod icons are displayed to make it easier to reuse them in the future.

Other things

  • The osu! window now defaults to a higher frame rate when inactive (30 -> 60). This should provide a smoother feeling experience even when the window isn’t focused #694.
  • Fix mod selection accepting escape when it shouldn’t (after entering play mode with it still open) #723.
  • The cursor trail should now look smoother than ever before, thanks to WebFreak001’s work #717.

New release available

2017.508.0 is now available from github releases (or via auto-update if you already have lazer installed)! Contains everything from the last couple of days.

p.s. there should be a pretty big announcement tomorrow, so keep an eye on the osu! news feeds.

comments

2017 05 04

published 04 May 2017

Further performance optimisations

Falling down the rabbit hole of optimising, I found and fixed a few hot paths in the code (involving texture lookups and loading) to improve overall performance and reduce potential stuttering. Got a few more areas that I have identified as issues, but solutions will take a bit longer to implement. More on that in coming posts.

Options refactor

Until now, there has been no central display container for UI controls within the options menu. Each different control type (checkbox, sliderbar, dropdown etc.) had their own implementation. While this looked fine from the outside, it meant that we couldn’t easily implement, for instance, the yellow revert-to-defaults glow that you are likely familiar with on osu-stable.

So I spent some time today getting everything in shape, to give options even more power and pave the way for adding searchability and more extensive tooltips to them.

No release today!

Waiting on further review and merging before I push another build out.

comments

2017 05 03

published 03 May 2017

Latency testing

I took a step back today after implementing frame limiter options to test the current render pipeline, ensuring we weren’t making any mistakes which could lead to unnecessary input-output latency.

The results were actually quite pleasantly surprising. With a simple tweak to vsync (forcing a gl pipeline flush after swapbuffer), we are actually in a very very good position! Not only can the framework push 5-10k frames per second, it looks like it is performing very well at lower frame limits too.

White cursor is native windows, black cursor is osu!. We are running full screen (exclusive) of course.

A few things to note and explore:

We are exactly one frame behind the windows cursor with vsync turned on. This is to be expected, as we are double-buffering at this point. It is also the absolute best result with vsync turned on. For most users this will be an excellent option which avoid visual tearing that can break mania and taiko badly.

Furthermore, in both of the non-vsync scenarios, the osu! cursor is actually updated at a higher rate than the windows cursor! You can clearly see that the osu! cursor is always in front in both of these tests. Not only that, but it looks like increasing the limiters beyond the (currently) lowest available setting has no noticeable effect. This is due to input also being threaded and polled separately to both the draw and update loops.

Comparing to the current stable osu!, this means huge improvements in every way. Needless to say, I’m very happy with these results. We will of course be supporting newer vsync technologies before release (gsync/freesync).

Other things

  • A option to show FPS is now available. This currently just reveals the framework-level fps counter (which could previously be toggled using Ctrl+F11), but will be replaced in the future with a skinned/simplified version.
  • Work has started on the osu!mania ruleset in lazer. Expect to see some progress on that very soon.
  • The spring fanart contest winners’ backgrounds are now on stable! Go check them out, they look amazing. Keep in mind that if you’re a supporter you will need to disable any custom background you have set in order to see them.
  • osu!catch world cup registrations are open! Go check out the rules and register if that’s something that interests you :).

New release available

2017.503.0 is now available from github releases (or via auto-update if you already have lazer installed)! Contains everything from the last couple of days.

comments