2017 04 20

published 20 Apr 2017


After multiple iterations, we have a working tooltip solution via this pull request. A combined effort between myself and jorolf, these new tooltips should reflect what we used to have in osu-stable but at the same time add a new feel via animations.

Note that these are not heavily deployed throughout the interface yet; this will happen over time.

Minor changes

New release available

2017.420.0 is now available from github releases (or via auto-update if you already have lazer installed)!

This build sees the initial release of the results screen to the public. As mentioned multiple times, the design is not yet complete, but it’s a huge leap forward from what we’ve had until now! You can click through to the results screen from leaderboards at song select, or play a map and experience it for yourself.


2017 04 19

published 19 Apr 2017

Chat is now working in both directions

Gave chat a bit of attention so people using lazer can begin to discuss things in-game. Currently chat is limited to a new #lazer channel, which is only accessible from the lazer client.

private API refactoring continues

Working with the osu-web team to bring all the data required by the client into the client. This included a few chat fix-ups for the feature above, along with changes to the structure of scores to allow for receiving score data in a way that is ruleset-agnostic.

Oh, and leaderboard score retrieving is now working again!

Results screen received continued work

While it’s in a stable state, it won’t be arriving this build. Let’s hope it’s in tomorrow. You can see that it now displays hit counts as you’d expect, at least!

Minor changes

  • The song progress display has received some fixes to stop it crashing with some maps.
  • The accuracy display on the leaderboard now shows percentages, not decimals.
  • TextBox received some fixes to better handle a read-only state.
  • osu!lazer will no longer crash when it fails to read values from a config file.

New release available!

2017.419.0 is now available from github releases (or via auto-update if you already have lazer installed)!

Note that this release will reset your beatmaps as we have restructured the client’s database extensively for modular ruleset support. Please re-import your maps. Also let me say again that the results screen won’t be in until the next build, as it is still under review.

Thanks for following along!


2017 04 18

published 18 Apr 2017

Quite a bit to cover today!

Optimised player retry logic

Until now, when triggering a retry during play the game would actually be nesting a new screen inside the old player. While this was a very easy way to implement retry logic quickly, it also cause what could be classified as a memory leak if you retry too many times.

ocboogie is a new contributor who has been working over the past few days on fixing this problem. With a bit of guidance he succeeded in improving this process by a fair amount.

I also took the opportunity to clean up the transitions a bit (a touch faster metadata display too, for those of you complaining about having to wait the whole two seconds it displayed for).

Song rankings no longer display

If you’ve been using lazer, you may have noticed that online beatmap rankings are no longer being displayed. This is due to some changes in the backend API that I’ve been working through with nekodex which got pushed live today. The API changes will allow for things like country flags, mods and more to also be displayed.

I will be working on bringing the lazer code up-to-date with these changes tomorrow.

Conversion engine updates

smoogipooo has been hard at work on following up the modular rulesets with better support for converting between rulesets. This allows for some awesome possibilities, like converting from mania to taiko.

Song progress refactor

The song progress bar that has been sitting at the bottom of the play interface since last week was actually quite restricted in how it could be used. You couldn’t change the vertical height, it couldn’t be displayed in any location other than the bottom of the screen and it had a fixed height.

I took a fair amount of time today refactoring it to be more flexible and re-usable, primarily to make it also work on the results screen. In this refactor I also fixed the display to correctly scale the the maximum density value, where before it would just clip higher values off the display (causing 100% filled displays on harder maps).

Results screen

We’re almost there. While the design is not yet fully realised, the remaining elements are going to take some more work on the framework (masking and shaders). As such, I’ve submitted my results screen code for review and we should be seeing this go live this week, all going well!

Here’s another preview showing the latest improvements.

Smaller stuff

  • Taiko barlines have had some bug fixes applied. There’s still some outstanding taiko fixes which should arrive this week.
  • Autoplay now activates the key counter’s animation more like a real player would. Basically auto now has a key-up delay, rather than having perfect 0ms key presses. You should be able to see this change in the last video above.

No release today

Tomorrow, I’d say. There’s gonna be plenty of new stuff in the next build!


2017 04 17

published 17 Apr 2017

Back at you with another week of updates!

Rulesets are now completely modular

Until now, adding a new ruleset (previously known as a game mode) required manually changing the osu.Game project in many places. Now the registration and tracking of rulesets is completely automatic. For the time being, any ruleset following the standard naming structure (osu.Game.Rulesets.Taiko.dll for instance) will be loaded at startup. This will likely change going forward, but it’s a step up from what we had.

This is part of the ongoing refactoring to make things as flexible as possible, so implementing future game modes can be done seamlessly. It should make those few people out there working on their own rulesets very happy too, as they no longer need to maintain custom forks of the main project to load their modes for testing.

Continuing on this path, smoogipooo is working on the conversion system between multiple rulesets. We are working towards a point where conversion is possible on two directions, based on defining some basic conditions which are required before conversion can take place. This should be ready over the next few days, completing this refactor.

Quite a bit of work to make this happen. Didn’t get much else done today!

No release today

While there’s a few bugfixes that could have been pushed out, I’m hoping to get these modular changes in before doing the next build.


2017 04 14

published 14 Apr 2017

Bringing you the latest in osu! development

A slightly shorter post today as I have been busy with non-lazer tasks and drinking (it’s a friday after all!).

New HUD layout

While the visual finish pass is not complete yet, this build completed movement of HUD elements to roughly their final locations. Do keep in mind this will be user customisable, before you start complaining about change. The largest change here is that the combo is now at the top of the screen in a more centered display.

The main reason to get this in even without polish applied was to also allow for…

Song progress display

Not only tracking the current position in the song, this control will also show map density (may be configurable as to what it shows in the future) and also has a draggable seeker, which will be hooked up to replay control in the near future. This control is also lacking visual finish, but I am currently pushing to get these components live in a working state then iterate on the design to bring it up to scratch with my own expectations.

New release with all the above (and changes from yesterday)

2017.415.0 is now available from github releases (or via auto-update if you already have lazer installed)!