published 14 Sep 2015

Continuing efforts towards getting the next stable release out. Today was general bug-fixing and netcode improvements. Just to be safe, the new net requests now support automatic retrying for all requests game-wide (we were getting some sporadic TLS failures around once an hour, which this solves). Still some issues present with larger BSS uploads for some, but general bancho connectivity should now be fixed in cases it was performing worse than the old code.

Added an extra filter on the old public release stream to ensure that all users automatically updated to the new stable40 release are English speakers initially. This will help smooth the upgrade process and let us fix remaining issues without worrying about language gaps.

I kind of have a plan to push out the stable40 release tomorrow, should nothing come up. There’s still a few lingering issues to work through, but fingers crossed they should take less than a day to solve (new scoreboard font alignment / bss netcode issues).

Not much interesting to say recently! We have started to move towards embracing c# 6 with all its string interpolation and null-conditional goodness. Also working towards automating code style checks in the CI build process. Just another small piece of the puzzle in the move to open-sourcing the client.

Oh, and for those of you who have contributed to the osu-web project via bounties, we haven’t forgotten about you! If you feel like we have, then please bump your issues. If not, wait patiently and we’ll do our best to give you feedback until your code is merge-able. As the osu-web project is still in early stages, there’s still a lot of large changes going on, which makes handling external contributions a bit slower than I’d like. We’ll work on this.



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.