Forum Discussion

🚨 This forum is archived and read-only. To submit a forum post, please visit our new Developer Forum. 🚨
jordirovirabone's avatar
jordirovirabone
Honored Guest
9 years ago

Oculus Platform P2P Scope

Hi,

  There isn't much documentation as far as i know about the Oculus platform P2P part. My tests so far seem to all be ok to send some messages, but i am wondering what the target is for this part of the platform.

  More specifically, i would like to know if it is a good idea to wrap the entire game traffic and send it using this API instead of a direct app-created UDP socket. Even more specifically, I am considering wrapping the entire Unreal Engine 4 network traffic and bridging it over the Oculus P2P. Any insights?

Thanks!

j.

3 Replies

Replies have been turned off for this discussion
  • owenwp's avatar
    owenwp
    Expert Protege
    It includes NAT punchthrough and relay servers, without which you usually won't be able to do any P2P communication.  If you don't provide your own servers, you need something like this.
  • Our Unreal Engine integration (shipped in the platform 1.2 SDK) includes networking support.  So you can just use the standard unreal tools for this.  That package supports UE 4.10, we just made a 4.11 version let me know if you need that.

    Like owenp said, the main reason you'd use our p2p layer is for NAT traversal, and because it's a lot easier to address a user by userid and keeping track of their IP address etc.  
  • Thanks for the reply. My question is more about the performance of this P2P network on bandwidth and latency. For instance, for some combinatinons of NATs it is not possible to establish a P2P connection, which forces relying on an intermediate relay server. If the traffic the app sends is very big and there are many users, this could saturate the relay server. I'd like to know if this system has been designed to stand all this, or just as low-traffic handhsake-oriented system.

    Our tests so far seem to show some unreliability with messages arriving very late sometimes (minutes) and pretty fast other times.

    Moreover we sometime get strange feedback from the P2P calls. For instance, we see a ovr_NetworkingPeer_GetState returning a state with value 3, when the enumeration on the headers we have seems to have values from 0 to 2 according to ovrPeerConnectionState in OVR_Networking.h .

    Thanks.