We’re changing the way Roblox client and Studio integrate with SteamVR-supported headsets and this post explains how and why!
TL;DR: Make sure SteamVR is running before launching player/Studio if you want to play or develop in VR. This doesn’t affect you if you are using an Oculus Rift or if you don’t have a VR device.
How did VR integration work before?
Up until this week, the way we’ve worked with VR devices is that upon launch, client/Studio would try to see if you have a VR device that’s connected to your computer. If that was the case, we would assume you want to start Roblox in VR mode. This was true for both Oculus Rift devices (that work when side-loading is enabled) and SteamVR devices like HTC Vive or Valve Index.
When working with SteamVR devices, this meant that Studio or Client would automatically start up SteamVR - this is the behavior dictated by SteamVR SDK.
What’s wrong with that?
While convenient if you always want to use VR, this behavior presented significant challenges when you want to use VR occasionally - especially when using SteamVR.
One problem with this is that all content will use VR whether you want it or not. When we launched VR support in 2016 we didn’t clearly understand the interaction patterns and expected that if you have a VR headset connected, you want to use it all the time. We also expected a lot of Roblox games to work out of the box once we invest in VR-friendly camera/control schemes.
Unfortunately, Roblox games are often not VR-optimized and as such forcing VR use prevents people from using VR comfortably. Similarly, if you use Studio for development, with this flow you must test your games in VR. As much as y’all love VR, it probably makes more sense to test your games without VR unless you’re testing VR mechanics specifically.
In addition to that, we’ve hit bugs with SteamVR interaction with some systems that would mean that in some cases, SteamVR UI would show up even if you don’t have any VR device connected! This wasn’t great since it was impacting some users who never even had a VR device to begin with - launching SteamVR if you don’t want to use VR can be distracting. To work around these bugs, we’ve implemented a custom USB discovery mechanism that relied on us explicitly enabling support for select VR devices. This mechanism also didn’t work well when your device was connected wirelessly, as the system would not have any USB devices related to VR!
To solve some of these problems we’ve introduced a VR setting at the end of 2017. However, this setting also isn’t without faults:
- It’s easy to enable this setting when you aren’t in VR, but the setting persists for future launches, and disabling it requires VR interaction (naturally), which can be inconvenient especially if you forget about it
- Due to how the setting is implemented, even when it’s disabled we would still launch SteamVR when starting up client/studio - we would just not activate VR! This can have a side effect of switching the current audio input/output device in Windows which can interfere with the normal behavior of the game.
Ok, fine, now what?
VR currently is not a high priority area for us - while we’re happy to maintain the level of support we have today and fix reported issues as time permits, we can’t dedicate a lot of time to completely rework product flows for VR.
However, we do want to fix issues we find in VR and this launch behavior was decidedly suboptimal. It resulted in users getting VR headsets that SteamVR supports only to realize they don’t work with Roblox, or forgetting to unplug your Index and suddenly being put into a VR experience.
Because of this, we’ve implemented a simple change that some other dual-mode games on Steam use, which is:
When using SteamVR, VR will only activate if SteamVR is already running.
This means that if you want to use Roblox in VR, you simply need to start SteamVR before starting client or Studio. And make sure that VR setting is on, if you’ve already disabled it long time ago, of course.
We hope that this is going to result in a smoother experience for SteamVR users, as they will be able to use the platform as they normally would for non-VR-compatible content, and explicitly start SteamVR every time you want to check out a game that works better in VR or want to experiment with a new game idea that requires VR to shine.
Note that this change is specific to SteamVR; if you use an Oculus Rift headset, you won’t be affected. We also suspect that this enables people with various VR headsets that didn’t work before to check VR out in Roblox, but we can’t exactly go to the office and verify this, so let’s just assume it’s all perfect now!
This change was briefly live a few weeks ago but we had to disable it as it didn’t result in correct VR display on some systems; the version this week should work well.
This is great, what about these other VR-specific issues?
We can’t promise any ETA on fixing anything else that’s wrong with VR; if you have any bugs that you want us to look into, feel free to report them on the forum as usual - but please be patient as this isn’t high priority for us right now.