2016

published 11 Jan 2016

Welcome back everyone! I’ve had a bit of a break over the last two weeks. I should say “break”, because I’ve still been spending a minimum of 3-4 hours a day just keeping up with the day-to-day running of osu!. Going to take a moment to reflect on 2015 and figure out my intentions for 2016. Bear with me, as I am not one to plan ahead, so anything I say here is raw and volatile (as in I reserve the right to change my mind).

What did we get done in 2015?

  • Moved over 75% users to the new GL/.NETv4 branch. There’s still a few yet to make the plunge for one reason or another, but we still have some improvements that are yet to go live in the performance and compatibility department over the coming months which should move this number closer to 100%.
  • Released the osu! “nono” keyboard and many other new merch items on the store. You will honestly never understand how much goes on behind the scenes to make the web store run and how much I’ve put into getting it going smoothly. That said, things are setup really nicely now and we have many new products coming this year for those waiting for the perfect item. We are looking at improving distribution to EU countries which currently get hit by some weird customs/taxing practices enforced by the governments over there.
  • The osu! tournament system got a lot of work. As a result, all the official tournaments ran smoother than ever. We introduced the first money prize pool for OWC 2015, along with the profile banner system. We’re constantly working to make tournaments as enjoyable as possible for both participants and viewers.
  • We began releasing osu! exclusive tracks courtesy of nekodex and cYsmix. Going forward you will likely see a lot more of this, too!
  • We announced the new osu! website. While it’s still not complete after a year of development, it is getting closer to being a stable and usable replacement for the old site.

I’ve probably missed a lot out from this list, but these were the things which stood out to me.

What are we doing in 2016?

Development & Contributions

Let me start by saying that I’m never satisfied with my own progress. I expected to get a lot more done in 2015. This can mostly be attributed to overheads in my own workflow which move my time away from writing code, including accounting, management of others, email/support communications, community management and infrastructure requirement changes (due to things like DDoS attacks).

I spent more money than before on hiring staff to try and get more development time into the game to make up for the deficit caused by me handling other issues, but even with low expectations this failed to meet my minimum expectations. I’ve learnt a lot in the process and will be aiming to change direction in 2016. My motto has always been to throw solutions until they work, which sometimes includes failing along the way.

At the end of the day, I don’t want to be in a position where I’m forced to manage people. When employing people on a part or full-time basis, unless they are extremely self-motivated driven people, you are forced to micro-manage. This is not something I want to do and thus I won’t be doing it anymore. I want people who are contributing to osu! to be doing it because they want to; because they are driven to do so.

What does this mean for 2016? The direction is to open-source everything and allow absolutely anyone an opportunity to contribute. I get a lot of emails from people asking for employment, and while I’d love to allow them the chance, the overheads that come with this are just not sustainable.

So, I want to get all existing developers working on a contractual basis fulfilling feature requests and bug fixes on per-issue (or per-hour where necessary to ensure their survival) basis, paying out roughly what you’d expect as a full-time contractor to make this a sustainable system.

Yes, I may be blocking some people who require job security from contributing, but it also weeds out those who don’t have the confidence, skill or motivation to contribute in a meaningful and consistent manner. In return, I promise that those who do meet the requirements and contribute on a regular basis will be amply rewarded.

Anti-cheat & Bans & Appeals

Some of you more active in certain parts of the community may have noticed over the recent months that we’ve been more agile in handling cheater reports. I’m constantly evaluating how we are combatting cheating and altering the strategy as required. We’ve lost some battles in 2015 and cheating efforts continue to grow in size but we have weeded out some long-term cheaters that were polluting the system.

I haven’t been too vocal about what I think of cheating/hacking because I believe that keeping these efforts private allow us to have the edge on users trying to abuse the system, but this year I am going to try making our efforts more public than ever, hopefully allowing others to contribute to the endless fight to keep osu! an enjoyable environment for legitimate users.

