2016-06 dev meeting

published 22 Jul 2016

June might be mostly done, but that doesn’t mean we all forgot about our monthly meeting! Just the person responsible for writing the summary did. Oops.

As our monthly development meetings continue to be very much a revolving door of ideas and formats, June continued the trend of everything being pretty much completely different from the month before. Instead of discussing grand, overarching goals that we’d like to see completed, we turned our efforts towards keeping each other updated and involved about our respective tasks within the team.

That being said, June was not a very productive month for us, unfortunately.

Here’s a summary of what went down:

  • osu-web development continues, and the forums draw closer to being ready for a complete switch-over. It is something of a recurring theme for these posts to contain things that are almost ready for deployment, but the new forums (henceforth referred to as jizz in memoriam of its early working subdomain) are pretty much done. Granted, we said we’d get this out last month, and the month before that too. Things are progressing slower than we’d like, but they’re getting there. This includes the elusive moddingv2, as well.
  • LAZER is getting closer to a final, public release candidate. The final phase of the open-source plan for osu! approaches completion, and once the bulk of LAZER is done, development can be entrusted not only to just the in-house developers we have currently, but the entire community. It’s slow, arduous work (as highlighted in this blog post by peppy), but absolutely mandatory for pretty much everything else to get done.
  • New designs for a sleek, black osu!tablet are entering full production soon. Some of you might’ve already seen peppy’s tweet about the design. A few early issues with the prototype unit were identified and sent off to be fixed, but we hope to get a stock of these new, improved tablets in sooner rather than later.
  • Beatmapping contests will be held more frequently from now on. We’ve had a bit of a dearth of these in recent months, bar the recent Aspire contest, but we plan to host many more of them in the remainder of the year. These new contests will be across all gamemodes, and will include a shift from solely a jury-type judging system to a full community voting system.

The next dev meeting will be held on the public osu!dev discord in real-time. Spectators (listeners?) will only be able to listen in to our feckless banter, but we will have a small section towards the end of the meeting where we take some questions from those listening to mull over.

The date is not yet solidified, but it will be at 16:00 UTC on a given date between the 29th of July to the 1st of August. We’ll post with more details when the exact date is ironed out. Anyone with approved access to the osu!dev discord is free to join and listen in. We might even release a recording of the meeting afterwards if all goes well. We’ll see!

See you there!

– Ephemeral


a long-overdue update

published 30 Jun 2016

It’s been a while since I’ve posted, but trust me that it is for the best! The progress we’ve been making recently has been amazing, and I am very excited for the future! Let me bring you all up-to-date with what has been going on behind the scenes.


The lazer build has been my number one focus over the last few weeks, diverting my attention from everyday operations to actually writing code. I’ve been changing upwards of 2,000 lines of code a day (consider that the whole osu! project is only 72,000 LoC) in order to bring osu! into a state which prepares it for the future.

We’ve made some huge advances in technology and infrastructure of the client which are absolutely necessary as a solid base for the features we plan to implement going forward. Just to give you an idea of the things I’ve been working on:

  • Until now we used some XNA code for input handling and low-level structs. These dependencies are almost compeletely removed from the project now, with OpenTK or similar open-source frameworks replacing them. All that’s left is Vector2, Vector3 and Matrix. These last few are a bit more complicated to remove than the rest, but should be gone soon.

  • The audio subsystem is now in a better state than ever before. What was previously a mess of co-dependent classes and statics is not a lean Clock hierarchy. Each clock performs a specific task, allowing for very logical control of things like interpolation, frame-based time separation, offsets, rate adjustments and virtual time (intro/outro time).
  • The input subsystem has been rewritten multiple times in order to create the easiest and most understandable framework for how we plan on handling user input. Hard to show this visually, but definitely a step in the right direction.
  • What was previously a mess of independent static classes is now a since static OsuGame which acts as the root for things that need regular game-wide access, like Config, Audio and Skin subsystems.
  • The text input system received a huge overhaul, allowing for proper text selection, keyboard shortcuts like ctrl-a, shift-home, ctrl-shift-rightarrow and mouse shortcuts like double-click or drag selection.
  • The new draw and transformation hierarchy is capable of doing some pretty cool stuff! Below is a quick demo idea stolen from anime.js stress test that I replicated in about 5 minutes.
  • osu! can now be resized to virtually any windowed resolution without completely falling apart. Going forward this will probably no longer require a mode reload, which you can see in the current example.
  • Online support has been added back using the new osu-web client API. This will replace bancho going forward. So far, only basic login and chat (read-only) is available, but you can see already that chat can fetch previous history when connecting, unlike bancho.
  • The startup sequence has been modified to get an OpenGl context as soon as possible (for me, this is about 300ms for the osu! window to first display). The splash screen is therefore no longer necessary and will be replaced by the game intro sequence, during which other components will be initialised. I really hated the splash screen anyway, so good riddance!
  • We are targeting .NET 4.5 and are already deploying live with dual-targeting binaries (32 and 64-bit). Check it out, but don’t expect too much. A lot is broken and we are aware of this. note that this installer will install alongside your existing osu! install, and should NOT be used to replace your existing one.

