published 11 Sep 2015

Gonna be a super-quick post today since I completely wore myself out on code.

Big numbers, big changes. All in a very positive direction.

It’s rare I find such an opportunity to focus on code like I did today. I will inevitably regret it tomorrow, when I start playing the catch-up game with the many shitstorms that await me in my inbox.

Best of weekends to you all!



published 10 Sep 2015

Today I finally managed to get the network code updates I’ve been coding up over the last couple of months to work flawlessly. They are now live on cutting-edge, giving generally better reliability, compatibility and most importantly SSL across the board.

For those asking why osu! hasn’t used SSL until now, let me explain: the HTTP implementations available in .NET 2.0 back when I made osu! were very shoddy. Even the built-in WebClient had so many quirks it was unusable (along with the low-level stack it was built on). I constructed a custom library to handle everything we needed back some time, and we’ve been using that until now.

Why it has taken so long to switch is simply that it didn’t make sense to rewrite an implementation while we were still on .NET 2.0. The newer framework versions have very solid networking (used by many aspects of windows itself), so I was holding off until we could make use of them. Now is that time! Getting rid of a huge chunk of custom code and replacing it with a lean helper class sitting on top of the .NET 4.0 stack.

Not only will switching to cutting-edge give you better performance, newer features, hundreds of bug-fixes and a fresh new theme song, it will also make you more secure than ever before. What are you waiting for? :)



published 09 Sep 2015

Today I was able to get the new intro song implemented in a way I was happy with. It’s now live on cutting-edge, so go check out @nekodex’s latest amazing take on the original he created years ago!

Did some bug-fixing on the osu!direct panel to fix some race conditions. Hopefully they’ve all been addressed and there will be no more overlapping thumbnails or mispositioned sprites.

Fixed settings migration from stable to cutting-edge in all places it’s possible (there’s one or two which just aren’t going to be possible, but they are minor and I doubt anyone will even notice).

Everything is in place to do a stable release now. The only thing holding me back is the feeling that it’s not 100% ready yet from a compatibility perspective. Even so, I will likely release it tomorrow and we’ll just have all hands on-deck for quick turn-around bug fixing. Really gotta get this build out!

Also, I hear some sausage is publicly accusing us of storing passwords with “bad” encryption. We use industry standard bcrypt everywhere (and have been for years), as you’d expect. Be very careful who and what information you trust, as always!



published 08 Sep 2015

Keeping blog pots this week short. A lot of things I want to do, but also plenty of catching-up to be done. Times like this make me want to write less and do more. And try and get some sleep in between all that.

  • Added a message to the options menu which lets users know they are adding input latency when running windowed. Only displays when DWM is enabled and osu! is running in a window.
  • Made some improvements to clarity of the new scoreboard font (thanks to public slack for help with this). Font may still change before release.
  • Went through some more design issues with the next osu!web. I’m still not happy with the legibility of text when reading the forum – I have trouble using it over the old site still – so we are considering changing the font in some places.
  • Fixed some CSRF vulnerabilities on the current website (phpbb, PM and preferences). Thanks to people who report these to me without exploiting them in the process!
  • Added support for real-time reloading of sprites in debug builds of osu!. While I kind of hacked the implementation in, it is planned to be expanded to allow users the same functionality when working on skins eventually. Quite indispensable.
  • Started experimenting with the next osu! theme song (click the circles!). Trying to get the startup animations and voices to feel correct with it is proving harder than expected. Still hoping to get it live with the coming public release.
  • Decided that osu! is no longer going to be called a free-to-play game, due to the heavily negative connotations associated with that term. We are now the biggest free-to-win game out there… if only because no one else uses this term. I think it sounds better.


published 07 Sep 2015

Some updates:

  • I was hoping to do a public release today (Monday), but there are still some hard crashes I’d like to be able to handle better before seeding it out to more users.
  • One user reported disk IO being the cause for dropped frames. As a result, we changed the way audio tracks are buffered to ensure there is no disk IO occurring during active playing.
  • Spent some time today removing all GDI text rendering during active playing. This may have been a cause for random spikes for some users, so I’m excited to see whether it helps alleviate issues or not. Please don’t comment on the new font; it will see improvements before going public.

Cutting edge builds are more optimised than ever, so if you’re not already using them, now is the time to try it out.

Also, a thanks to everyone who contributed to osu-web over the weekend. We’re still catching up, but will see to your pull requests as soon as possible (and rewarding of bounty where applicable!).

…How is it September already?