Announcement

Collapse
No announcement yet.

Advanced Sessions Plugin

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

    Originally posted by VytautasR View Post
    You are absolutely right about the the bandwidth.

    Sorry to bother you again but IsRemotePlayerTalking also never prints True.

    [ATTACH=CONFIG]134347[/ATTACH]
    Player controller 0 is not a remote player, and if it is then you can't access the unique net id there, you need to do it in the GameState Player array.


    Consider supporting me on patreon

    My Open source tools and plugins
    Advanced Sessions Plugin
    VR Expansion Plugin

    Comment


      Originally posted by bggangel View Post
      I am trying to find out if I missed something.

      I am currently using Cardinal's excellent menu to experiment with a multiplayer and lobby system.
      I can start a host lobby and another player can log into that lobby. Using Steam and using LAN.
      And I have read a lot of info and I know/understand that when using steam, I have to run a standalone session to make it work.
      However, for now, and during testing, I am perfectly happy using LAN and PIE. And when I run LAN, and in PIE, the everything seems to work well, except for the "Get Session Info" node.
      This node always fails getting the info in PIE+LAN. It works for StandAlone+LAN. I even reverted the OnlineSubsystem back to Null and used
      "-NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="/Script/OnlineSubsystemUtils.IpNetDriver",DriverClassNameFallback="/Script/OnlineSubsystemUtils.IpNetDriver")" and disabled the steam plugin.
      However, the "Get Session Info" node always fails in PIE. This is unexpected for LAN. Am I missing something?
      (using 4.15 and 4.15.1, same results)
      I haven't tried 4.15 extensively yet with Cardinal Menu, so we haven't released a 4.15 version. I can try and take a look at it this weekend. (Busy with a remodeling project at the moment.) Correction: I just tried 4.14.3 and it doesn't work in PIE. Builds and standalone work fine.
      Last edited by Parvan; 03-23-2017, 01:07 AM.

      Metahusk: A 501(c)(3) Creative Development Cooperative
      Projects | Forums | Repositories | Nonprofit | Donate

      Comment


        Originally posted by Parvan View Post
        I haven't tried 4.15 extensively yet with Cardinal Menu, so we haven't released a 4.15 version. I can try and take a look at it this weekend. (Busy with a remodeling project at the moment.) I just tried 4.14.3 and it works fine with Play In Editor LAN. (I tried it with both auto-connect to server on and off)
        Hi, thanks for your quick reply.
        I'd hate for you to waste your time so you inspired me to look at version 4.14.3 and try to see how it at least should work... and that also does not for me, so perhaps I am doing something completely wrong (this is all new to me).
        So to quickly take you through the steps.
        1. Installed clean new 4.14.3 unreal eninge
        2. unpacked CardinalMenu_Project_v161204.zip to a folder
        3. Unpacked all the plugin zips into their folder
        Click image for larger version

Name:	1.png
Views:	1
Size:	6.1 KB
ID:	1125092
        4. Open the CardinalMenu.uproject with 4.14 and let it build. (Then checked all plugin settings and they seem to be good)
        5. Go into the ThirdPersonExample Level Blueprints and change "DisableAllScreenMessages" to "EnableAllScreenMessages"
        6. Go into ThirdPersonExample/Blueprints->ThirdPersonGameMode, Open Full Blueprint Editor, add the nodes like this (I re-did it again later and used Failure instead of Failed)
        Click image for larger version

Name:	4.png
Views:	1
Size:	68.1 KB
ID:	1125095
        7. Select 2 players and Dedicated server in the play pulldown
        Click image for larger version

Name:	2.png
Views:	1
Size:	40.2 KB
ID:	1125093
        8. In cardinal Menu -> Play Game -> Host Game -> Start Server
        9. I get "Server:Failure"
        Click image for larger version