I was hoping to open-source the project last week, but in the process of doing so I came across a lot of very old code which should not be seen by anyone. I’m therefore delaying the open-sourcing until I can first tidy things up a bit more. That said, read on for an opportunity to help out before we go open-source if that’s something you think you are capable of!

As you may have realised, the lazer project has increased in scope since I set out. What was originally supposed to be a 2-3 month project which would be released to cutting-edge (and subsequently as a stable release) is now turning in to closer to a full rewrite of the game. This is not a bad thing in my eyes, but it will affect the update schedule of osu!. You won’t be seeing any large updates to the stable branch (bug fixes being the exception) because it would mean implementing things twice - which we definitely want to avoid!

That said, osu!next (the design concept) is no longer a dream but a reality that is starting to piece together!

osu!dev discord

In my continuing effort to make osu! as close to 100% transparency as possible, we’ve moved all development efforts out of the private/public slack networks and into a new public discord network. I hope this will eventually lead to more collaboration from outside the team, but for the time being it lets anyone who wishes to oversee our development efforts in real-time.

If you are interested in helping out with the lazer project, make sure to let us know. We are accepting private contributors to the project on request, so come in to #osu-lazer and let us know your qualifications and github username if interested.

If you haven’t yet joined us and this kind of thing interest you, please use this invite! Make sure you hang around until you have been verified or you will automatically leave the network.


2016-05 dev meeting

published 04 Jun 2016

A new month dawns, and so too does another dev meeting guestpost. Like clockwork, or calendar-work, if you’re so inclined.

This month’s meeting was probably our largest yet, as the some of the new early-bird contributors (affectionately dubbed the LAZERhawks.. by me) were invited to sit in and give their piece on the way their projects were going. Many a warm welcome was given. Here’s what went down:

  • LAZER development continues at a steady pace (still), but a little slower than was originally hoped. The LAZERhawks and the core developers hope to get a usable build (without online features) onto a CE release stream at some point within the next month. The conclusion of the LAZER project is pretty much essential to future osu!next development as it makes a lot of systems and features significantly easier to implement later on down the line, so time spent getting it right is ultimately better for osu! as a whole. This isn’t going to turn into another “osz2” type Soon(tm), we promise!
  • A number of performance improvements for general OpenGL use on the Windows platform are slated to be merged in later this month. Not much else to say other than all the performance, all the time.
  • The new forums continue to draw closer and closer to full release. With the addition of a last set of moderation tools, the new forum system is teasingly close to being rolled out fully, pending a few other features in osu!web that are yet to be done. Expect it to happen soon! That being said..
  • osu!web development is not happening as fast as we would like. We’re always looking for new web developers to contribute towards the web face of osu!next - simply consult the github issues page for the current outstanding bounties to see what work needs to be done, if you’re interested.
  • Within the next month, new beatmap submissions will be moving over to using the “moddingv2” system that was trialled earlier last month. The QAT will oversee this new system (as was their role’s original intent) and will help the developers by providing feedback from users and anything else that could be used to help make the new system better.
  • Lots of new achievements incoming. We’ve got one “showcase” planned for a bunch of entry-level medals, and then we’ll start unveiling the new fiendishly difficult “hush-hush 2” type achievements on a weekly basis. Some of them are easier than others. Some are going to need serendipity for people to even get them. One thing is certain - and that is people are going to love them. Oh, and there’s a bunch of progression achievements slated to be released for every gamemode seperately within the next month, so look forward to that, too!
  • We’ll be significantly broadening our scope for music artists who are willing to work with us. We have plans to provide the community with hundreds of official tracks (eventually) on the back of a long-held vision for creating a unique music scene around osu!. If you know of any artists who produce high quality music that could readily be mapped (or is just suited for rhythm games in general), please, let us know in the comments!
  • The Chart system as a whole is being considered for a massive overhaul. Inspired by the “courses” the Mania community has taken to making for itself, we’re thinking about introducing new relevance and meaning to the charts in a similar format, though the idea is very much in its infancy at this point. Keep your eyes (and ears) peeled!

