published 05 Nov 2015

Dedicated a good portion of today continuing performance debugging with testers. Made some forward progress and fixed stuttering caused by texture creation that was previously happening far too often when sliders are being displayed (and created some weird ghost sliders in the process – will be fixed tomorrow!).

Also continued improving performance.log output, which now contains relatively accurate call stacks when a spike is detected! This is basically the gold-mine for debugging performance issues, so I was thrilled to get it working. Also added many new stats and switches which may help us help you fix your performance issues.

I’ve already asked many times, but make sure to share your performance.log whenever reporting stuttering issues. It is of incredible value. Note that it’s still only available on cutting-edge (and even going forward, will not be available on stable releases due to the slight overhead incurred).

Yes, today continue in a chain of boring blog updates. I’m making a lot of important forward progress, though! Don’t forget OWC is starting this weekend, too!



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.