I’ve always been under the belief that cheaters are fine to exist as long as other users are not disrupted. Now before you attack me for this view, hear me out - If we were out to catch every last cheater, you’d see the following happen:

  • There would be a lot less time dedicated to actual development and improvement of the game itself.
  • We would be forced to introduce more intrusive measures to ensure we had full control of the situation.
  • It would push cheaters to resort to new methods, like hardware devices, which would be undetectable to us.

Until now this approach has worked relatively well, although at time we have been too slow to respond to an obvious cheater. Going forward I want to ensure our response time to cheat reports is as close to zero as possible, to give cheaters the smallest publicity/exposure possible (after all, this is usually what they want). I have some ideas for new methods in this regards, but we’ll also be reaching out to the community for help - I’ve seen a lot of people that have already been able to help us catch people that we had no idea were cheating.

We still have some large areas to fix (such as spinner hacks), which I hope to attend to this year using replay analysis amongst other techniques, assuming no one beats me :).

As for ban/restriction appeals: the current system is completely unsustainable. We have 4-5 people working every day on handling appeals and even then we cannot keep up. On top of this, there are many cases where we make mistakes. People that cheat also excel at lying and making up stories, so it’s very hard to decide where to draw the line.

There’s also the recurring case of people getting denied appeals, then just using further hacks to bypass multi-account detection and come back up to 120 times on new accounts where they (usually) proceed to cheat again. It’s nigh-impossible to solve this with the current system. Ban appeals favour compulsive liars and make it hard for the actual honest users to return to the game.

Going forward, we need to automate this process. We need cheaters to be put in a state they are able to continue playing without disturbing the average user who does not want to be around cheaters. They need to be happy with the state of their account so they aren’t tempted to constantly make new accounts and pollute the system.

Having said all this, you’d think I have a solution all thought-out. I don’t. This is by far the hardest thing to manage in osu! - and I’d go as far as saying it’s the same issue plaguing every online game out there. No one has found a solution for this. Honestly there may be no perfect solution, but this is the problem which keeps me up at night. I still believe we can implement a system which adds incentive to not cheat which doesn’t need manual oversight from a team of paid staff.

I’m open to input as always.

At the end of the day, though…

A lot of people think I run osu! as a business. I do, but only to the extent that I pay taxes and keep accounts. That’s about as far as I take it - osu! to me is and has always been a project of mine. It started out as a hobby and has become something much larger. Just because osu! now has over 1 million unique users (playing each month), please don’t hold me to run it as if it was LoL, WoW or anything similar. Those companies make games to make money. I make games to provide entertainment. Please don’t assume I follow the same ideals or have the same goals as such companies.

Making money from osu! is a reality. We make enough to employ people to handle the osu! store, support tickets, develop features and run tournaments. We make enough to fund tournaments without additional sponsors, fund new merchandise development and help out users if support is required (for instance, I offer servers to people making services which are related to osu!). While I’d love to be transparent with the way we use money, I honestly have not done this because I don’t want to shift the focus. I don’t want to involve you all with the burdens of accounting. I want to keep osu! the same as it has always been: focused on the game, the players and the community.

Trust that I am trying my best to not waste your money. I invest every last bit back into osu!, pay myself just enough to survive and constantly review and adjust how we spend the money you support osu! with. I am extremely happy that I can run a service of this scale with no advertising, no crappy in-app purchases or DLC, all while keeping an uptime and update release cycle that exceeds all the major games out there.

In 2016 I hope to invest more money back to contributors via open-source. Once we have our ecosystem set up to accept contributions from anyone, this will remove the previous overheads which stopped me from paying out for smaller (possibly once-off) contributions and also remove overheads of contracts and employment while still allowing recurring contributors to make a living from helping out with osu!.

2016 will be the year the osu! client goes open source. Hopefully sooner rather than later.

