published 04 Nov 2015

Another day dedicated to fixing performance regressions on stable40. Spent quite a few hours debugging with users, but after making little progress began to work on more visibility of diagnostic information when a stutter frame is encountered.

Since quite a few builds ago, the Cutting-Edge stream has had a performance.log file (along with many other varieties of logs found in the new “Logs” folder – how appropriate!). As of the latest release, each time a dropped frame is detected (indicated by a little square next to the FPS counter), a decent amount of statistics will be dumped to this file.

The FPS meter is quite liberal with what it considers dropped frames, so this file may get a bit busy over time. Fortunately, the format is quite easy to process and is fully timestamped.

If you are one of those people still encountering stuttering frame-rates on the new releases, now more than ever before can you give us what we need to help solve your problems. Note that this implementation isn’t complete yet; more statistics will be added over the coming days.

We are also building up a fairly comprehensive knowledge base of what hardware, software and drivers can possibly cause issues with osu!. Going forward, I hope to have osu! detect apps running which can negatively impact performance and alert the user.

While we have some very helpful people on public slack helping with testing (special thanks to DPL for his time), we could always do with more! Get on over and watch or participate!



published 03 Nov 2015

First blog for November.. oh how time flies. Spent yesterday completely inundated with mail and accounting. Apologies for lack of updates here.

Currently working hard to get things ready for OWC while also fix performance issues with Stable40, Beta and Cutting-Edge. Made some good progress today testing with some users on public slack. Targeting the issue of single-frame stutters (lag spikes) categorised into “SwapBuffer” on the frame graph currently.

I’m basically 100% devoting myself to fix performance issues until we are 100% (and I mean 100% for all users), since it is the main thing holding stable40 back from the remaining users which have not been able to make the leap yet.

As you can see by the stats, we still have over 40% of users on the fallback stream. This is far better than a few weeks ago (before I began promoting the new release), but we do have a way to go still.

Until this migration is finalised, don’t expect to see too much forward progress. Yes, this means “osu!next” may not actually happen in 2015, but hey, what can you do? I promise I’m doing everything I can to make osu! the best it can be.

On the topic of osu!keyboards: after the initial rush, things have quietened down, so I am leaving them in stock for the foreseeable future. Thanks to everyone who has purchased them so far; make sure to give us your feedback on the build quality and usability!

I have a few blog posts in the works which should be a tad more interesting than my daily updates (talking about the new forum design, my experience converting from sublime text to atom etc.), but I’m still prioritising actually getting-things-done over blogging, so you’ll have to wait a bit longer!



published 30 Oct 2015

Sometimes it’s very easy to spot all the things wrong with this world. Working around people who just don’t live up to your expectations, dealing with fulfilment APIs that make suicide seem like a good option, almost getting hit by a taxi driver consciously going through a red light…

So, in the face of negativity, I bring you a short-list of thing I believe are amazingly correct in this world. Because the people doing a good job don’t get called out for it often enough.

As a foreword, this list is going to be quite broad and random. Just things which I have been in contact with recently which I feel like sharing.

Slack, oh slack. Without you I would not be able to keep up with the daily flow of information. Not stopping at just replacing IRC, trello and god knows what other communication apps, Slack’s integration APIs offer endless possibilities when it comes to centralising, automating, summarising and processing information.

Discord. Yes, it’s a Slack clone. A slack clone with voice support. Aiming to replace apps by the likes of Skype, Teamspeak, Ventrillo (and doing a good job at beating them all). Being completely free to use may raise warning bells, but they seem to have enough financial support to make this feasible.

The CARROT app range. iOS development done right. As far as I can tell, one guy behind a series of apps with the exactly right amount of attitude, style and functionality. Some real innovative features which I haven’t seen elsewhere (Alarm and Weather are the ones I’m using on a daily basis), backed by timely and useful updates.

The Atom text editor. I’m finally at the point where I can recommend this over Sublime Text. While startup performance is still shockingly behind, runtime performance is now almost on-par with ST3. I am currently transitioning away from ST3 due to the negligence of the developer behind it. I’d suggest you do the same, at your earliest convenience.

GitHub, for always being there. Nothing really needs to be said here, but honestly, where would we be without you?

