All Oculus Quest developers MUST PASS the concept review prior to gaining publishing access to the Quest Store and additional resources. Submit a concept document for review as early in your Quest application development cycle as possible:

For additional information and context, please see "Submitting Your App to the Oculus Quest Store".
Welcome to the Oculus Developer Forums!

Your participation on the forum is subject to the Oculus Code of Conduct.

In general, please be respectful and kind. If you violate the Oculus Code of Conduct, your access to the developer forums may be revoked at the discretion of Oculus staff.

Oculus Quest Multi-User in Unity

mofvrmofvr Posts: 3
edited June 2019 in Oculus Quest Development
Hello everyone,

I am currently researching about possibilities to make multi-user experiences for the Oculus Quest. I am especially interested in multiple users sharing the same playspace. Is it supported somehow? Are there any Unity Assets that could help? Or maybe an example project or Git repository where someone already tried something similar?

Thank you in advance.


  • mofvrmofvr Posts: 3
    I am not planning to release anything at the time. I just want to try things out.
    Do I have to find a workaround or does somebody have an idea?
  • RailonRailon Posts: 1
    You could use a networking solution like Photon:
    I used PUN (classic, the old version) in the past. It should be easy to use for some testing.

    Not sure if Oculus has something integrated (yet)?

  • julienkayjulienkay Posts: 24
    Brain Burst
    Photon is just a networking framework. Colocated tracking is nothing Photon or any other networking framework can do for you.

    When trying to have multiple Inside-Out tracked headsets like the Quest have a shared playspace, you need to match up their tracking data in some way.
    Google calls that 'Cloud Anchors' in ARCore.
    Windows calls it 'Spatial Anchors''.

    Oculus implemented something similar for their 'arena-scale' demo of Dead & Buried at the last Oculus Connect. They haven't released an API yet, although there have been reports that they intend to do so:

    So I think until Oculus releases something in that regards, it will be difficult to do. Integrating ARCore would also be difficult since we don't have access to the Quest's camera streams.
  • julienkayjulienkay Posts: 24
    Brain Burst
    Of course you can always roll your own "manual" alignment process that each HMD has to go through before starting the placing their controllers in a predefined place as a starting point or 'world origin' and pressing a button.
    The actual multiplayer logic would be done through something like UNet / Forge Networking / Photon or any other networking framework as mentioned above.
  • matiasbrumatiasbru Posts: 13
    Brain Burst
    I have the same question. I'm currently working on a VR multiplayer local experience using Photon PUN2 and Oculus Quest 2 devices.
    I found that Hololens is using something called "Azure Anchors" for spatial alignment. In this case, the first user creates an Azure Anchor point and store the anchor information in the Azure resource, then they share this anchor data among the new user/devices.
    It would be so could to have a similar implementation for the Quest2 + Photon.

    These are the steps for the Hololens, it would be a nice guide to try to implement something similar:
    1. On device 1: Start the app (the Rover Explorer is instantiated and placed on the table)
    2. On device 2: Start the app (both users see the table with the Rover Explorer, but the table does not appear in the same place and the user avatars do not appear where the users are)
    3. On device 1: Press the Start Azure Session button
    4. On device 1: Press the Create Azure Anchor button (creates anchor at the location of the TableAnchor object and stores the anchor information in the Azure resource).
    5. On device 1: Press the Share Azure Anchor button (shares the anchor ID with other users in real-time)
    6. On device 2: Press the Start Azure Session button
    7. On device 2: Press the Get Azure Anchor button (connects to the Azure resource to retrieve the anchor information for the shared anchor ID, then moves the TableAnchor object to the location where the anchor was created with the device 1)
    More info here:

Sign In or Register to comment.