dev changelog 20180222

published 23 Feb 2018

Having reached out on twitter for feedback and getting a huge response, a large focus was placed on fixing lingering issues in osu-web this week. Make sure to read to the end, as osu-web definitely MVP this week.

osu The osu!lazer project. The future of the osu! client. Download preview releases from here and follow along!

Surprisingly few things to comment on this week. I’ve been focused on the infrastructure required for skinning, which has involved cleaning up and preparing many other subsystems. smoogipoo has been working on the underlying pieces to bring the editor’s hitobject selection and mutation up to speed.

We’ve also been working on some lingering threading issues causing CI to occasionally fail. Solid under-the-hood progress.

Fix replay import #2087 (peppy)

While lazer did support drag-drop replay import, it was unknowingly broken for a good period of time. Now works, again.

Abstract away model-filemodel and add mutable stores #2070 (peppy)

This is the second of the large infrastructure changes required for skin imports (first was touched on last week). A simple way to explain this would be that we can now add new archive storage types to the game (like Beatmap or Skin) and have them use the central File store. This allows for de-duping and databasing at a global level. If a skin and beatmap were to reference the same file, it will only be stored on disk once, saving space.

Other Changes

  • Update framework #2101 (peppy)
  • Reword instances of “login” to “sign in” #2100 (Joehuu)
  • Fix stacking not working with sliders #2097 (smoogipoo)
  • Fix some common CI unit test failure causes #2096 (peppy)
  • Expose SliderBody’s snaking and border colour #2094 (smoogipoo)
  • Combine border radiuses of selection and capture boxes #2092 (smoogipoo)
  • Remove osu! playfield scale from the editor #2091 (smoogipoo)
  • Fix editor layers not respecting playfield aspect ratios + scales #2090 (smoogipoo)
  • Move manual OsuPlayfield aspect adjustment into the RulesetContainer method #2088 (smoogipoo)
  • Improve testability of API #2075 (peppy)
  • Collapse visual settings by default in player #2074 (peppy)
  • Give storyboards a BeatmapInfo to reduce weird method calls #2073 (peppy)
  • Update framework (and fix left/right arrow control of textboxes) #2071 (peppy)
  • Update framework with GameThread fixes #2066 (smoogipoo)
  • Fix drag handling in line with framework changes #2064 (peppy)
  • Rewrite editor hitobject selections #2058 (smoogipoo)
  • Restore nunit ruleset + waveform test cases #2034 (smoogipoo)

osu-framework The game framework behind osu!lazer. Written from scratch with osu! in mind, but very extensible.

Focus was on fixing some CI issues, such as web requests timing out at the remote end in web tests. Nothing really extraordinary here.

Other Changes

  • Fix Bindable’s GetBoundCopy using MemberwiseClone #1407 (peppy)
  • Remove WebRequest workaround for mono bug which has since been resolved #1406 (peppy)
  • Allow resource managers to accept and return null #1405 (peppy)
  • Revert retry test case changes #1404 (peppy)
  • Avoid test cases failing on directory cleanup exception #1403 (peppy)
  • Add a timeout for thread exiting #1402 (peppy)
  • Allow web request tests to re-run on failure #1401 (peppy)
  • Fix dynamically compiled test cases disappearing from old assembly #1400 (FreezyLemon)
  • Fix elements being out of order in PropertyDisplay #1398 (smoogipoo)
  • Fix backspace not working in some textboxes #1396 (peppy)
  • Fix PropertyDisplay ignoring protected and internal properties #1395 (smoogipoo)
  • Various improvements to textbox input #1394 (smoogipoo)
  • Fix thread race in path segment construction #1392 (smoogipoo)
  • Fix GameThread exits not running on the encapsulated thread #1391 (smoogipoo)
  • Fix regression in frame statistics display thread names #1390 (peppy)
  • Make Path receive input only on the path bounds #1383 (smoogipoo)

osu-web The new web front-end. Already live but hasn’t yet replaced the old site, pending feature parity.

You may have noticed that we have begun pushing people to try out the new site more recently. There’s now a new prominent banner on every page on the old site which has a newer counterpart, offering you quick access to switch across.

I also upgraded the server running the new site to a more production-ready server. There were previously some slowdowns during peak usage. This should no longer be the case!

Show genre and language and fix styles #2386 (nanaya)

Bigger stat icon and fixed spacings #2381 (nanaya)

These icons are now large enough to actually be recognisable and useful.

Add ‘show more’ for recent activity on user profiles #2379 (nekodex)

Not sure why this wasn’t a thing from the start, but you can now see more than the last six things a user did (up to a month, like the old site).

Less whitespace #2375 (nanaya)

We’ve listened to your feedback and adjusted paddings in multiple areas:

Best performance is more compressed

Beatmap panels on the listing are less tall than before (they will eventually get even shorter, but that’s in a future design iteration)

Don’t include results that didn’t match the username matchers #2373 (notbakaneko)

Searching for users no longer returns results that make you “wtf”. Although… brownpeppy? really?

Increase per-page topics listing #2362 (nanaya)

Forum now shows 30 topics per page, up from 15.

Scoreboard friend/self highlighting #2345 (nekodex)

Discussion navigation history #2270 (nanaya)

Finally you can link people to the exact view you are looking at in beatmap discussions. This includes the filters you have applied, such as difficulty, game mode and resolved status.

Different icon for unread topic #2449 (nanaya)

We added back icons to better differentiate read status of forum topics. The colours we were using were not so colour-blind friendly, it would seem!

Allow setting default playmode in profile page #2448 (nanaya)

You can now see which game mode a user has set as their default, denoted by a star next to it.

You can also change your own default. On the old site, this used to be an implicit action whenever you switched tabs while looking at your own profile, which was confusing to some. Now, you must click the new button to change your own default. Hopefully this should make a bit more sense and avoid confusion.

Recommended difficulty is back, with some huge performance improvements this time around. Converted toggle also available. Woo!

Country flags site-wide now link to country rankings. Eventually we hope to improve the country landing page with more than just rankings, but this’ll do for now.

Profile tooltips #2422 (nekodex)

Explaining what user details actually are.

Add a supporter promo to changelogs #2412 (LiquidPL)

We don’t really advertise supporter in many places, but I like to have a message on the changelogs when users update their osu! builds. If they like something that has been added, they may feel the urge to throw us some bucks.

This was already present on the old site.

Add experience bar to user profiles #2409 (LiquidPL)

Hover the level badge to see your experience bar!

Other Changes