Name:	3.png
Views:	1
Size:	36.2 KB
ID:	1125094
        If I do step 8 in Stand Alone, I get Success

        Please tell me I am doing something horribly wrong so I am not going crazy.
        Last edited by bggangel; 03-22-2017, 10:51 PM.

        Comment


          Hmm, weird. I'll rebuild it from a clean download and check right now.
          Edit: Oh wait, I'm sorry I think I misunderstood your question. I'm going to take a look for a bit and see if I see anything.
          Edit Again: Yeah, I can confirm GetSessionSettings doesn't work in PIE but works in Standalone.
          Last edited by Parvan; 03-23-2017, 02:42 AM.

          Metahusk: A 501(c)(3) Creative Development Cooperative
          Projects | Forums | Repositories | Nonprofit | Donate

          Comment


            It won't work in PIE, PIE creates its own session that isn't the one used for the actual subsystem to handle the multiplayer in editor functionality. As such it doesn't have the settings and name that the plugin session would have and gets in the way of some of the functionality of normal sessions.


            Consider supporting me on patreon

            My Open source tools and plugins
            Advanced Sessions Plugin
            VR Expansion Plugin

            Comment


              Originally posted by Parvan View Post
              Hmm, weird. I'll rebuild it from a clean download and check right now.
              Edit: Oh wait, I'm sorry I think I misunderstood your question. I'm going to take a look for a bit and see if I see anything.
              Edit Again: Yeah, I can confirm GetSessionSettings doesn't work in PIE but works in Standalone.
              Thanks for confirming and returning some of my sanity (can't tell you how many times I looked over the settings in my project before I started with a clean one). I will ask my followup to mordentral. (#1070)

              Comment


                Originally posted by mordentral View Post
                It won't work in PIE, PIE creates its own session that isn't the one used for the actual subsystem to handle the multiplayer in editor functionality. As such it doesn't have the settings and name that the plugin session would have and gets in the way of some of the functionality of normal sessions.
                ok, thank you for that info. But then, I have to ask, what are the best way of testing/developing? I am working on a boardgame type of game that has multiple players connected and I thought doing quick tests through LAN would be the way to go, but I guess constantly syncing code over 2 PC's or a VMWare is the only way to test this? I understand most things in the engine, but the multiplayer part and dedicated server vs listening and open level vs servertravels still have me confused like crazy. I am sure I read too much up on it and also read outdated information on it on various forums and sites. And most multiplayer examples deal with a running game that others can jump into. I must have a fixed amount of players, that than get sorted in random order and than all start at the same time. There is less examples for that (have not found any).
                So, what is the best practice for testing? What is the best place to get current information on this? Is there a good example for the flow that I need?
                (sorry for this amount of questios, but this is currently a little frustrating.... hobby's should not be frustrating (this miuch) )
                Last edited by bggangel; 03-23-2017, 10:13 AM.

                Comment


                  Originally posted by bggangel View Post
                  ok, thank you for that info. But then, I have to ask, what are the best way of testing/developing? I am working on a boardgame type of game that has multiple players connected and I thought doing quick tests through LAN would be the way to go, but I guess constantly syncing code over 2 PC's or a VMWare is the only way to test this? I understand most things in the engine, but the multiplayer part and dedicated server vs listening and open level vs servertravels still have me confused like crazy. I am sure I read too much up on it and also read outdated information on it on various forums and sites. And most multiplayer examples deal with a running game that others can jump into. I must have a fixed amount of players, that than get sorted in random order and than all start at the same time. There is less examples for that (have not found any).
                  So, what is the best practice for testing? What is the best place to get current information on this? Is there a good example for the flow that I need?
                  (sorry for this amount of questios, but this is currently a little frustrating.... hobby's should not be frustrating (this miuch) )
                  For gameplay quick testing through PIE works well enough, its for the sessions display / management part that you need to test in packaged builds or stand alone to make sure it is working correctly. Just making a new lan session (LAN only) and connecting will still work PIE for finding / connecting, you just have to make do without the Session settings node unless in standalone.

                  You can launch in stand alone from your .uproject file by right clicking on it and selecting launch to run multiple instance tests locally, or package out and run it multiple times.

                  Also never assume that things work the same PIE multiplayer as they do packaged, you want to run periodic tests from packaged builds as part of your development cycle.


                  *Edit* Also game dev (and programming) can be very frustrating at times, but also very rewarding when you solve a problem, it comes with the territory.


                  Consider supporting me on patreon

                  My Open source tools and plugins
                  Advanced Sessions Plugin
                  VR Expansion Plugin

                  Comment


                    Originally posted by mordentral View Post
                    For gameplay quick testing through PIE works well enough, its for the sessions display / management part that you need to test in packaged builds or stand alone to make sure it is working correctly. Just making a new lan session (LAN only) and connecting will still work PIE for finding / connecting, you just have to make do without the Session settings node unless in standalone.

                    You can launch in stand alone from your .uproject file by right clicking on it and selecting launch to run multiple instance tests locally, or package out and run it multiple times.

                    Also never assume that things work the same PIE multiplayer as they do packaged, you want to run periodic tests from packaged builds as part of your development cycle.


                    *Edit* Also game dev (and programming) can be very frustrating at times, but also very rewarding when you solve a problem, it comes with the territory.
                    Thx for the info. I guess my main problem is that I just started "somewhere" with my gameboard and that it all works fine by it self (in PIE) but as soon as I add the travel/level change parts, things start acting very funky (networking and replication etc.).
                    This is probably because I am initializing my levels wrong and I will have to rework that first. But before that, I wanted to make sure that I have my level managenet/switching correct and I didn't make any mistakes. Now that I know that the behavior I am seeing is what is expected, I can continue.
                    And I know about dev/prog frustration. My day job is also programing (.NET framework, starting in C) but I like doing unreal dev. because blueprints make it different and fun. My frustration was that I was going in circles and did not see a way out and that frustrates in all situation unless you are a nascar driver (and I do not like nascar). You have given it to me now, so thanks for that.

                    Comment


                      I do unreal dev as a hobby, been doing on the side libraries, open source projects, and game modding tools for almost 15 years now.

                      Main job is straight corporate coding, pretty sure I would go insane without this outlet So I understand where you are coming from.


                      Consider supporting me on patreon

                      My Open source tools and plugins
                      Advanced Sessions Plugin
                      VR Expansion Plugin

                      Comment


                        Originally posted by mordentral View Post
                        For gameplay quick testing through PIE works well enough, its for the sessions display / management part that you need to test in packaged builds or stand alone to make sure it is working correctly. Just making a new lan session (LAN only) and connecting will still work PIE for finding / connecting, you just have to make do without the Session settings node unless in standalone.

                        You can launch in stand alone from your .uproject file by right clicking on it and selecting launch to run multiple instance tests locally, or package out and run it multiple times.

                        Also never assume that things work the same PIE multiplayer as they do packaged, you want to run periodic tests from packaged builds as part of your development cycle.


                        *Edit* Also game dev (and programming) can be very frustrating at times, but also very rewarding when you solve a problem, it comes with the territory.
                        So just to be clear on my flow:
                        A. Player 1 starts "host game". This uses "open level" to go to the lobby level.
                        B. Player 2 and 3 etc goto "Network Game" and join the level. This is done by using the "Join Session" node of the default online subsystem. This will automaticly take them into the lobby level.
                        C. (question) The Players 2 3 etc... will all get the ability to initialize their code by using the "OnPostLogin" Node?
                        D. Then when all players are ready we have to go to the gameboard. That must be done by ..... open level or (seamless) ServerTravel ?
                        And how is this scenario different if we have a dedicated server?

                        Comment


                          Hey Mordentral,

                          Recently in testing packaged projects I'm experiencing a seemingly random crash. Can't seem to isolate the cause to reproduce the crash.
                          Any chance you might be able to make sense of the below crash report?

                          Code:
                          Access violation - code c0000005 (first/second chance not available)
                          
                          Project_Win64_DebugGame!UGetFriendsCallbackProxy::OnReadFriendsListCompleted() [f:\ue4 projects\Project\plugins\advancedsessions\source\advancedsessions\private\getfriendscallbackproxy.cpp:56]
                          Project_Win64_DebugGame!TBaseUObjectMethodDelegateInstance<0,UGetFriendsCallbackProxy,void __cdecl(int,bool,FString const & __ptr64,FString const & __ptr64)>::ExecuteIfSafe() [c:\program files\epic games\ue_4.15\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:858]
                          Project_Win64_DebugGame!FOnlineAsyncTaskSteamReadFriendsList::TriggerDelegates()
                          Project_Win64_DebugGame!FOnlineAsyncTaskManager::GameTick()
                          Project_Win64_DebugGame!FOnlineSubsystemSteam::Tick()
                          Project_Win64_DebugGame!FTicker::Tick()
                          Project_Win64_DebugGame!FEngineLoop::Tick()
                          Project_Win64_DebugGame!GuardedMain()
                          Project_Win64_DebugGame!GuardedMainWrapper()
                          Project_Win64_DebugGame!WinMain()
                          Project_Win64_DebugGame!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253]
                          kernel32
                          ntdll
                          Thanks for any help!

                          Comment


                            Originally posted by NukePie View Post
                            Hey Mordentral,

                            Recently in testing packaged projects I'm experiencing a seemingly random crash. Can't seem to isolate the cause to reproduce the crash.
                            Any chance you might be able to make sense of the below crash report?

                            Code:
                            Access violation - code c0000005 (first/second chance not available)
                            
                            Project_Win64_DebugGame!UGetFriendsCallbackProxy::OnReadFriendsListCompleted() [f:\ue4 projects\Project\plugins\advancedsessions\source\advancedsessions\private\getfriendscallbackproxy.cpp:56]
                            Project_Win64_DebugGame!TBaseUObjectMethodDelegateInstance<0,UGetFriendsCallbackProxy,void __cdecl(int,bool,FString const & __ptr64,FString const & __ptr64)>::ExecuteIfSafe() [c:\program files\epic games\ue_4.15\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:858]
                            Project_Win64_DebugGame!FOnlineAsyncTaskSteamReadFriendsList::TriggerDelegates()
                            Project_Win64_DebugGame!FOnlineAsyncTaskManager::GameTick()
                            Project_Win64_DebugGame!FOnlineSubsystemSteam::Tick()
                            Project_Win64_DebugGame!FTicker::Tick()
                            Project_Win64_DebugGame!FEngineLoop::Tick()
                            Project_Win64_DebugGame!GuardedMain()
                            Project_Win64_DebugGame!GuardedMainWrapper()
                            Project_Win64_DebugGame!WinMain()
                            Project_Win64_DebugGame!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253]
                            kernel32
                            ntdll
                            Thanks for any help!
                            Its crashing at the line below, I already validate the player controller previous to this in the function, so it means that between when you call the node and when it finishes getting the list you are deleting a player controller.

                            Code:
                            ULocalPlayer* Player = Cast<ULocalPlayer>(PlayerControllerWeakPtr->Player);
                            I'll add additional validity checks for player controllers in to the async nodes where appropriate, however you might want to check your blueprints because it sounds like there might be issues if you are dropping players while doing things.

                            *Edit* yeah just checked, that is the only node that was missing the last check. I fixed it and will re-upload.
                            Last edited by mordentral; 03-23-2017, 03:43 PM.


                            Consider supporting me on patreon

                            My Open source tools and plugins
                            Advanced Sessions Plugin
                            VR Expansion Plugin

                            Comment


                              Uploaded new version fixing a missing validity check in GetFriendsCallbackProxy


                              Consider supporting me on patreon

                              My Open source tools and plugins
                              Advanced Sessions Plugin
                              VR Expansion Plugin

                              Comment


                                Does this work with the null online Subsystem, as in should I be able to find other sessions made using this?

                                Comment

                                Working...
                                X