Originally posted by mordentral
View Post
Announcement
Collapse
No announcement yet.
Advanced Sessions Plugin
Collapse
X
-
Storyteller - An immersive VR audiobook player
Dungeon Survival - WIP First person dungeon crawler with a focus on survival and environmental gameplay ala roguelikes
-
Hi I am trying to package for linux and I get an issue due to the plugin.
Code:MainFrameActions: Packaging (Linux): CommandUtils.Run: Run: Took 1.9522655s to run MSBuild.exe, ExitCode=0 MainFrameActions: Packaging (Linux): CommandUtils.Run: Run: I:\UE4.10\Engine\Binaries\DotNET\UnrealBuildTool.exe MyProject4 Linux Development "C:\Users\joshu\Documents\project\project Game\MyProject4.uproject" -remoteini="C:\Users\joshu\Documents\project\project Game" -noxge -generatemanifest -NoHotReloadFromIDE MainFrameActions: Packaging (Linux): UnrealBuildTool: Performing full C++ include scan (building a new target) MainFrameActions: Packaging (Linux): CommandUtils.Run: Run: Took 1.8491922s to run UnrealBuildTool.exe, ExitCode=0 MainFrameActions: Packaging (Linux): UE4Build.PrepareManifest: Copied UBT manifest to I:\UE4.10\Engine\Programs\AutomationTool\Saved\Logs\UBTManifest.0.xml MainFrameActions: Packaging (Linux): CommandUtils.Run: Run: I:\UE4.10\Engine\Binaries\DotNET\UnrealBuildTool.exe MyProject4 Linux Development "C:\Users\joshu\Documents\project\project Game\MyProject4.uproject" -remoteini="C:\Users\joshu\Documents\project\project Game" -noxge -NoHotReloadFromIDE -ignorejunk MainFrameActions: Packaging (Linux): UnrealBuildTool: Creating makefile for MyProject4 (UnrealBuildTool.exe is newer) MainFrameActions: Packaging (Linux): UnrealBuildTool: Performing 3 actions (4 in parallel) MainFrameActions: Packaging (Linux): UnrealBuildTool: [1/3] Compile AdvancedFriendsLibrary.cpp MainFrameActions: Packaging (Linux): UnrealBuildTool: In file included from C:\Users\joshu\Documents\project\project Game\Plugins\AdvancedSessions\Source\AdvancedSessions\Private\AdvancedFriendsLibrary.cpp:4: MainFrameActions: Packaging (Linux): UnrealBuildTool: In file included from ThirdParty/Steamworks/Steamv136/sdk/public\steam/steam_api.h:13: MainFrameActions: Packaging (Linux): UnrealBuildTool: In file included from ThirdParty/Steamworks/Steamv136/sdk/public\steam/isteamclient.h:14: MainFrameActions: Packaging (Linux): UnrealBuildTool: ThirdParty/Steamworks/Steamv136/sdk/public\steam/steamtypes.h(99,9) : error: 'ARRAY_COUNT' macro redefined [-Werror,-Wmacro-redefined] MainFrameActions: Packaging (Linux): UnrealBuildTool: #define ARRAY_COUNT(COUNTER) CLANG_ATTR( "array_count:" #COUNTER ";" ) MainFrameActions: Packaging (Linux): UnrealBuildTool: ^ MainFrameActions: Packaging (Linux): UnrealBuildTool: I:\UE4.10\Engine\Source\Runtime/Core/Public/Templates\UnrealTemplate.h(119,9) : note: previous definition is here MainFrameActions: Packaging (Linux): UnrealBuildTool: #define ARRAY_COUNT( array ) (sizeof(ArrayCountHelper(array))+0) MainFrameActions: Packaging (Linux): UnrealBuildTool: ^ MainFrameActions: Packaging (Linux): UnrealBuildTool: C:\Users\joshu\Documents\project\project Game\Plugins\AdvancedSessions\Source\AdvancedSessions\Private\AdvancedFriendsLibrary.cpp(105,4) : error: unknown type name 'BYTE' MainFrameActions: Packaging (Linux): UnrealBuildTool: BYTE *oAvatarRGBA = new BYTE[Width * Height * 4]; MainFrameActions: Packaging (Linux): UnrealBuildTool: ^ MainFrameActions: Packaging (Linux): UnrealBuildTool: C:\Users\joshu\Documents\project\project Game\Plugins\AdvancedSessions\Source\AdvancedSessions\Private\AdvancedFriendsLibrary.cpp(105,28) : error: unknown type name 'BYTE' MainFrameActions: Packaging (Linux): UnrealBuildTool: BYTE *oAvatarRGBA = new BYTE[Width * Height * 4]; MainFrameActions: Packaging (Linux): UnrealBuildTool: ^ MainFrameActions: Packaging (Linux): UnrealBuildTool: 3 errors generated. MainFrameActions: Packaging (Linux): UnrealBuildTool: -------- End Detailed Actions Stats ----------------------------------------------------------- MainFrameActions: Packaging (Linux): UnrealBuildTool: ERROR: UBT ERROR: Failed to produce item: C:\Users\joshu\Documents\project\project Game\Plugins\AdvancedSessions\Binaries\Linux\libMyProject4-AdvancedSessions.a MainFrameActions: Packaging (Linux): UnrealBuildTool: Total build time: 8.49 seconds MainFrameActions: Packaging (Linux): CommandUtils.Run: Run: Took 8.5263603s to run UnrealBuildTool.exe, ExitCode=5 MainFrameActions: Packaging (Linux): BuildCommand.Execute: ERROR: BUILD FAILED MainFrameActions: Packaging (Linux): Program.Main: ERROR: AutomationTool terminated with exception: MainFrameActions: Packaging (Linux): Program.Main: ERROR: Exception in AutomationUtils.Automation: Command failed (Result:5): I:\UE4.10\Engine\Binaries\DotNET\UnrealBuildTool.exe MyProject4 Linux Development "C:\Users\joshu\Documents\project\project Game\MyProject4.uproject" -remoteini="C:\Users\joshu\Documents\project\project Game" -noxge -NoHotReloadFromIDE -ignorejunk. See logfile for details: 'UnrealBuildTool-2016.02.24-20.07.16.txt' MainFrameActions: Packaging (Linux): Stacktrace: at AutomationTool.CommandUtils.RunAndLog(String App, String CommandLine, String Logfile, Int32 MaxSuccessCode, String Input, ERunOptions Options, Dictionary`2 EnvVars) in I:\UE4.10\Engine\Source\Programs\AutomationTool\AutomationUtils\ProcessUtils.cs:line 800 MainFrameActions: Packaging (Linux): at AutomationTool.CommandUtils.RunUBT(CommandEnvironment Env, String UBTExecutable, String CommandLine, String LogName, Dictionary`2 EnvVars) in I:\UE4.10\Engine\Source\Programs\AutomationTool\AutomationUtils\UBTUtils.cs:line 63 MainFrameActions: Packaging (Linux): at AutomationTool.UE4Build.BuildWithUBT(String ProjectName, String TargetName, Unre MainFrameActions: Packaging (Linux): alTargetPlatform TargetPlatform, String Config, String UprojectPath, Boolean ForceMonolithic, Boolean ForceNonUnity, Boolean ForceDebugInfo, Boolean ForceFlushMac, Boolean DisableXGE, String InAddArgs, Boolean ForceUnity, Dictionary`2 EnvVars) in I:\UE4.10\Engine\Source\Programs\AutomationTool\AutomationUtils\UE4Build.cs:line 345 MainFrameActions: Packaging (Linux): at AutomationTool.UE4Build.Build(BuildAgenda Agenda, Nullable`1 InDeleteBuildProducts, Boolean InUpdateVersionFiles, Boolean InForceNoXGE, Boolean InUseParallelExecutor, Boolean InForceNonUnity, Boolean InForceUnity, Boolean InShowProgress, Dictionary`2 PlatformEnvVars) in I:\UE4.10\Engine\Source\Programs\AutomationTool\AutomationUtils\UE4Build.cs:line 1459 MainFrameActions: Packaging (Linux): at Project.Build(BuildCommand Command, ProjectParams Params, Int32 WorkingCL) in I:\UE4.10\Engine\Source\Programs\AutomationTool\Scripts\BuildProjectCommand.Automation.cs:line 114 MainFrameActions: Packaging (Linux): at BuildCookRun.DoBuildCookRun(ProjectParams Params) in I:\UE4.10\Engine\Source\Programs\AutomationTool\Scripts\BuildCookRun.Automation.cs:line 209 MainFrameActions: Packaging (Linux): at BuildCommand.Execute() in I:\UE4.10\Engine\Source\Programs\AutomationTool\AutomationUtils\BuildCommand.cs:line 35 MainFrameActions: Packaging (Linux): at AutomationTool.Automation.Execute(List`1 CommandsToExecute, CaselessDictionary`1 Commands) in I:\UE4.10\Engine\Source\Programs\AutomationTool\AutomationUtils\Automation.cs:line 395 MainFrameActions: Packaging (Linux): at AutomationTool.Automation.Process(String[] CommandLine) in I:\UE4.10\Engine\Source\Programs\AutomationTool\AutomationUtils\Automation.cs:line 369 MainFrameActions: Packaging (Linux): at AutomationTool.Program.MainProc(Object Param) in I:\UE4.10\Engine\Source\Programs\AutomationTool\Program.cs:line 134 MainFrameActions: Packaging (Linux): at AutomationTool.InternalUtils.RunSingleInstance(Action`1 Main, Object Param) in I:\UE4.10\Engine\Source\Programs\AutomationTool\AutomationUtils\Utils.cs:line 708 MainFrameActions: Packaging (Linux): at AutomationTool.Program.Main() in I:\UE4.10\Engine\Source\Programs\AutomationTool\Program.cs:line 53 MainFrameActions: Packaging (Linux): ProcessManager.KillAll: Trying to kill 0 spawned processes. MainFrameActions: Packaging (Linux): Program.Main: AutomationTool exiting with ExitCode=5 MainFrameActions: Packaging (Linux): Domain_ProcessExit MainFrameActions: Packaging (Linux): AutomationToolLauncher exiting with ExitCode=5 MainFrameActions: Packaging (Linux): copying UAT log files... MainFrameActions: Packaging (Linux): RunUAT.bat ERROR: AutomationTool was unable to run successfully.
Comment
-
Mmmm, sorry I had a windows macro'd type in the avatar code, I reverted it to uint8 instead so the two BYTE errors won't show up anymore. I'll upload with the correct types when it finishes building all versions.
The first error is another thing entirely though, steam appears to have a macro that is conflicting with an Unreal Engine macro. I looked it up and this was a problem before on visual studio but they merged a fix for it into the engine. I am directly accessing the file that caused the issue so it appears again when not using visual studio.
I included Epics #undef of the macro in my header as well, should fix it for you now. Hopefully I can remove that at some point though when / if either UE4 or Steamworks redefines that macro.
Fix will be up soon.
*Edit* UploadedLast edited by mordentral; 02-24-2016, 09:57 AM.
Consider supporting me on patreon
My Open source tools and plugins
Advanced Sessions Plugin
VR Expansion Plugin
Comment
-
Originally posted by Parvan View PostIf you have VS2015 installed you may need to modify the install to include all the things it needs. I can't remember the names of what all needs to be installed... C++ components? A google search should answer that.
Thanks everyone for help!
Comment
-
Originally posted by mordentral View PostMmmm, sorry I had a windows macro'd type in the avatar code, I reverted it to uint8 instead so the two BYTE errors won't show up anymore. I'll upload with the correct types when it finishes building all versions.
The first error is another thing entirely though, steam appears to have a macro that is conflicting with an Unreal Engine macro. I looked it up and this was a problem before on visual studio but they merged a fix for it into the engine. I am directly accessing the file that caused the issue so it appears again when not using visual studio.
I included Epics #undef of the macro in my header as well, should fix it for you now. Hopefully I can remove that at some point though when / if either UE4 or Steamworks redefines that macro.
Fix will be up soon.
*Edit* Uploaded
EDIT: All is working, cheers.Last edited by Joshua_NZ; 02-26-2016, 10:31 PM.
Comment
-
Hi, mordentral, first of all, thank you so much for sharing such an amazing plugin with the whole community! I really appreciate it!
I have a (stupid) question though. We are making a multi-player game and we were pretty happy with using the basic "open IPAddress" approach until we want to add voice chat into our game. As far as I understand, voice chat requires Sessions. And OnlineSubsystem = NULL only works in LAN. So I am under the impression that in order to enable Internet-scale voice chat, I have to deal with Sessions, and also OnlineSubsystem such as Steam (i.e. not NULL). Please correct me if I am wrong.
However, the problem is that we have already implemented our own master server which keeps a list of listen server IP addresses created by players on their own machines and heart-beat detection and other functionalities. And, if possible, we want to avoid using Steam (or similar services), because we do not want to force our users to install other software and register other account. Right now, our approach is to let the player either set up a server (by executing command "open SomeLevelName?listen") or join into one of the IP addresses in the list (by executing command "open ServerIPAddress").
My question is, is it possible that I can search/join a session by only specifying an IP address which is chosen from our own list of IP addresses, without using Steam to keep such a list, because our master server knows for sure there is a Session on that IP address's machine? I know the Find Sessions node works in LAN or with using Steam, but it does not work at the Internet scale without using Steam (or similar services), so will our own list of server IP addresses help overcome this limitation? Does your plugin somehow help to solve this situation? Or, you as an expert in these topics, could you please provide any advice to work around such a problem?
Right now I feel kind of frustrated because I am under the impression that the only way to enable Internet-scale voice chat is to use Sessions and OnlineSubsystem Steam (or similar services, excluding NULL), even though we keep a list of listen server IP addresses on our own master server already.
Thank you again sincerely for your amazing plugin and continuous updates in the past months! Looking forward to your reply.
Comment
-
First off, I want to say thanks for this amazing plugin. Secondly, I am having an issue where the Break BPFriendInfo node is not returning the correct bool for Is Playing Same Game as it is always returning True. I currently do not have a Steam AppID and am using the Spacewar AppID instead. It's not going to break what I am doing but I was just wondering if you have heard of any other issues related to this. Thanks!
Comment
-
Originally posted by aondw View PostHow do I go about setting filters for finding sessions?
I'm getting this error:
LogOnline:Warning: STEAM: Unable to set search parameter IsLegit: Value=true : Equals
Do I have to do things differently?
Originally posted by xinran View Post*Snip*
Right now I feel kind of frustrated because I am under the impression that the only way to enable Internet-scale voice chat is to use Sessions and OnlineSubsystem Steam (or similar services, excluding NULL), even though we keep a list of listen server IP addresses on our own master server already.
Thank you again sincerely for your amazing plugin and continuous updates in the past months! Looking forward to your reply.
Here is your easy way out (and also the one that follows UE4's coding conventions), take the NULL subsystem and make a copy of it's files, rename it to "MYMASTERLISTSubsystem" and change the server searching code to refer to your server instead of how it currently is implemented. Keep the UniqueID implementations as they are now and interface them with your master server, then the voice chat that is part of NULL will plug right in and all of Epics and my blueprint nodes will work and the game data that gets send with player states also gets populated correctly.
The null subsystem is a base to build off of, use it.
Originally posted by thevfxguy13 View PostFirst off, I want to say thanks for this amazing plugin. Secondly, I am having an issue where the Break BPFriendInfo node is not returning the correct bool for Is Playing Same Game as it is always returning True. I currently do not have a Steam AppID and am using the Spacewar AppID instead. It's not going to break what I am doing but I was just wondering if you have heard of any other issues related to this. Thanks!
Here is the direct variable I am pulling from:
Friend.bIsPlayingSameGame = fr->GetPresence().bIsPlayingThisGame;
Also yes I am now aware that the boolean name I chose is a little obtuse.Last edited by mordentral; 02-29-2016, 09:18 AM.
Consider supporting me on patreon
My Open source tools and plugins
Advanced Sessions Plugin
VR Expansion Plugin
Comment
-
Hello, I didn't seem to find it in the thread, can you use it for commercial project? I have a really hard time with the basic session nodes so I was wondering if I could use this plugin. It's freaking awesomeMy Assets
https://www.unrealengine.com/marketplace/profile/Gabeee
Consider supporting me on Patreon or Paypal
Comment
-
Originally posted by Gabeee View PostHello, I didn't seem to find it in the thread, can you use it for commercial project? I have a really hard time with the basic session nodes so I was wondering if I could use this plugin. It's freaking awesome
Consider supporting me on patreon
My Open source tools and plugins
Advanced Sessions Plugin
VR Expansion Plugin
Comment
-
Originally posted by mordentral View PostI haven't attached any requirements what so ever to it, feel free to use for whatever you want.My Assets
https://www.unrealengine.com/marketplace/profile/Gabeee
Consider supporting me on Patreon or Paypal
Comment
-
I remade every session based parts in my blueprints but I think I found a bug of some sort, not sure yet. When I use the UpdateSession node the players gets mixed up or something. The players/maxplayers goes -(Original Max - 1)/0 for me and yes it goes - and always Original - 1, any idea what can it be? sorry if my explanation was hard to understand, I can show pics if it's needed. (In case I don't use the UpdateSession node everything is fine (but I really want to update it cause I have a loading screen that shows a picture of the map, also the server lister shows the gamemode and map that's currently active.)
Edit:
Now that I manually set 12, it say 5/12 when I'm alone on the server.My Assets
https://www.unrealengine.com/marketplace/profile/Gabeee
Consider supporting me on Patreon or Paypal
Comment
-
Originally posted by mordentral View Post
Onlinesubsystem NULL also supports voice chat, and subsystem null can be used with direct IP connections. You are free to rip the voice chat stuff from the null subsystem and use it yourself, but this plugin only supports interfacing through a subsystem.
Here is your easy way out (and also the one that follows UE4's coding conventions), take the NULL subsystem and make a copy of it's files, rename it to "MYMASTERLISTSubsystem" and change the server searching code to refer to your server instead of how it currently is implemented. Keep the UniqueID implementations as they are now and interface them with your master server, then the voice chat that is part of NULL will plug right in and all of Epics and my blueprint nodes will work and the game data that gets send with player states also gets populated correctly.
The null subsystem is a base to build off of, use it.
However, I have a minor question. Probably I misunderstand some knowledge somewhere. I thought that OnlineSubsystems (including NULL) and "open IPAddress" are two separate (i.e. parallel) approaches. So I do not entirely understand how it is possible that "subsystem null can be used with direct IP connections". Could you please explain it a little bit? For example, do you mean that executing command "open IPAddress" can take a client into a specific Session on a server? Or can we use voice chat with only "open IPAddress" (i.e. without Sessions at all)? I don't think we can do these two things, right? Or do you mean that the usage of direct IP connections can apply at both LAN and Internet scales? Thank you again!
Comment
-
My Assets
https://www.unrealengine.com/marketplace/profile/Gabeee
Consider supporting me on Patreon or Paypal
Comment
Comment