Advanced Sessions Plugin

Does this plugin work with Android? Particularly the voice over ip? Thanks in advance for the info!

[QUOTE=VytautasR;681830]
Thank you, , for making this.

Iā€™m trying to get ā€œIs Local Player Talkingā€ to graphically indicate which player is talking. It always returns False. Is there something Iā€™m doing wrong?
Iā€™m using Steam online subsystem, the voice chat is choppy but it works.

Use this node instead
bool UAdvancedVoiceLibrary::IsRemotePlayerTalking(const FBPUniqueNetId& UniqueNet

Also if the voice is choppy you likely need to increase client bandwidth in the INI as its probably saturating with default settings and throwing away packets.

[QUOTE=aussieburger;683153]
Does this plugin work with Android? Particularly the voice over ip? Thanks in advance for the info!

VOIP is not implemented for either IOS or Googleplay on Epics back end.


IOnlineVoicePtr FOnlineSubsystemGooglePlay::GetVoiceInterface() const
{
	return nullptr;
}

Rest of the plugin should function.

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)

One Android as Hotspot hosting game and other android as client connecting to host.

Hi UE4 community,
I have a question in my mind whether this plugin works when one android device hosts game via hotspot or wifi direct and other android device connects to it.

Regards.

[QUOTE=;683179]
Use this node instead
bool UAdvancedVoiceLibrary::IsRemotePlayerTalking(const FBPUniqueNetId& UniqueNet

Also if the voice is choppy you likely need to increase client bandwidth in the INI as its probably saturating with default settings and throwing away packets.

You are absolutely right about the the bandwidth.

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

[QUOTE=VytautasR;684247]
You are absolutely right about the the bandwidth.

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

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.

[QUOTE=bggangel;684051]
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.

[QUOTE=;684378]
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
    1.png
  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)
  7. Select 2 players and Dedicated server in the play pulldown
    2.png
  8. In cardinal Menu -> Play Game -> Host Game -> Start Server
  9. I get ā€œServer:Failureā€

    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.

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.

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.

[QUOTE=;684596]
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 . (#1070)

[QUOTE=;684741]
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) :slight_smile: )

[QUOTE=bggangel;684767]
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) :slight_smile: )

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.

[QUOTE=;684773]
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.

1 Like

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 :stuck_out_tongue: So I understand where you are coming from.

[QUOTE=;684773]
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?

Hey ,

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?



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!

[QUOTE=NukePie;684927]
Hey ,

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?



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.


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.

Uploaded new version fixing a missing validity check in GetFriendsCallbackProxy

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