2017 05 02

published 02 May 2017

Lots of pieces are moving! Hard to keep up with posting these things.

Ability to confine mouse to window

Until now the setting was visible but didn’t actually work. You will now be able to confine the mouse cursor to the window either always, or only when in borderless/fullscreen mode.

Functional Frame Limiter

I added support for frame limiter settings at a very basic level. Currently you can choose between VSync, 2x refresh, 4x refresh, 8x refresh and unlimited. The default is 2x.

Keep in mind that as we have decoupled update and draw updates, this setting is specifying the draw rate. Updates will run at a fixed 2x on top of the draw rate.

This may seem quite confusing to the end-user… well that’s because it is! Going forward I hope to work on exposing this setting in an understandable way that doesn’t require knowledge of multi-threaded architecture.

Tidying of unimplemented options

I took the opportunity of removing all unimplemented options from the codebase. While having them all in the options menu (albeit in a disabled state) made it look populated, going forward many of these options will be deprecated or replaced by more refined versions, so it felt counter-productive for the time being.

Now the only options you will see are one which actually function correctly.

Nested dependency support

DependencyContainers lie at the core of the osu! framework. They provide each drawable with resources they need to access in a safe yet flexible way. Until now, these dependencies have been shared game-wide.

With the work today, dependencies can now be overridden at any point in the draw hierarchy. An example of how this can be used that will make sense to the average osu! player is adding skinning support. Now somewhere before the playfield, things such as the texture and sample resource store can be overridden with prioritised lookups on skins’ and beatmaps’ resources, before failing back to game-wide defaults.

Searchable playlist

With the framework support finally being merged, adding searchability to playlists was but a simple change.

Other things

  • Work continues on the localisation engine. It’s rapidly approaching a usable state!

No release today!

Too many things going on to warrant pushing a new release out today. Maybe tomorrow :).