This has a few improvements / fixes that I'm sure many of you have been waiting for for a long time (and, to be honest, so have I ;-) ):
We finally have thumbpad / joystick scrolling in the osu! beatmap browser. So sorry this took so long! I have looked at several other games as well as the SteamVR dashboard, and to be honest, I didn't find an implementation that I felt was worth using as a reference. So the way this now works in Holodance is kind of like you'd expect it from a joystick: Move up a little and it starts scrolling upwards slowly, move up all the way and it scrolls really fast.
One of the challenges was that we have both very small lists (those are always easy) but when you have a full osu! library and select difficulty without grouping, you get a list with 45,000 entries. I think this works fairly well now but try for yourself and let us know.
Originally, scrolling only worked when you pressed the touchpad. This does have the benefit that you cannot accidentally start scrolling simply because you have your thumb on the touchpad ... but the it has the disadvantage that keeping the touchpad pressed while scrolling gets annoying very fast. Also, it's more difficult to find this feature when you have to press the touchpad.
Again, happy to hear feedback ... when a lot of you request it, we'll add an option so you can have the behavior you like.
Just one note about "scroll by moving your thumb over the touchpad": While this seems like an awesome idea in theory, all the implementations I've seen doing this were fairly annoying to me, and I think this simply doesn't work as well in practice as one would think in theory. This comes from touchscreen interfaces and there it works really well ... but the thumbpad is comparatively small, almost tiny, compared to the "screen" where you're scrolling. Again, when a lot of people ask for it, I'll try to come up with an implementation that works well but I have doubts this will work in all cases (remember: scrolling through 20 or even 50 entries is always easy; but 45K entries must also work).
Spinners ... up until this release, last touching controller won, and you couldn't spin with your head because accidentally getting your head into the spin area (last) would always ruin everything. Accidentally getting your second hand into the Spinner while spinning with the other hand would ruin everything. And this happened a lot, to some people. Now we keep track of every controller (including HMD) that's in the Spinner area, and the fastest moving one gets control. Sometimes, this doesn't do what it should for a very brief moment but I think we made have a huge improvement. And you can spin with your head again if that's something you're into.
Improved haptic feedback: We have a lot more haptic feedback in the UI now, which was necessary to make thumbpad scrolling work well (you get one pulse per scrolled item which is especially nice when scrolling very slowly). While we were at it, we have also improved haptic feedback for orbs (some people reported sometimes not getting pulses) as well as Sliders. Let us know what you think in the forums!
There's a little more - so here's the full list:
- Fixed issue that sometimes, simply looking at the UI would activate it (with a "lower offset"). The problem was that the HMD-camera was falsely used as pointer camera. This is now prevented from happening.
- osu!-beatmap browser: Added haptic feedback for all scrolling methods.
- Simplified haptic feedback for catching notes. Instead of working with duration and frequency, this now only works with intensity. It also gives you a decent pulse even if you are close to missing the note (i.e. when you still catch the note, you always should get a noticeable pulse).
- Improved haptic feedback for Sliders: This starts with a lower intensity vibration that increases while following the Slider. If you get 100%, you have maximum intensity at the end of the Slider, less otherwise.
- Fixed issue that moving to last/first page would not take you to the first/last page on very large lists.
- Changing the difficulty filter range now has a more delayed effect because the filter operation requires disabling a few things, which basically stops changing that filter for a moment. By decreasing the frequency of these updates, this happens much less and you still get an updated list every 1.5 seconds (instead of twice per second, which also meant two "hiccups" per second).
- Increased minimum scrollbar handle size. With very large lists (many thousands of songs / beatmaps), the scrollbar handle eventually become just a pixel line, and with even more items basically became invisible. As this is your orientation for where you are in the list, completely hiding it was not cool so it's good that this is now fixed.
- Added configuration option for auto-downloading last played and favorites songs ("autoDownloadOsuBeatmaps" in Configuration.json). Default is false, so we're no longer downloading stuff automatically.
- Added beatmap hash to our lookups; this should looking up existing beatmaps much more reliable. The only problem is that in older versions, we didn't even have those hashes, so in those cases, the lookup via hash will fail.
- Fixed cursor offset that made the cursor always appear a little above the laser pointer. Also now using a nicer cursor pointer.
- Added Slider "progress feedback". This isn't perfect, yet, but it's a beginning.
- When multiple controllers touch a Spinner (which often happens accidentally), the fastest moving one now gets control. This fixes an issue we've had for a long time where Spinners would get "stuck" with one controller that often was not the one you were actually moving. Now that this is working properly, you can also spin Spinners with your head again but to do that, you'll usually want to have the controllers out of the Spinner area because it's kind of hard to move your head fast while keeping your hands more or less without movement. Spinning Spinners with your head is kind of a crazy workout thing, though.
- Added thumbpad scrolling (joystick scrolling when using Oculus Touch): When you press the thumbpad / joystick and move either up or down, you now scroll with a speed that depends on how far up/down you move your thumb / the joystick. We also considered using the "swipe gesture" but the problem is that we have fairly short lists and very long lists, and using the swipe gesture would by far not give you the same level of control. The speed of scrolling is non-linear, so in the area round the center, you have fairly fine control so that you can have comparatively slow scrolling even in huge lists. On the upper and lower end, you get the fastest possible scrolling.