Meanwhile, flyte is slowly dying under the creative strain of drafting hundreds and hundreds and hundreds of medals. I regret nothing.

See you next month!


early-bird contributors

published 18 May 2016

In our efforts to release the osu! client as open source, we still have a lot of clean-up and refactoring that needs to be done. I’ve been putting in as much of my own time as possible to make this happen, but things are still a bit slower than I’m hoping for.

Last meeting I made the decision to fork what is known as “lazer” into a new git repository. The purpose of this would be to remove all history, confidential code, deprecated systems etc. and provide a new starting point for the open source future.

While we are not ready to make the open source project available, I am now seeking developers who are interested in helping out before this happens. Because this is an effort to increase efficiency, applicant criteria are very strict, so make sure to read the carefully before applying:

  • Agree to work under a non-open source licence (all contributions would be copyright ppy Pty Ltd).
  • Have a confident knowledge of c# 6.0 and be able to prove it with github projects.
  • Have a confident knowledge of tree-based rendering.
  • Willing to work on specific areas we require you to focus on.
  • Be an amicable person.
  • Happy to work without rewards (though as always, I will try to reward significant contributions at rates beyond expectations).
  • Have enough free time over the next few months to contribute at a decent rate.

If interested, contact using a plain text email at lazer@ppy.sh. Include a link to your github profile and any reasons you want to be included on this project. I will give precedence to people who I am familiar with.

Don’t necessarily expect a reply; I’ll only reply to those people who we decide are good fits for the team. Also keep in mind that we are not ready to accept contributors so replying may take a week or two.

If you apply but miss out, please don’t be disheartened! This is a very targeted team only to help us prepare osu! for mainstream contributions. You will have your chance soon :).


2016-04 dev meeting

published 04 May 2016

Guess who’s back again with another set of delicious monthly meeting notes? Ephemeral, that’s who.

There’s a fair bit to get stuck into this month, so let’s get cracking straight away. As always, these notes only encompass a tiny portion of what is actually going on behind the scenes, so get hyped!

  • Progress on the open-source branch known as “LAZER” progresses at a good pace. Additionally, one portion of osu!’s performance metric calculator went open source in the days before the meeting, allowing the technically inclined members of the community to create their own pp calculators.
  • The osu!tournament client is slated for a number of improvements in the coming months, ranging from performance upgrades to new feature additions. One such addition is the inclusion of a “score drift” bar, which will let viewers see a clean representation of the score difference between the two teams. This sounds little, but is actually a huge increase to the readability of a match when viewed as a spectator. A live prototype of this concept already exists, and we’re just waiting for a final design to get it out!
  • The final days of the current forum system draw near. The list of tasks that need to be completed before the move to the osu!next forums grows smaller and smaller with each month, and we’re well on track for full deployment of the new forum software by the end of the year, probably even a lot sooner.
  • New options will be added to the game client when playing qualified maps. These options will hinge around the new reporting system introduced in the wake of the recent QAT changes, allowing users to quickly and effortlessly report issues with qualified maps on the fly.
  • More progression achievements are slated for release later in the month. These new achievements will be tiered and available to almost everybody from the get-go. So far, there’s over 24 achievements in the set to be released, and the number is likely to increase. We’ll be looking at more map-specific achievements in the future, as well.
  • Mapping bounties for official tracks will make a return this month. Once the old bounties for the cYsmix tracks and the circles! track are sorted out, we plan to release a bunch more and get the system governing them working a lot more smoothly. Map awesome music and get cool shit for it!
  • More video content will be coming out for the osu!academy later in the month. We’ve also merged the ailing osu!news channel into the osu!academy so that people do not have to subscribe to multiple channels to get their osu! fix. There’s also a few series from last month which have been delayed, but should be released later on as well.

There was also a slight incident involving an airhorn bot, but we shall never speak of it again.

See you next month!