osu!stream was a project devised by me in 2012 to experiment with the idea of an osu! game on mobile platforms. The focus was on trying new things, so not only did I want to experiment with mobile game development, but also add elements using multi-touch. In addition, unlike the desktop release I wanted to have a go at curating all game content, including both licensing music and putting together a team of awesome mappers to create the beatmaps.

Before I delve into some history and tidbits on the project, if you’re just interested in giving it a shot, click here to visit the app store and grab yourself a copy!

History

osu!stream began development on May 8 2010 and was released on August 1 2011. During this time, I was concurrently working on the PC version of osu!, so osu!stream was somewhat a “side” project. Updates were released in the form of new features (such as the ability to preview maps before downloading) and song packs over the next 2 years or so.

It gained some attention over the internet, and was featured by Xamarin as a game made completely on the Xamarin.iOS framework (link now defunct, unfortunately).

The game did quite well from a sales perspective, but was hindered by the complexity of the beatmap creation process and limited song choice for mappers. Many of the mappers either lost interest or didn’t have enough spare time to keep a constant.. stream of beatmaps coming in.

At the same time, osu! on PC was constantly growing in size. It’s very hard to keep track of multiple projects, so I eventually made the decision to move my focus back completely to PC and let osu!stream sit without real updates for years. I don’t regret this decision; the game was left in a good state and has enough beatmaps to be a very fun and unique “osu!” experience. I still see it as the most polished osu! release to date – although this is soon to be surpassed.

Interestingly, a lot of the concepts we are using in osu!framework have some history of being present in osu!stream. The concept of hierarchical drawables/sprites began to appear, and while quite raw, was used to apply game-wide scale and rotation effects which would otherwise not have worked on limited mobile hardware.

Some statistics

There were a total of 3,839,438 scores submitted over osu!stream’s lifetime. This doesn’t include fails, unlike osu!, and only considers those that logged in via twitter (241,540 total). For a better idea of total audience, there were a total of over 1.5 million installations as of 2016. It’s safe to say a lot of people enjoyed the game!

2.6 million free beatmap packs were downloaded over this period. As for sales, there were a total of 24,943 beatmap pack sales (averaging US$1.99 a piece) by 13,635 users. After taking out apple’s cut and artist’s cut, this worked out to around $24,000 in revenue over the lifetime of the product. This was distributed between myself, the mappers, other devs who contributed time and the graphics design work.

The mapping team consisted of around 15 people, hand-picked based on their mapping style (I wanted to emulate the amazing feel of iNiS maps – the stuff that was in the Osu! Tatakae! Ouendan! / Elite Beat Agents series). We released a total of 37 beatmaps for it by the end. Beyond this though, there were over 100 beatmaps in some stage of creation.

A final release

Today marks the first update since September 2015. I was actually planning on making this update over a year ago, but ran into some serious issues with newer Xamarin versions where the game would freeze at random due to a native memory issue. I came back to this muiltiple times over the last year and while I have still not tracked down the underlying cause for it (likely a mono bug), I found a hacky workaround which allowed this release to happen.

A few things have changed in this release:

The game soundtrack has received a complete refresh thanks to superstar osu! composer nekodex! Experience a new take on the original osu!stream soundtrack in the game (pay attention to the main menu visualiser which is synced up to the new track). If you want to listen outside the game, you can also buy or stream the album (including the old version of each track) from your favourite store/streaming service .

thanks to superstar osu! composer nekodex! Experience a new take on the original osu!stream soundtrack in the game (pay attention to the main menu visualiser which is synced up to the new track). If you want to listen outside the game, you can also buy or stream the album (including the old version of each track) from your favourite store/streaming service . Support has been added for new device aspect ratios and notch things (iPhone 10 / 11). The implementation of this was a bit hacky, but oh well.

All beatmap packs are now free . They are still available via the “store” screen as I wanted to retain the original game experience.

. They are still available via the “store” screen as I wanted to retain the original game experience. A few extra unreleased packs are also available as a bonus. These never made it out due to licensing or quality control issues, but I feel like there’s not much reason to hold back now.

as a bonus. These never made it out due to licensing or quality control issues, but I feel like there’s not much reason to hold back now. Online ranking and login has been disabled. This used to be provided via a twitter login, but the API has changed and I don’t really feel like updating that or maintaining the scoreboard. Existing scores are still visible, as I want people to be able to experience as much of the game experience as it was when fully activated.

I will not be working on this project further due to time constraints. While this may disappoint many, please be rest assured that the osu!lazer project has mobile in its sights, including bringing back elements of osu!stream (like multitouch)! For those unaware, you can already join the testflight beta program and jump straight in to give that a try.

Of course, there’s one little thing I failed to mention: I am also releasing the source code to osu!stream, including all the beatmap creation tools and local multiplayer server (see the network branch).

While this is by no means a pristine codebase (try osu!lazer / osu!framework for that!), my hope is that some curious developers can see what goes in to making a game from scratch with a focus on releasing it rather than making the code perfect. You have to cut corners sometimes (and oh so many were cut) to get things released.

As for the future of this repository, I may provide code review and potential app updates if there are user contributions, although the criteria for these is quite specific so please make sure to read the README before diving in too deep.

While released under the all-permissive MIT license, please note that the osu! name is still covered by trademark law and you shouldn’t go distributing binaries of this app unless you first rebrand it. And I’d still rather you ask before doing so in such cases, out of courtesy.

Fun facts

A lot of cool things came from this project. Here’s some things you may now know about it: