Client can't spawn in network level when Oculus Rift is powered on

Binary Build from Unreal Launcher
Version: 4.7.6-2513093 (I also reproduced this problem in 4.8 preview)

To Repro:

  1. Create an empty first person project
  2. Create a new GameMode, PlayerController classes. No changes in GameMode other than to “pick” the PlayerController derived class.
  3. Make it so that PlayerController can simply “Create Game” and “Join Game” (Copy/Paste [attached][1]) and create the necessary input events.

  1. Edit the [DefaultEngine.ini][3] to enable networking (see attached).
  2. Create a “Lobby” map and a “Level1” map.
  3. Build and deploy on two machines. Connect up two Oculus Rifts on both and power them on.
  4. Start the game and create sessions without VR mode enabled. When client joins, they never spawn on the level.

. However, the server can see both the client and their own character object.
9. Turn off the client’s oculus rift and repeat step #7. This time, everything works for the client!

Notes:

  • If you turn on VR mode on the client machine (ALT-ENTER) when it’s locked up, it is sometimes possible to fix the problem.
  • If the client has VR mode enabled initially, the problem doesn’t occur.
  • This problem doesn’t reproduce if you’re running two copies on the local machine. You need to actually use two different computers.
  • Both Oculus rifts must be on to reproduce the problem.

I’m embarrassed to say that I’ve probably spent over 30 hours on this over the course of about a month. I was sure that my code that was responsible, but I’ve pretty much ruled that out at this point. Glad I can finally move on.

Hello AustinChambers,

Before I run through and test your project directly I want to narrow things down by asking you to try couch nights out. This is a multiplayer game for the oculus that I know will not crash when two player join (Using VR). This will help narrow things down.

Hi Rudy, I actually tried couch knights a while back. Everything works perfectly, but that was only when you manually connect (via IP addresses and command-line arguments). I need to dynamically join/host a session. Accordingly, I tried to modify CouchKnights so that it works via Join Session/Create Session blueprints. The sessions were successfully created/joined, but the players didn’t spawn in the right locations.

I’ve actually discovered that, once paired down, my project is under 1MB, so I’ll go ahead and attach the zipped project here to speed up any testing on your end. Also, I will note that a few of my classmates also encountered this problem in their own respective projects (using the same blueprint approach I did). link text

The strange thing is that multiplayer shootout doesn’t have this problem, even though it uses the blueprint session creation/joining. I’m unable to explain why this is. Perhaps because it doesn’t leverage any VR functionality…

Another thing I noticed. When I start the program with the Oculus Rift off, I see a little Steam message momentarily. If I then exit, power on the rift, and start the program again, then I see this message. Perhaps it’s related.

Lastly, I found a similar report that may be related, see:

Hello AustinChambers,

Sorry for the time it took to get back to you on this issue. I ran several tests with your project and was able to get the project to work as expected. I was able to get your character to show up in your project by using the character (VPPlayerCharacter) that was set up and not the pawn. It appears that the pawn in not replicated in the same manner. Try setting up your project using the VpPlayerCharacter and this should allow you to see the other players as they join the room. I hope that this information helps.

Make it a great day