Search Unity

Oculus Rift + VIVE development strategy?

Discussion in 'VR' started by ricarious, Feb 10, 2019.

  1. ricarious

    ricarious

    Joined:
    Nov 1, 2017
    Posts:
    21
    I want to build a VR app that runs on Oculus Rift and VIVE, and can be released on their stores (Oculus, Steam, HTC?). I have read a everything that I can find and still remain uncertain. ;-)

    I started here: https://developer.oculus.com/documentation/unity/latest/concepts/unity-cross-platform-dev/

    So, I understand that Unity has built-in (but limited) Oculus/OVR support that will run on both Oculus Rift and VIVE. I believe that this one target exe will run on both. However, the features that work are limited to OVRCameraRig, OVRDisplay, OVRInput, OVROverlay, OVRBoundary, etc. Note that the doc sez that this also supports cross-platform for Avatars (but it's quite limited and prob a non-starter). So far, so good (I think).

    However, things get messy if you use Oculus Integration or Utilities (and probably similar if you use extra SteamVR api features). And considering that I would prefer not to build this stuff myself, I am unclear how to use these non-conforming features and still deliver on both platforms. My first instinct is to build abstract components (e.g. AbstractAvatar) that perform run-time hardware checks and calls either OVR or SteamVR apis, but would love to avoid this if possible. This approach would require two separate builds, I think.

    Any advice or correction would be greatly appreciated.

    P.S. I anticipate that I will also have problems when it comes time to put the app into the various stores. For example, I have read that Oculus requires no references to SteamVR in your app to be accepted. Sigh...
     
  2. ricarious

    ricarious

    Joined:
    Nov 1, 2017
    Posts:
    21
    I would love to hear how others are developing VR apps for Rift and VIVE. I assume that the other approach is to go all in with OpenVR from Valve, but this appears to be less integrated with Unity.

    Any feedback, corrections, better ideas would be greatly appreciated.
     
  3. justdizzy

    justdizzy

    Joined:
    Mar 8, 2016
    Posts:
    89
    richardfu71, moscartong and ricarious like this.
  4. ricarious

    ricarious

    Joined:
    Nov 1, 2017
    Posts:
    21
    Both Oculus (OVR) and Valve (SteamVR/OpenVR) offer BASIC cross platform support (rendering, tracking, input). They look roughly equivalent, but both stop at avatars. Once you get into avatar/controller modeling, it appears that you need to do some work (either implement it yourself or somehow deconstruct what one or the other has done for avatars).

    I believe that VRTK stops at the same point. Does anyone know if VRTK abstracts avatars and allows one implementation that works on both Oculus Rift and VIVE?
     
  5. ricarious

    ricarious

    Joined:
    Nov 1, 2017
    Posts:
    21
    For the record, since Oculus does not support Linux, we chose to go with SteamVR and so far quite happy with it.
     
  6. ristophonics

    ristophonics

    Joined:
    May 23, 2014
    Posts:
    32
    I can second the idea that they stop at both Avatars. I am currently implementing this but getting no Avatar hands in the Sample Scene. Likewise the control inputs are not recognized when running OpenVR with the Oculus Integration setup. I made a bug for it here. I think its a bug =(
     
  7. Kubold

    Kubold

    Joined:
    May 10, 2012
    Posts:
    359
    I read that you are not allowed to be published on Oculus Store, if you have even a hint of SteamVR plugin or scripts in your game. That would mean, that if you base your game on SteamVR integration (which is great actually), you won't be published on Oculus Store. Is that true?
     
  8. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,512
    I've heard the same, but can't speak to it as yet. I suspect the way you'd want to this is to setup any of your platform specific code into prefabs that get loaded and handled by a generic controller.

    Then again, it may also be a misconception, and it might just be that your front-end can't mention Steam and such. This is pretty much the case on any platform in regards to competing platforms, so that would be the more likely situation, in my opinion.
     
  9. ROBYER1

    ROBYER1

    Joined:
    Oct 9, 2015
    Posts:
    1,454
  10. ROBYER1

    ROBYER1

    Joined:
    Oct 9, 2015
    Posts:
    1,454
    The question is, do you need controller models or avatars?

    VRTK V4 has support for setting this up yourself, see the docs here https://academy.vrtk.io/
     
  11. R1PFake

    R1PFake

    Joined:
    Aug 7, 2015
    Posts:
    542
    I think the answer is "easy".
    You should ask yourself "Do you need API (Oculus, SteamVR) specific features"?
    - No -> Use Unity native XR
    - Yes, but there might be a "workaround" to access them with Unity native XR -> Use Unity native
    - Yes, but there are no native XR "workarounds" -> Use the custom APIs

    I would also recommend (any developer) to code the VR stuff yourself instead of using something like VRTK, you will gain experience (it's not that hard) and have complete freedom instead of depending on a third party.
     
    ROBYER1 likes this.
  12. ROBYER1

    ROBYER1

    Joined:
    Oct 9, 2015
    Posts:
    1,454
    Agree with this, VRTK makes me nervous like, what happens when the funding for it stops (again) :O
     
    sezgink likes this.