2016 will also be the year of many many more osu! original track releases. We’re still working on the specifics of this but I’m super-excited and can’t wait to announce the artists we have on-board for releases this year. I want to make the music side of osu! sustainable, and give users more choice in the songs they can use to map (ie. we obtain the legal rights to map music for mapping, so you don’t have to).

Sorry if this post is a bit of a rant, but I wanted to share everything currently on my mind. I hope you can agree with the direction I’m taking things, but if not please be as vocal as you want!

Oh, and osu!next will happen this year. While 2015 was a realistic goal at first, I hope you can that in running and improving a service, deadlines sometimes get pushed only - not because we want to, but because we have to. More on osu!next in the coming blog posts, I’m sure.

comments

20151219

published 19 Dec 2015

And so we approach the end of another year. We got quite a bit done this year, but as always seems to happen some “deadlines” have slipped past us. For those that still have a glimpse of hope, sorry but the osu!next design implementation will not be complete this year. Some people have been mentioning it recently like it’ll be a huge drop (basically like a new product) but let me stress that as with everything I do, it’ll be a gradual update of what we currently have, and you will be able to follow along on the Cutting Edge release stream.

With that out of the way, I have a few updates.

  • OWC winners (1st 2nd and 3rd) will actually be getting a limited edition mug on top of the aforementioned prizes! It completely slipped my mind that we had already completed the design, and were waiting on production run to complete. Will reveal it on here as soon as we receive them!
  • The osu!store has officially shut for this year. Thanks to everyone for your support. We truly hope your purchases have improved you quality of life in some small way. We do have a lot in store for 2016, with many new products in planning or production currently, so if you’ve been after something we don’t yet offer keep an eye on the store or my blog!
  • I put some work into the background saving system (which handles writing beatmap and score databases as well as all the configuration files to disk). Where previously saves would only happen when osu! was made inactive for a certain amount of time, now they will happen a lot more often, while still avoiding any performance degradation during gameplay. As a result, it should now be a whole lot harder for a single crash to result in data loss.
  • Due to a few remaining issues with keyboard sounds, the new sound scheme I said will be pushed to cutting edge probably won’t happen until next week. In its current state it would likely piss the majority of users off, so that’s probably for the best.

This may be my last blog for the year (no promises) as I will be spending Christmas with family and friends, so if you don’t hear from me again, have an amazing Christmas & New Year. Make sure to take occasional breaks from osu! and spend some time with your real-life acquaintances - they will definitely appreciate it!

Let’s make 2016 the best year osu! has seen yet.

comments

20151215

published 15 Dec 2015

I’m going to be mirroring a few recent updates I made on twitter, but there some more exciting new content too!

  • OWC 2015 was a blast. Amazing tournament to watch. Thanks to everyone who participated and everyone who watched on! We announced the physical prize that in my eyes is even cooler than the money prize: a unique pin badge set that is exclusively produced for 2015-2016 official tournaments!

  • So congratulations to USA taking away around $2,500 in prize money, China with $1,600 and Poland with $800. Prizes will be distributed early next year once we have the logistics in place.

  • Thanks to the 1,266 people who supported the tournament through a profile banner purchase. You managed to cover half of the prize pool, which is a huge help!

  • We’ve had a few issues getting tablets through the docks, but it looks like they should be back on the store tomorrow. Keep in mind we won’t be able to ship too many before Christmas, and the osu!store will be taking a brief break over the holidays.

  • osu! mugs are on their way early next year! We have a few other new products coming mid-to-late January, so keep your eyes open.

  • I rewrote BSS storage logic once again to improve reliability. It seems that the C# AWS SDK just wouldn’t live up to its name, so I’ve switched to using a command-line alternative. Been keeping a close eye on the server and it hasn’t fallen over once, so this is looking promising. We also have a patch incoming to the stable release tomorrow which helps with slow internet connections failing BSS uploads.

  • Currently have someone working on revamping the osu! interface sounds to make it feel much more awesome. I’ve always felt that for a rhythm game, osu! really doesn’t pay enough attention to sound effects. Keep in mind this is a work in progress, but consider it an example of the level of detail we plan on applying to the whole game as we move forward.

