Hi! Thanks for this great template! Very useful. I’m working on a VR MP game right now so this is coming in handy. I’m presently working on reconciliation but I won’t get into that though I may have some helpful ideal for that in a bit.
But my quick question for now is, I am able to get Steam to load up in the game (See the Steam at the bottom right and can shift+tab). I can connect to games hosted on my network with LAN checked and un-checked. But when I send the packed project to friends they cannot find my game sessions. I was wondering if anyone had any ideal why that might be. Router port thing? Thanks for any advice!
Hi! Thanks for this great template! Very useful. I’m working on a VR MP game right now so this is coming in handy. I’m presently working on reconciliation but I won’t get into that though I may have some helpful ideal for that in a bit.
But my quick question for now is, I am able to get Steam to load up in the game (See the Steam at the bottom right and can shift+tab). I can connect to games hosted on my network with LAN checked and un-checked. But when I send the packed project to friends they cannot find my game sessions. I was wondering if anyone had any ideal why that might be. Router port thing? Thanks for any advice!
EDIT: I have SUbsystemNULL pluggin enabled also should I turn that off if I am using steam specifically? Also, I am packaging the game with development build not shipped. would that be why friends cannot join the session?
With the next iteration (2.3) you will be able to list, select and join friend’s game sessions
No. With my current version (2.3), Steam, Null and Oculus plugins are all ON. They way it works:
You want to use LAN: No matter if Steam and Oculus Subsystem plugins are ON. If Steam is off and you select LAN, it should work
You want to use Steam: No matter if Null and Oculus Subsystem plugins are ON. Steam has to be selected to true in DefaultEngine.ini (and of course Oculus not)
Oculus will be dealt in 2.3 and Oculus Avatar version.
Ship/dev built should not matter
Finally, the function “Find Friends” is found within the Steam/Oculus Subsystem engine plugins; however they are not exposed to blueprints so you have to access them by doing you own class in C++. If it’s very important to you, you should use mordentral’s plugin using full Steam functions.
@capatto So what I did is that I replicated the head, the motioncontrollers and some other functions. You should have a good understanding of the Epic’s multiplayer shootout found for free in your launcher. Plus, have a good look at the UE4 Network compendium: http://cedric-neukirchen.net/2017/02/14/multiplayer-network-compendium/
Finally, I find the best thing is that you cannot do anything multiplayer without understanding the basic of replication, RPC, etc.
It’s very logic. Sit, think, do. After a while you will understand the big picture. It took me 5 weeks to elaborate and understand the multiplayer side, even if I develop since, well, too much time (1984 someone? with TRS-80 64k)
@FATBACHELOR I’m currently doing the Oculus Direct Connect widget, so far the only way to use the Oculus Network without a plugin.
For the donate, keep you money, fellow devs! I’m making plenty of money on other projects, this one is for us. I just want to have a plug-and-play template to use our rifts and Vive the way we should. Furthermore, I had some tremendous feedback since April 2016 and, promised, I’ll list every contributor in the next version (2.3).
@xN31 Thanks again xN31. VOIP works well now. Thank you for your observation on the data cap I unintentionaly put in the .ini file. Now I can hear everyone loud and clear, on vive and rift.
Any chance we can get a joystick/trackpad locomotion similar to Onward? Im really not a fan of teleporting, and find that the trackpad movement is far superior in a game setting.
You are welcome Did you manage to have voice chat working also with the Oculus Subsystem? We are a bit struggling with it and we had to follow a different path.
How are you doing with the Avatar SDK integration? Do you already have implemented the remote replication? Still planning to release a version of the template supporting it next week?
VOIP work in LAN and Steam; it seems that VOIP is impossible for now via blueprints using Oculus Network
However I talk for 4.15 standard launcher; I will do some tests with 4.16 and Oculus-UE4 latest version, we never know
I’ve tested many things with different beta versions of Avatars since January.
The way I’ll do it is that I’ll implement it first with the version 2.3. You’ll have the choice of using Avatars if available, if not default to the usual head/hands mesh.
I do not know exactly how I’ll proceed: that will be my work for next week. So expect something during the week don’t know exactly when.
For the rest, everything in my list is done, just missing the sockets for the hands. Will do that tomorrow. Expect a 2.3 version probably sunday or monday.
For now I’ve put a “ghost move with gamepad” function within Avatar_Master. You should be able to move freely with the gamepad.
If you want to move like Onward, it would take you probably 10 minutes just to remap controllers inputs and obtain the same result.
If you aren’t able to do it, I’ll put a picture of how to do it. I did not played Onward since a while, but I’ll refresh my memory on how the locomotion was implemented.
Turns out I might not of hda enough max public connections on the join session node. Totally went over my head that ap480 is a public app and that there potentially could be many lobbies created for this app at any given time. I haven’t tested it out yet, but I’ve incresed public connections to 200 so I should be able to find the specific one I am looking for. Of course, having a specific join friend session would by pass this issue. Looking forward to your 2.3 release to see how you’ve integrated this feature. Thanks for all your work!
** VR Template
Multiplayer v.2.3 and SinglePlayer v.1.2**
What’s new in version 2.3 and 1.2?
Single player (1.2) and Multiplayer (2.3)
Ø Fade out vision when head goes through objects with VRCollision enabled
Ø Skeletal socket use when grabbing objects
Ø Single/Multiple Vive Trackers tracking
Ø Vive Trigger input clamped
Ø General optimization of all blueprints
Multiplayer only (2.3)
Ø Session selection via Steam and LAN
Ø Oculus direct connect
Ø Direct IP Connect
Ø VOIP for LAN & Steam
Ø VR Keyboard for menus
Ø Multiplayer Vive Tracker tracking
Ø [FIXED] Avatar material client-client
Ø [FIXED] Playground client-side
Ø Network optimizations
Note: SinglePlayer version, as well as the integration to VR Interaction Kit, will be posted later tonight.
Known issues:
Lag with Vive Trackers if owner is a client
Very small bug in the refresh button on the Steam/LAN Menu
So some side notes:
On the OneDrive, all versions (including latest 1.2 and 2.3) are found with their doc, along with packaged versions for a quick test.
There’s also on the drive a version of VR Essential Kit-compatible with 1.1
On the GitHub there’s the Multiplayer version (2.0, 2.1, 2.2, 2.3)
I found the Oculus OK with a screen percentage of around 125-150; more than that there’s lag even on a good system
For the Vive, it’s fare more comfortable with a screen percentage of around 200-250. In these ranges everything is sharp clear.
Many things have been redone, including grab function that I found now more intuitive. It’s now detecting collision closer to the mesh (hands, Touch or Vive) and therefore collision is far more precise. Had also to change that to accommodate grab sockets.
Multiplayer Vive Tracker works well (tried up to 3 Trackers); however lag is there if the Tracker owner is a client (the lag is only there for this client). Will fix this. Plus, I’ll find a way to accommodate more than one person as a source for Vive Trackers.
VOIP is not compatible yet on Oculus Network
The VR keyboard is not the nicest thing on the planet but it works.
I put a custom Collision preset named VRCollision on the head for fading out the vision when colliding with actors with the same type of collision
I will now try it with 4.16
Special thanks @Liquidgands for the VR Keyboard @xN31 for detecting a bad data cap and enabling VOIP @jamis for his VR Essential Kit which some person mixed with my template to interacts with objects
Concerning the latter, I’ll post soon a SinglePlayer 1.2-compatible version of the VR Essential Kit on the OneDrive. Because I changed the way the MotionController grab things I’ll have some extra work to integrate that with @jamis work.
Finally for suggestions / improvements / bugs don’t hesitate to post there for everyone. I already received some new suggestions and improvements.
cheers for shout out did say it wasn’t pretty but it served its purpose at the time I threw it together. I wouldn’t have been offended had you prettyed it up. but i guess each persons project will want its own design.
Must admit I hadn’t thought about making it float attached to the wand movement, I was just spawning an actor in front of the player to enable me to enter players names.
keep up the good work, its very much appreciated
*edit
The netcode of the client hands movements seems way smoother over network
I’m experiencing an issue with the Oculus Head Tracking. It appears to me that the head is not centered properly and when you move your head it looks weird… like the environment is moving.
I don’t really know how to explain it, but maybe someone knows what i mean.
@SenseiHaketon It’s probably a Rift setup problem. I recommend you redoing sensors / Guardian setup. @Elleclouds As @thedog88 said, the first time you open a project the engine is building its “Derived Data Cache”. It can take a while, depending on the project size and your computer speed. It happens usually right around the 90-95% loading mark. So… I’d just say, "Be patient, try again and wait. It can take up to 15-30 mins, even on a fast computer. Next time you’ll open the project it will take 30 secs.
For the rest I’ve been testing 4.16 and various different functions for the Vive Trackers. Seems that 4.16 would solve the latency problem. Just trying to solve the create sessions function, seem to be a problem right now with 4.16.