I have been trying to setup multiplayer sessions with the Oculus Sub System enabled, on UE 4.18.3. I have the entitlement check working correctly, I can successfully create a match.
However, the issue is that when I use the find sessions matchmaking node, it fires the success output but the results array size is always 0. (Note: I'm only hosting one session at a time so thats why I get the first result in the array, but the array size is always 0 regardless).
(from output log) LogGameMode: Display: Match State Changed from InProgress to LeavingMap LogGameState: Match State Changed from InProgress to LeavingMap LogNet: Browse: 2313632185328952.oculus//Game/Maps/MainMenu LogTemp: Display: ParseSettings for GameNetDriver LogTemp: Display: ParseSettings for IpNetDriver_0 LogTemp: Display: ParseSettings for PendingNetDriver LogInit: WinSock: Socket queue 32768 / 32768 LogInit: WinSock: I am Tesla-PC (192.168.1.66:0) PacketHandlerLog: Loaded PacketHandler component: Engine.EngineHandlerComponentFactory (StatelessConnectHandlerComponent) LogNet: Game client on port 7777, rate 500000
LogNet: Host name resolution failed with 48 LogNet: NetworkFailure: PendingConnectionFailure, Error: 'Your connection to the host has been lost.' LogGameMode: Display: Match State Changed from LeavingMap to Aborted LogGameState: Match State Changed from LeavingMap to Aborted LogNet: DestroyNamedNetDriver IpNetDriver_0 [PendingNetDriver] LogExit: PendingNetDriver IpNetDriver_0 shut down
For the Oculus team, there just seems to be no way of doing Oculus sessions with blueprints.
Has your team successfully created Oculus sessions and joined them via blueprints? In 4.18.3 I can't seem to get it to work at all.
I have the subsystem active with the entitlement check working. It even comes up on the clients oculus app that they recently met my player in a game.
If the team has managed to create/join sessions using the oculus subsystem with blueprints, can you let me know what steps you guys have taken to make it work?
Sorry for the confusion there, on my original post I did mention the reason why I did that, it was because if the find sessions node returned success (I was only hosting one session at a time), I would get the first result of the sessions in order to join.
However if I did a array.length on the return from the blueprint node it would give me 0 results even if success fired, I assumed that if success fired it would have atleast 1 index in the array but it was always empty. (I did not provide a screenshot for this part)
Can you ask the team if Oculus sessions successfully works via blueprints only in 4.18.3? As everything I have tried is not working. Any examples or anything to get it sucessfully working would be a great help. Or if they have it working in 4.19?
Should I be able to join via command line of open <OculusID>.oculus? because that approach gives me the error of my second post and does not work.
I just build a sample to test this and it was working for me. This was in 4.18.3 pulled from the Oculus Git. Are you running the version downloaded from Epic or the Oculus Git repo? I haven't tested this against the Epic version yet which is a little behind, but I don't think any changes have gone in recently in this area.
Here is what I did: One user creates a session for a browse type matchmaking pool:
when the create session is successful, I call open level with a mapname?Listen
The other user looks for a match:
For simplicity I am just joining the first session in the array. When join session executes, it is creating the network connection and traveled to the server's level.
In my client log:
[2018.02.22-23.10.51:933][216]LogBlueprintUserMessages: [SceneUI_C_0] Joined session
One thing to note, is that I packaged up my build to use the OculusNetDriver since running in editor would use the IPNetDriver. Can you try to package your build and see if you have the same fail result? Make sure you have this in your DefaultEngine.ini:
Your log looks like it is trying to use the IPNetDriver with an Oculus Address: LogNet: Browse: 2313632185328952.oculus//Game/Maps/MainMenu LogTemp: Display: ParseSettings for GameNetDriver LogTemp: Display: ParseSettings for IpNetDriver_0
That might be where the issue lies. If you package up your build with the OculusNetDriver definition in the DefaultEngine.ini it may work as it did for me. Please let us know!
Many thanks for posting this @pieterdub ! Until now I had thought unreal multiplayer on Gearvr was not possible with blueprints and was always hoping this would be fixed! Perfect timing as we are in the early stages of planning a multiplayer mobile vr game! 🙂
4.18.3 binary/launcher version does not work at all with Oculus online sessions. 4.19 preview DOES work but leads to another issue. 4.18.3 Oculus source build gives me crashes when Oculus is active and I try switching maps (new maps, reopening the same map, i've tried everything) in a packaged build, even just a regular open level call, I have cut out the unnessecary info on the log and attached the exact point where I call an open level and it crashes, there should be an attach link on this post. This only happens on the oculus source engine version of the engine and ONLY when the the oculus headset is active.
I have a really strange issue with 4.19 in the project that eventually leads to a crash. Our scene uses a render capture 2d and in 4.19 it prints this constantly in the log and eventually leads to a crash: [2018.02.27-18.58.37:767][540]
LogRenderer: Reallocating scene render targets to support 256x256 Format 10 NumSamples 1 (Frame:542). [2018.02.27-18.58.37:768][540]LogRenderer: Reallocating scene render targets to support 2720x1600 Format 10 NumSamples 1 (Frame:542). [2018.02.27-18.58.37:768][540]LogHMD: Allocating Oculus 2720 x 1600 depth rendertarget swapchain