DigitalOcean. Honestly the only datacenter/vps/hosting provider I can recommend. These guys are pure love. If you value customer support over everything (which you honestly should when you are putting your hosting in someone else’s hands) there is really no other choice.

Chris Roberts / Star Citizen, the only game I am anticipating and hyped for. Say what you will about the development process, but I believe this project has already succeeded in ways we’ve never seen before. They’ve released content of amazing calibre, from their web UX to already playable – and fun – sandbox game modes. The future is exciting.

Kurzgesagt, now known as “In a Nutshell”. A group of designers creating quality content with the pure purpose of sharing information. Infographics in motion. Quality > Quantity. Subscribe if you haven’t already.

Oh, and if you missed it, we are getting portable osu! installs on USB sticks later this year. Completely metal body – everyone who has touched the sample has been blown away by how amazing it feels. Very limited qualities available soon.

Enjoy random posts like this? Let me know.



published 29 Oct 2015

At the expense of my inbox piling up to record heights of unread mail, I’ve been making some good forward dev progress.

Shared Project

I mentioned this some time ago, but in order to better support multiple platforms, we need to have slightly different bootstrapping processes for each operating system. To allow for this, the osu! project needed to be migrated to using a shared central projects, with separate full-fledged projects for each OS.

This code is now mature enough to push live build to cutting edge. Nothing for you to see, really, but it works and that’s a good step forward!

Separate User Data Directory

Another change which needs to be made for OS X native support is to move all user data away from the executable and game data. This allows us to properly sign our code while still allowing you to load beatmaps and skins into osu!.

This will be deployed to windows eventually as well, likely splitting most of your osu! installations into two pieces. A lot of you might be shocked and against this, but think of the advantages this offers:

  • You can access your osu! folder by Start > Run > .osu .
  • Your data will be cleaner, without being poluted by osu! system files.
  • There’s no chance you will break osu! accidentally.
  • You can easily migrate just your user data to another PC.
  • You can reinstall, uninstalll, or repair osu! without worrying about losing any of your important data.
  • You can move your user data folder to anywhere on your system.

The final release of this will include a new option to let you relocate your user data folder. For existing users, it won’t automatically migrate your data away to the new folder, but will give you an option to do so (which will be highly recommended).

Draggable volume controls

You can now drag up and down to adjust volume. Not much more to say!

Also fixed a few further regressions with spinners. New beta release going out tomorrow. New stable this weekend. More osu!keyboards this weekend. Next focus is fixing remaining performance issues with stable40. Anyone experiencing such issues get on slack and idle as much as possible.



published 28 Oct 2015

Has been a busy couple of days. What’s new?

Volume Control

Reworking of the volume control to match the final osu!next design. Say all you want about osu!next taking a while to get out, but if you’ve been keeping up with the changelog you will understand exactly how busy myself and the rest of the dev team have been on other more critical tasks. Consider that this element was completely reworked in less than a day, using our newer shader architecture.

Needless to say, progress should be fast once we get started! Most of the building blocks are coming together.

Spinner Fixes

Anyone following closely will know that spinners have been a bit broken on cutting-edge recently. They’ve actually been blocking new beta/stable40 builds going out, so I spent most of today figuring out exactly what was going on and ensuring we repair them in a fair way.

When approaching this issue – which was introduced by attempting to fix sub-60-fps spinners giving too much score – the everyone agreed that we really need to rewrite how spinners account for score, removing acceleration and a lot of special cases from the scoring algorithm and only using it for display purposes.

Unfortunately, this would likely create disparity with previous plays, so I put it on the bucket list for when I find enough time to do a proper analysis.

I did happen to come across and fix a weird bug involving replays on maps with lead-in time.

New changelog metrics

I got around to publicising some of the metrics I use on a daily basis to get how the current releases of osu! are propagating out to the community. You can find this new display on the changelog page. Follow me on the journey to get everyone to move across from StableFallback to the Stable40 branch!

Note that some release stream information is missing for older builds. This will be populated going forward (I didn’t add it for older builds because it would break existing disqus comments).

osu!keyboard shipping

We are working through shipping of the first batch of keyboards. They have been labelled and boxed and should be going out tomorrow! Expect more to become available on the store this weekend.