comments

20151212

published 12 Dec 2015

Looks like I’ll be falling back to a weekly entry once again!

  • Received the final sample of the yet-to-be-announced OWC prize! Make sure to follow along with tomorrow’s stream of the grand finals if you want to see what we have coming! Very excited to reveal it :).
  • Been working through some import issues to get the latest batch of osu!tablets on the store. Amazing how much trouble a few incorrect numbers can make on documents. Hopefully they’ll be back up on Monday, but do keep in mind the osu!store will be taking a break over Christmas again this year.
  • I put aside some time this week to improve the osu!store admin tools to be able to modify orders and addresses. Saves these issues falling back to me to complete at a lower level.
  • Still receiving your feedback about remaining performance issues. We’ve still got plenty to try out, so keep the logs coming on slack! As expected, Optimus architecture systems still seem to be an issue (low performance on dedicated GPU).
  • A new history architecture went live for the osu! editor, thanks to TheVileOne. This fixes the memory consumption issues of the old system and should make restoring undo states (and placing new notes on very long beatmaps) a much smoother experience.
  • Spent some time (as I do each month) reviewing server security. Strengthened server firewall rules and centralised logic for distributing these rules to each server.
  • Moved our cloud-based development environment to Singapore (used to be in the US) to allow for lower latency access from the main locations our devs work from. This reduces latency from 110-280ms to 60-110ms. Makes for a much smoother experience when not using local deployments (sometimes we need to test on more active live data).

I realise I haven’t streamed yet this week. Will try to fit some in tomorrow before the OWC finals! Better be there for those ;).

comments

20151206

published 06 Dec 2015

I may have somehow gone a week without updates, but I did manage to stream at least once! A lot has happened so let’s get straight into it.

  • NVIDIA performance issues are basically resolved! I couldn’t be happier to announce this. The culprit turned out to be the way we render sliders, and the fix (albeit a temporary one) was just a matter of limiting the updating of slider track textures to be less often. The amusing part is that the issue here only occurred for users which had hardware that was rendering simply too fast, and as such did not affect lower-end users.
  • We’re working on a more permanent solution which involves a lot more underlying changes to the way sliders are rendered. This is already partially implemented on cutting-edge, so feel free to help us out by testing the performance difference between beta and cutting-edge builds over the next week!
  • I’m looking for NVIDIA optimus users (people with dual-GPU laptops) to test further. Still not sure if we’ve resolved all problems with this hardware combination, so if you are still being affected on cutting-edge by bad performance when using the dedicated GPU, get on slack and ping me.
  • OWC 2015 is rapidly coming to an end. As we approach the finals, we are also reaching the cut-off for the ability to purchase a profile banner to support your favourite (remaining) team. Remember, if you have the banner of the winner, it will display for some time beyond the end of the tournament with a special winner design!
  • We’ve begun rolling out osu! client email verification requirements in a hope of making the game (and your account) more secure. Starting from the highest ranked players and gradually increasing the users covered by this protection over the coming weeks. Keep in mind if you are always playing from the PC, you may never see this come into effect as we know you are the true account owner already :).
  • I’ve been spending some time debugging an issue with outgoing email delays to google apps domains. If your osu! email address is a google apps one and you are experiencing delays, please let me know in the comments. This tends to happen at certain times in the day and usually resolves itself within 30-60 minutes.
  • We’ve learnt that some osu! nono keyboards have a fault LED in one of the keys. If you purchased one recently and your right-hand key LED backlight is consistently dimmer than the left, please get in touch with the store staff (reply to your order confirmation email) and we will send you a replacement LED you can drop in place.
  • I plan to try and stream at least once a week going forward, so keep a watch on my twitch channel if that interests you!

comments