Announcement

Collapse
No announcement yet.

Single/Multiplayer, Touch & Vive Proteus blueprint only Template

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Yeah I understand the tackling lots things at the same time, with the hassle of having to compile, then copy the compiled binarys across network, then a bit of running between rooms to test the multiplayer VR checking server replication, I'm kinda stacking up lots different things to test each time....

    Kinda thinking I should have stuck to a single player game to learn UE4 and VR.... but wheres the fun in that

    Quick question, I tried to implement Seemless Travel last night, (Actually back to the same map to speed up testing in being able to reset the level back to the start).
    I've got it working in principle, in that its restarting the level and both machines still appear to be in the same 'world', but having issues getting the players to re-spawn with the hands.
    I didn't try for long its just another test in the long list of tests I line up for compile time, and Server Changing levels is a new section of reading to do so its more likely something I'm doing wrong, but wondering if you've tested it.

    Comment


      [MENTION=701776]Liquidgands[/MENTION] From my early tests, seamless travel did not work with the same problems you encountered, something to do with the controllers.

      As a side note, I returned to 4.15 since I wasn't able to initialize Steam API with 4.16
      I'll wait until next 4.16 iteration to retry this version. Seems that VOIP and widget interaction will be easier with 4.16

      Comment


        [MENTION=70903]Proteus[/MENTION]: Good news, we sorted out the issue with the VOIP chat and Steam. To get have it working in 2.2 try the following changes:

        In DefaultGame.ini (unless you actually want to implement a push to talk mechanic) add the following lines:

        [/Script/Engine.GameSession]
        bRequiresPushToTalk=false


        In DefaultEngine.ini add the following lines:

        [/Script/OnlineSubsystemUtils.IpNetDriver]
        MaxClientRate=80000
        MaxInternetClientRate=80000


        ..and change the following values:

        [/Script/Engine.Player]
        ;ConfiguredInternetSpeed=(Desired data rate cap)
        ;ConfiguredLanSpeed=(Desired data rate cap)
        ConfiguredInternetSpeed=50000
        ConfiguredLanSpeed=50000

        [/Script/Engine.GameNetworkManager]
        ;TotalNetBandwidth=Total available bandwidth between all connections
        ;MaxDynamicBandwidth=Min and max per connection
        ;MinDynamicBandwidth=Min and max per connection
        TotalNetBandwidth=500000
        MaxDynamicBandwidth=80000
        MinDynamicBandwidth=20000


        Basically these changes allow for more bandwidth usage. The template had no voice chat due to the push to talk setting, but even setting it to false the voice quality was very bad due to the network limits (probably the current replication saturates the available bandwidth). Now let's move on to spatialisation ;-)

        Comment


          Originally posted by Proteus View Post
          [MENTION=701776]Liquidgands[/MENTION] From my early tests, seamless travel did not work with the same problems you encountered, something to do with the controllers.

          As a side note, I returned to 4.15 since I wasn't able to initialize Steam API with 4.16
          I'll wait until next 4.16 iteration to retry this version. Seems that VOIP and widget interaction will be easier with 4.16
          ok, will let you know when I solve it

          Comment


            Server Travel Issue

            I added a few log outputs to various stages after server travel:

            In Avatar Master Log before the 1 Second Delay gets outputted, Log before the 'Select HMD' function does not get displayed
            Instead I get a

            LogScript:Warning: Accessed None trying to read property BPMC2LEFT

            So I assume how ever you fixed the networking of the motion controllers, its done just after you posses the Avatar Master Actor during the 1 second delay,
            So fix is probably beyond me at this point in time, sorry.

            Raw Log:

            [2017.05.02-22.06.43:462][749]LogBlueprintUserMessages: [MultiGM_C_0] *MultiGM **********************Console RunningServerTravel Level01
            [2017.05.02-22.06.43:570][749]LogPackageName: SearchForPackageOnDisk took 0.108s to resolve Level01.
            [2017.05.02-22.06.43:571][749]LogGameMode: ProcessServerTravel: /Game/VRL/Maps/Level01
            [2017.05.02-22.06.43:571][749]LogWorld: SeamlessTravel to: /Game/VRL/Maps/Level01
            [2017.05.02-22.06.43:571][749]LogBlueprintUserMessages: [MultiGM_C_0] *MultiGM Number Controllers to Respawn1
            [2017.05.02-22.06.43:571][749]LogBlueprintUserMessages: [MultiGM_C_0] *MultiGM **************Spawning PLayer 1
            [2017.05.02-22.06.43:572][749]LogPawn:Error: DisableInput can only be specified on a Pawn for its Controller
            [2017.05.02-22.06.43:572][749]LogBlueprintUserMessages: [Avatar_MasterM_C_1] ****************Before delay 1s
            [2017.05.02-22.06.43:572][749]LogBlueprintUserMessages: [MultiGM_C_0] *MultiGM ***************************Spawned Successful now posses 1
            [2017.05.02-22.06.43:572][749]LogBlueprintUserMessages: [MultiGM_C_0] *MultiGM ***************************Possessed 1

            [2017.05.02-22.06.43:572][749]LogScript:Warning: Accessed None trying to read property BPMC2LEFT
            Avatar_MasterM_C /Game/VRL/Maps/Level01.Level01:PersistentLevel.Avatar_MasterM_C_1
            Function /Game/VRL/Modified/Avatar_MasterM.Avatar_MasterM_C:ExecuteUbergraph_Avatar_MasterM:4FE3
            [2017.05.02-22.06.43:572][749]LogScript:Warning: Script call stack:
            Function /Game/VRL/Modified/Avatar_MasterM.Avatar_MasterM_C:InpAxisKeyEvt_MotionController_Left_Thumbstick_Y_K2Node_InputAxisKeyEvent_4764
            Function /Game/VRL/Modified/Avatar_MasterM.Avatar_MasterM_C:ExecuteUbergraph_Avatar_MasterM
            Function /Game/VRL/Modified/Avatar_MasterM.Avatar_MasterM_C:LViveTrackPadY
            Function /Game/VRL/Modified/Avatar_MasterM.Avatar_MasterM_C:ExecuteUbergraph_Avatar_MasterM

            [2017.05.02-22.06.43:572][749]LogScript:Warning: Accessed None trying to read property BPMC2LEFT
            Avatar_MasterM_C /Game/VRL/Maps/Level01.Level01:PersistentLevel.Avatar_MasterM_C_1
            Function /Game/VRL/Modified/Avatar_MasterM.Avatar_MasterM_C:ExecuteUbergraph_Avatar_MasterM:4FBA
            [2017.05.02-22.06.43:572][749]LogScript:Warning: Script call stack:
            Function /Game/VRL/Modified/Avatar_MasterM.Avatar_MasterM_C:InpAxisKeyEvt_MotionController_Left_Thumbstick_Y_K2Node_InputAxisKeyEvent_4764
            Function /Game/VRL/Modified/Avatar_MasterM.Avatar_MasterM_C:ExecuteUbergraph_Avatar_MasterM
            Function /Game/VRL/Modified/Avatar_MasterM.Avatar_MasterM_C:LViveTrackPadY
            Function /Game/VRL/Modified/Avatar_MasterM.Avatar_MasterM_C:ExecuteUbergraph_Avatar_MasterM

            [2017.05.02-22.06.43:572][749]LogScript:Warning: Attempted to assign to None
            Avatar_MasterM_C /Game/VRL/Maps/Level01.Level01:PersistentLevel.Avatar_MasterM_C_1
            Function /Game/VRL/Modified/Avatar_MasterM.Avatar_MasterM_C:ExecuteUbergraph_Avatar_MasterM:4FCF
            [2017.05.02-22.06.43:572][749]LogScript:Warning: Script call stack:
            Function /Game/VRL/Modified/Avatar_MasterM.Avatar_MasterM_C:InpAxisKeyEvt_MotionController_Left_Thumbstick_Y_K2Node_InputAxisKeyEvent_4764
            Function /Game/VRL/Modified/Avatar_MasterM.Avatar_MasterM_C:ExecuteUbergraph_Avatar_MasterM
            Function /Game/VRL/Modified/Avatar_MasterM.Avatar_MasterM_C:LViveTrackPadY
            Function /Game/VRL/Modified/Avatar_MasterM.Avatar_MasterM_C:ExecuteUbergraph_Avatar_MasterM

            [2017.05.02-22.06.43:572][749]LogScript:Warning: Accessed None trying to read property BPMC2LEFT

            Comment


              [MENTION=714297]xN31[/MENTION] The crash in 4.16 is probably due to 2 things: console commands "hmd .." don't work anymore in 4.16. They have been replaced by "unified VR commands" or something like that. Plus, the ProjectPointtoNavigation is depreciated, replace it with the updated one.

              So to be clear, to enable the template (1.1 or 2.2) in 4.16, do the following:

              In ScalabilitySettings in the PlayerControllers bp:

              1) Replace "stereo on" with vr.bEnableStereo True"
              2) Replace "hmd pdmin 2" with "vr.oculus.PixelDensity.min 2"
              3) Remove "hmd pdadaptive on"
              4) Replace "hmd mirror x" with "vr.MirrorMode x"; replace x by the correct number: (0 now -3; 1 now -2; 2 now -4; 3 now -1; 4 now -5)

              In MotionControllerBP/Trace Teleport Destination, replace the Project Point to Navigation with the updated one

              Note that I did not fully tested yet 4.16, still working on 4.15

              Comment


                [MENTION=714297]xN31[/MENTION] Thank you very much for the voice. Yeah, technically nothing was in the way of using VOIP. I thought about increasing bandwith, but only to decrease network lag, did not think it would also solve this. Will try it in the following days.
                As for spatial sound, I think it is without a doubt mandatory to work with 4.16 since with the updated audio engine. The only thing I lost a little by me latin here is the 3 different spatialized options we have: Unreal, Steam or Oculus.

                Comment


                  Ok so there where we are today. There's my Gantt chart on next versions upcoming.

                  The goal here is to solve all main concerns, since I (as a researcher and entrepreneur) and us (interest and developer group) need a well-working template for research and commercial purpose starting soon.

                  So here there are the upcoming projects:

                  Proteus Template 1.2: Same as 2.3, without the multiplayer functionalities
                  Proteus Template 2.3: All functionalities of 2.2 updated, see Gantt below
                  Proteus Template 2.3, Oculus-version: While standard, no-plugin 2.3 version will allow Direct-Connection between 2 Oculus users via Oculus Network, a plugin is needed to find sessions via this network and use Oculus Avatars. This version will also use the latest runtime 1.14 ( see https://forums.oculus.com/developer/...d-may-3rd-2017 ) for more infos.

                  Finally, I'll update the single player, SteamVR Template to 4.16 and optimize it. Give me a week or two for that. See https://forums.unrealengine.com/show...am-VR-Template for more infos.

                  The goal here will then to give more love to the Windows Mixed Reality and convert the Proteus Template to it because there are a lot of projects coming for that. The future is definitely a mix of VR and AR.

                  There's my Gantt chart on next features for 2.3:
                  Click image for larger version

Name:	Book1.jpg
Views:	1
Size:	180.8 KB
ID:	1127330
                  Attached Files
                  Last edited by Proteus; 05-05-2017, 11:33 AM.

                  Comment


                    Originally posted by Proteus View Post
                    [MENTION=714297]xN31[/MENTION] The crash in 4.16 is probably due to 2 things: console commands "hmd .." don't work anymore in 4.16. They have been replaced by "unified VR commands" or something like that. Plus, the ProjectPointtoNavigation is depreciated, replace it with the updated one.

                    So to be clear, to enable the template (1.1 or 2.2) in 4.16, do the following:

                    In ScalabilitySettings in the PlayerControllers bp:

                    1) Replace "stereo on" with vr.bEnableStereo True"
                    2) Replace "hmd pdmin 2" with "vr.oculus.PixelDensity.min 2"
                    3) Remove "hmd pdadaptive on"
                    4) Replace "hmd mirror x" with "vr.MirrorMode x"; replace x by the correct number: (0 now -3; 1 now -2; 2 now -4; 3 now -1; 4 now -5)

                    In MotionControllerBP/Trace Teleport Destination, replace the Project Point to Navigation with the updated one

                    Note that I did not fully tested yet 4.16, still working on 4.15
                    Thanks! Actually though I've noticed that 1.1 when packaged always crashes on startup even on 4.15.2 (plain template, just removing TemplateDefs.ini)
                    Does it work for you?

                    Comment


                      [MENTION=70903]Proteus[/MENTION] thanks for the great updates coming up. So can we expect to download the Rift version on the 15th? Had collected some things after 2.1 but almost everything is fixed! Good job! Will continue logging with 2.3.
                      Also please provide a donate button(if not already done). You definetly earned it!

                      Comment


                        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!
                        David Hache aka Mortusnyte - Youtube
                        Content Creator
                        -Match-3 Blueprint
                        -Simple Checkpoint System
                        -2D Character Engine - WIP

                        "Give me your best shot... If you're prepared for the void!" -Magus, 600 A.D.

                        Comment


                          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?
                          Last edited by Mortusnyte; 05-10-2017, 01:47 PM.
                          David Hache aka Mortusnyte - Youtube
                          Content Creator
                          -Match-3 Blueprint
                          -Simple Checkpoint System
                          -2D Character Engine - WIP

                          "Give me your best shot... If you're prepared for the void!" -Magus, 600 A.D.

                          Comment


                            Hi Proteus! One help please.

                            I'm doing a shooting game, in the place of the hands I put a skeletalmesh(gun) with the projectile.

                            However when changing the weapon on the player (client) the weapon is not replicated on the server.

                            Also when receiving damage, the player (client)

                            I have no experience in multiplayer games.

                            Can you help me with this?
                            TankĀ“s Tiago

                            Comment


                              [MENTION=9991]Mortusnyte[/MENTION]

                              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.

                              Comment


                                [MENTION=37245]capatto[/MENTION] 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...rk-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)

                                Comment

                                Working...
                                X