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.

Please update the Unreal Oculus Platform SDK Sample Project

MrComfortMrComfort Posts: 28
Brain Burst
The Oculus Platform SDK Sampel Project for Unreal Engine (which you can download here https://developer.oculus.com/downloads/package/oculus-platform-sdk/) is not working.

Direct Connection: I can connect via OculusID.oculus with a listen server, but pawn movement of the client is not displayed on the server. Probably some authority problem. No clue where authorities are managed here.

Connection via Oculus: Creating a Session works and the client friend can click on the server-friend's created session to join. When clicking Start Session nothing happens. Sometimes one or both players are getting kicked out, the status messages show different things for both connected players, it is not possible to invite a friend to the session and destroying sessions does not work. VoIP does work sometimes.

And please work with Unreal to create the missing SDK Blueprints: A lot of SDK features are currently only for C++, please add these as blueprints.
Also, Avatar SDK in combination with multiplayer...

Also a in depth guide on how to do all the Oculus SDK things and a tutorial for a fully working sample game with every SDK feature in it would be amazing. Maybe Unreal could provide a template to download.

I love you guys at Oculus and Unreal, but please help the UE4 VR devs a bit more in creating amazing multiplayer experiences:)

Comments

  • MrComfortMrComfort Posts: 28
    Brain Burst
    edited July 2018
    Hi @imperativity ,

     thanks so much for helping out!

    The Oculus Platform SDK Sampel Project for Unreal Engine (which you can download here https://developer.oculus.com/downloads/package/oculus-platform-sdk/) is not working.

    This is the general Oculus Platform SDK and is not for any particular game engine. It is also functioning correctly for me on import. What is not working for you?
    I was referring to the Unreal Sample Project included in the Oculus Platform SDK download (under Samples/UnrealSample).
    I was also testing Oculus Matchmaking (creating a session and trying to find said session via an Oculus Pool) with BPs on a clean Unreal project and it could not even find any sessions on client PC (Engine cfg files were of course edited to include OSS NetDriver). I will add a log for this on a seperate reply after this one.  
    Connection via Oculus: Creating a Session works and the client friend can click on the server-friend's created session to join. When clicking Start Session nothing happens. Sometimes one or both players are getting kicked out, the status messages show different things for both connected players, it is not possible to invite a friend to the session and destroying sessions does not work. VoIP does work sometimes.

    I would need some log files from when this behavior is occurring and the version of Unreal you are using. Is it the binary, the launcher or our github release?
    I was testing with the launcher version of Unreal (4.19). Should I use the github release?

    The log file I attached to this post is for the packaged UnrealSampleProject; I created a session, joined with a client on another PC running a testUser by clicking on the "Friend's Sessions" button inside the matchmaking menu and then tried to start the session. After starting the session nothing happened (server showed Game in Progress) and on the client the session status was still at "creating".
    I hope the log has all the information you need. if you need anything else please let me know.

    Direct Connection: I can connect via OculusID.oculus with a listen server, but pawn movement of the client is not displayed on the server. Probably some authority problem. No clue where authorities are managed here.

    Are you referring to peer-to-peer networking? If so, the documentation at the bottom of this page will give you the answer you need for this functionality.
    Thank you, I will check this out, though Oculus Matchmaking is the priority.

    Thanks for your feedback on the below. We are working towards creating as comprehensive sample framework in the near future to bring Unreal closer to Unity in terms of support and sample framework.

    Thanks so much! That would be amazing!

    Edit: We tested the 4.19 Oculus GitHub integration but still not working. 

  • MrComfortMrComfort Posts: 28
    Brain Burst
    edited July 2018
    Here is another Log file of a test we did.

    First we host a session using "Start session" and have a client connect to this session. The host shows two people connected, but thinks that the client dropped its connection after a while. The client itself still thinks it is connected and shows two people inside the lobby, whilst the server already only shows one person inside the lobby.
    Waiting a bit longer finally crashes the host with the following call-stack dump:

    Assertion failed: NumberOfFreeBits >= 0
    UE4Editor_Engine!UNetConnection::GetFreeSendBufferBits()
    UE4Editor_Engine!UNetConnection::WriteBitsToSendBuffer()
    UE4Editor_Engine!UNetConnection::SendAck()
    UE4Editor_Engine!UNetConnection::ReceivedPacket()
    UE4Editor_Engine!UNetConnection::ReceivedRawPacket()
    UE4Editor_OnlineSubsystemOculus!UOculusNetDriver::TickDispatch() UE4Editor_Engine!TBaseUObjectMethodDelegateInstance<0,UNetDriver,void __cdecl(float)>::ExecuteIfSafe()
    UE4Editor_Engine!TBaseMulticastDelegate<void,float>::Broadcast() UE4Editor_Engine!UWorld::Tick()
    UE4Editor_Engine!UGameEngine::Tick()
    UE4Editor!FEngineLoop::Tick()
    UE4Editor!GuardedMain()
    UE4Editor!GuardedMainWrapper()
    UE4Editor!WinMain()
    UE4Editor!__scrt_common_main_seh()

    It looks like the number of free bits inside the send buffer is somehow negative on the hosting side, thus the communication from the host to the client breaks down.
    This was tested on four different systems and on multiple versions of the Unreal Engine (4.17 Launcher, 4.18 Launcher, 4.20 Launcher, 4.19 Oculus Source Code).

    Edited for more details.

  • MrComfortMrComfort Posts: 28
    Brain Burst
    Hi @imperativity,

    have you had time to look into this issue yet?
    If you need any more information, please let me know.
    Any help would be greatly appreciated.
  • MrComfortMrComfort Posts: 28
    Brain Burst
    @imperativity

    I do have an application ID which was also entered in the Engine.ini File like this:

    [OnlineSubsystemOculus]
    bEnabled=true
    OculusAppId=<app_id_here>

    I added both users as developers and entitlement check runs successfully.
    Features like displaying friends and achievements do work as well.
    I am launching the packaged build locally on the PCs and have not uploaded a build on any channel yet.
    Can I only test with OSS when I launch from a downloaded channel build via Home?
  • MrComfortMrComfort Posts: 28
    Brain Burst
    edited August 2018
    @imperativity

    Yes, the appID is without the "< >".
    Also, the entitlement check I run on launch is working correctly (user gets validated), even if I launch the packaged build without uploading a build to oculus home.

    So I just tested running a build I uploaded to a release channel which both test users are subscribed to and it still does not work. PC1 hosts the session, PC2 joins session via "Friend's session button", then I start the session and nothing happens. PC1 (server) shows "Game (in progress)" with session status "in progress", PC2 (client) shows "not in session" and session status "creating" (find the screenshots attached to this comment).
    The Rooms and Matchmaking Tool shows a room being created, the PC2 joins and then theres a notification update. Is there something missing to launch the game after pressing the "start session" button?

    The Matchmaking Tool shows this:


    On the client PC::


    On the server PC:



    The odd thing is, when I run the app not through Oculus Home but as a packaged game directly, it behaves differently: PC1 creates session, PC2 joins session, both PCs show 2 players then after a few seconds PC2 has one player disconnect and session owner is PC2, while PC1 still shows 2 players with session owner PC1.

    Maybe I am missing something here.
  • MrComfortMrComfort Posts: 28
    Brain Burst
    edited August 2018
    @imperativity

    The tests I did on the last post were made with the Epic Launcher Version of 4.19.
    I also tried the Oculus github fork of 4.19 but it also did not work.
    Have not tried the latest 4.20 Epic Launcher release yet, but will probably test it next week.

    Please let me know if you need anything else!
    Your help is much appreciated!

  • MrComfortMrComfort Posts: 28
    Brain Burst
    edited August 2018
    @imperativity
    Ok, I tested a build with 4.20.1 via release channel and it also did not work.
    Same thing as before, player 1 creates session, player 2 can join session, player one clicks on start session then session status changes to In Progress for player 1 while player 2's session status still shows not in a session/creating and nothing happens.
  • MrComfortMrComfort Posts: 28
    Brain Burst
    @imperativity
    Is there anything else I should test for you?
  • MrComfortMrComfort Posts: 28
    Brain Burst
    @imperativity
    Any update on this yet? 
Sign In or Register to comment.