Closed ulissesnascim closed 2 months ago
Hi @ulissesnascim without sharing the values themselves, can you please confirm that you have the values from the epic dev portal for your product properly entered into the configuration window at Tools -> EOS Plugin -> EOS Configuration
?
Hi @paulhazen ! So in my project I have Tools -> EOS Plugin -> Configuration
and Tools -> EOS Plugin -> Dev Portal Configuration
.
I did configure the "Dev Portal Configuration" and it seems to have done so properly. But I didn't touch the "Configuration" one -- it didn't seem like something I needed since I only really need the achievements to work. Do you know if I need to configure that window too? Thanks!
Hi @ulissesnascim sorry for the much delayed response. That sounds correct - you should not have needed to change the values in the "Configuration." window. Let me dive into this a little bit and get back to you. I presume you are still experiencing this issue?
@paulhazen thanks for looking into it! Yes, I'm still experiencing the issue. I've been trying to find out what I've done wrong, but so far everything seems to be in place.
One question on the EOS configurations: about the the Encryption Key that gets generated in Unity, I don't remember having entered it anywhere. Should I be entering it somewhere in the EOS dashboard? Thanks!
Hi @paulhazen ! Just checking, were you able to look into this?
A couple questions that could lead us to the solution: 1- What should I do with the encryption key? 2- Do you have a log that successfully logs into Epic? Does it look any different from the one I posted?
I just tried updating my project (it's a Steam game that's a little old now) to 2021.3.8f1 since I noticed that my old Unity technically doesn't support it. I also made sure that the whole EOS plugin package is correctly included by reimporting it.
Unfortunately, that still didn't solve things. Here is the earlier EOS log which comes right before what I posted before. Notice that it has a DLL warning:
Start of Early EOS LOG: 2024-06-03T01:56:51.810 NativePlugin (INFORM): about to look with exists 2024-06-03T01:56:51.810 NativePlugin (INFORM): Trying to load eos config via dll 2024-06-03T01:56:51.810 NativePlugin (INFORM): Loading path at C:\Program Files\Epic Games**\Plugins\x86_64\EOSGenerated.dll 2024-06-03T01:56:51.811 NativePlugin (WARNING): No Generated DLL found (Might not be an error) 2024-06-03T01:56:51.811 NativePlugin (INFORM): json pathC:\Program Files\Epic Games**\Plugins\x86_64../..\StreamingAssets\EOS\EpicOnlineServicesConfig.json 2024-06-03T01:56:51.811 NativePlugin (INFORM): Sandbox ID override specified: 2024-06-03T01:56:51.811 NativePlugin (INFORM): On UnityPluginLoad 2024-06-03T01:56:51.811 NativePlugin (INFORM): Loading path at C:\Program Files\Epic Games\\Plugins\x86_64\EOSSDK-Win64-Shipping.dll 2024-06-03T01:56:51.843 NativePlugin (INFORM): start eos init 2024-06-03T01:56:51.843 NativePlugin (INFORM): call EOS_Initialize 2024-06-03T01:56:51.851 NativePlugin (INFORM): setting up rtc 2024-06-03T01:56:51.851 NativePlugin (WARNING): C:\Program Files\Epic Games****\Plugins\x86_64\xaudio2_9redist.dll 2024-06-03T01:56:51.851 NativePlugin (INFORM): about to look with exists 2024-06-03T01:56:51.851 NativePlugin (INFORM): run EOS_Platform_Create 2024-06-03T01:56:51.851 LogEOS (Verbose): Default Network Status: EOS_NS_Online 2024-06-03T01:56:51.851 LogEOS (Info): [Boot] EOSSDK Version 1.16.2-32273396 booting at 2024-06-03T08:56:51.850Z using CSharp 2024-06-03T01:56:51.851 LogEOSRTC (Verbose): A background mode has been assigned. BackgroundMode=[LeaveRooms]
Hi @ulissesnascim, we have made several improvements to the plugin with version 3.2.1
. Could you update to that version and see if you are still experiencing issues? We can diagnose from there.
@ulissesnascim I am going to close this issue and mark it as stale
. Please feel free to re-open with the information requested in the above comment, and we will continue from there to investigate the issue.
Hi @paulhazen thanks for commenting about the update! Unfortunately, it's still not solved. I updated to 3.30 version and now my builds are crashing. It's some weird issues with DDLs apparently? I couldn't find a lot of similar crashes online, and the ones I found were dead ends.
Here is a bit of log that might be helpful: ========== OUTPUTTING STACK TRACE ==================
0x00007FFBD8E9FABC (KERNELBASE) RaiseException 0x00007FFBB9565267 (VCRUNTIME140) CxxThrowException SymInit: Symbol-SearchPath: '.;C:\Users\mydirectory;C:\Users\mydirectory;C:\Windows;C:\Windows\system32;SRVC:\websymbolshttp://msdl.microsoft.com/download/symbols;', symOptions: 534, UserName: 'uliss' OS-Version: 10.0.0
(... a lot of other stuff) ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFB992C2F0B) 0x00007FFB992C2F0B (GfxPluginNativeRender-x64) (function-name not available) 0x00007FFB992C5F8C (GfxPluginNativeRender-x64) global_log_flush_with_function 0x00007FFB992C9EFA (GfxPluginNativeRender-x64) UnityPluginLoad ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFAF0F8B00F) 0x00007FFAF0F8B00F (UnityPlayer) (function-name not available) ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFAF0F88B0C) 0x00007FFAF0F88B0C (UnityPlayer) (function-name not available) ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFAF0F8ABA6) 0x00007FFAF0F8ABA6 (UnityPlayer) (function-name not available) ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFAF0DAEE39) 0x00007FFAF0DAEE39 (UnityPlayer) (function-name not available) ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFAF0F9415C) 0x00007FFAF0F9415C (UnityPlayer) (function-name not available) ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFAF117F3E0) 0x00007FFAF117F3E0 (UnityPlayer) (function-name not available) 0x00007FFAF11819BB (UnityPlayer) UnityMain ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FF6322C11F2) 0x00007FF6322C11F2 (gamename) (function-name not available) 0x00007FFBDA52257D (KERNEL32) BaseThreadInitThunk 0x00007FFBDB5AAF28 (ntdll) RtlUserThreadStart
========== END OF STACKTRACE ===========
Hi @paulhazen just wondering, did you see the above? I've been stuck on this for a while now, and I'm not sure why the update busted my build.
Ahoy @ulissesnascim ! Sorry for the delayed response, the issue being closed hid that you messaged. Let's try to get you sorted!
When you say "your builds are crashing", are you experiencing crashes while Unity is building in the Editor, or are you experiencing crashes in built game executables that 'successfully' built?
This is definitely related to the plugin; it has a custom lib, GfxPluginNativeRender-x64
, which helps with making the overlay run on Windows. In this case it appears as though your logs are suggesting that the function names that are missing are "global_log_flush_with_function", "UnityPluginLoad", or some other unnamed thing.
One thing for you to try to diagnose this most recent error is to:
GfxPluginNativeRender-x64
binary. In the repository it is at lib/NativeCode/DynamicLibraryLoaderHelper/DynamicLibraryLoaderHelper.sln
. If you can find it, open that solution file up and make a build of it. The build actions will automatically copy the binary over where it needs to go.1- What should I do with the encryption key?
The Encryption Key is an optional element of your Client. This is used by the Player Data Storage and Title Storage features. I believe you don't put this Encryption Key in the back-end in a permanent spot; it's used to encrypt the user data as you pull it down or push it up. It's required to be set to use these features, and when you create data in the Title Storage you'll be have to provide the same encryption key as what you'll be using to pull it down later. Make sure to keep it around if you're doing that, but if you're not there's no where you need to put this key.
This is to say, your issue is probably not related to the encryption key.
This sounds like no user is logged in, and the SDK is informing you that it can't open the social overlay. Can you help me go from the top? If you use the Achievement Sample, are you able to successfully log in, and see your achievements? What login method are you using to log in, where you're not seeing things?
Note that when you start up the game, and the SDK is initializing, it'll print this out because no user is logged in immediately.
You asked for some successful logs, so here's a trimmed set of logs from me logging in. First, this is the "Early Logs". Note how I have the same message about ignoring the hot key event.
Start of Early EOS LOG: 2024-08-08T12:18:35.746 NativePlugin (INFORM): about to look with exists 2024-08-08T12:18:35.746 NativePlugin (INFORM): Trying to load eos config via dll 2024-08-08T12:18:35.746 NativePlugin (INFORM): Loading path at C:\SNGH\eos_plugin_for_unity_clone\Builds\Windows\EOS Unity Plugin - Demo_Data\Plugins\x86_64\EOSGenerated.dll 2024-08-08T12:18:35.746 NativePlugin (WARNING): No Generated DLL found (Might not be an error) 2024-08-08T12:18:35.746 NativePlugin (INFORM): json pathC:\SNGH\eos_plugin_for_unity_clone\Builds\Windows\EOS Unity Plugin - Demo_Data\Plugins\x86_64../..\StreamingAssets\EOS\EpicOnlineServicesConfig.json 2024-08-08T12:18:35.746 NativePlugin (INFORM): On UnityPluginLoad 2024-08-08T12:18:35.746 NativePlugin (INFORM): Loading path at C:\SNGH\eos_plugin_for_unity_clone\Builds\Windows\EOS Unity Plugin - Demo_Data\Plugins\x86_64\EOSSDK-Win64-Shipping.dll 2024-08-08T12:18:35.748 NativePlugin (INFORM): start eos init 2024-08-08T12:18:35.748 NativePlugin (INFORM): call EOS_Initialize 2024-08-08T12:18:35.754 NativePlugin (INFORM): setting up rtc 2024-08-08T12:18:35.754 NativePlugin (WARNING): C:\SNGH\eos_plugin_for_unity_clone\Builds\Windows\EOS Unity Plugin - Demo_Data\Plugins\x86_64\xaudio2_9redist.dll 2024-08-08T12:18:35.754 NativePlugin (INFORM): about to look with exists 2024-08-08T12:18:35.754 NativePlugin (INFORM): json pathC:\SNGH\eos_plugin_for_unity_clone\Builds\Windows\EOS Unity Plugin - Demo_Data\Plugins\x86_64../..\StreamingAssets\EOS\eos_steam_config.json 2024-08-08T12:18:35.754 LogEOSIntegratedPlatform (Error): Invalid parameter EOS_IntegratedPlatform_Steam_Options.SteamMajorVersion reason: Required to be at least 1. 2024-08-08T12:18:35.754 LogEOSIntegratedPlatform (Error): Invalid parameter Options reason: failed validation: EOS_InvalidParameters 2024-08-08T12:18:35.754 NativePlugin (INFORM): run EOS_Platform_Create 2024-08-08T12:18:35.754 LogEOS (Verbose): Default Network Status: EOS_NS_Online 2024-08-08T12:18:35.754 LogEOS (Info): [Boot] EOSSDK Version 1.16.2-32273396 booting at 2024-08-08T19:18:35.753Z using CSharp 2024-08-08T12:18:35.754 LogEOSRTC (Verbose): A background mode has been assigned. BackgroundMode=[LeaveRooms] 2024-08-08T12:18:35.755 LogEOS (Info): [Boot] EOSSDK Platform Properties [OS=Windows/10.0.22621.3374.64bit, ClientId=xyza7891wPzGRvRf4SkjlIF8YuqlRLbQ, ProductId=f7102b835ed14b5fb6b3a05d87b3d101, SandboxId=ab139ee5b644412781cf99f48b993b45, DeploymentId=c529498f660a4a3d8a123fd04552cb47, ProductName=EOS Plugin for Unity, ProductVersion=1.0, IsServer=false, Flags=None] 2024-08-08T12:18:35.755 LogEOSAnalytics (Info): Start Session (User: ...) 2024-08-08T12:18:35.755 LogEOSOverlay (Info): OverlayPath registry key found in HKCU 2024-08-08T12:18:35.877 LogEOSOverlay (Info): Overlay library loaded, version ++EOSSDK+Release-Overlay-CL-34031348 2024-08-08T12:18:35.877 LogEOSOverlay (Info): Beginning dxgi factory detour 2024-08-08T12:18:35.877 LogEOSOverlay (Info): Factory detour complete 2024-08-08T12:18:35.877 LogEOSOverlay (Info): Beginning swap chain detour 2024-08-08T12:18:35.877 LogEOSOverlay (Info): Attempting to create swap chain using D3D11 2024-08-08T12:18:35.877 LogEOSOverlay (Info): Successfully created swap chain using D3D11 with feature level b000 2024-08-08T12:18:35.877 LogEOSOverlay (Info): Swapchain detour complete 2024-08-08T12:18:35.877 LogEOSOverlay (Info): Overlay loaded and initialized 2024-08-08T12:18:35.877 LogEOSAnalytics (Verbose): Record Event: SDKOverlayComponent.Init
2024-08-08T12:18:35.877 LogEOSUI (Verbose): Social Overlay: Configuring intent payload handlers for FSocialOverlayJavascript 2024-08-08T12:18:35.877 LogEOSUI (Warning): Hot key event ignored because there are no known users. 2024-08-08T12:18:35.880 LogEOSAntiCheat (Info): [AntiCheatClient] Anti-cheat client not available. Verify that the game was started using the anti-cheat bootstrapper if you intend to use it. 2024-08-08T12:18:35.880 LogEOSRTC (VeryVerbose): RTCPlatform Establish a new game thread id 2024-08-08T12:18:35.880 LogEOSRTC (Verbose): RTCPlatform RTC has been bound to a game thread id: '52672' 2024-08-08T12:18:35.880 LogEOSRTC (VeryVerbose): RTCPlatform PlatformLibRtcInstance Initializing new SharedLibRtcInstance 2024-08-08T12:18:35.880 LogEOSRTC (Verbose): RTCPlatform Initializing SharedLibRtcInstance 2024-08-08T12:18:35.880 LogEOSRTC (Info): LibRTCCore: Initializing LibRTC... 2024-08-08T12:18:35.880 LogEOSRTC (VeryVerbose): RTCPlatform SharedLibRtcInstance has been fully initialized 2024-08-08T12:18:35.880 LogEOSRTC (VeryVerbose): RTCPlatform PlatformLibRtcInstance Using new constructed SharedLibRtcInstance 2024-08-08T12:18:35.880 LogEOSRTC (Verbose): RTCPlatform InitializeLibRtcSession 2024-08-08T12:18:35.880 LogEOSRTC (VeryVerbose): RTCPlatform Initializing new LibRTC session 2024-08-08T12:18:35.880 LogEOSRTC (Verbose): RTCPlatform Creating LibRTC session 2024-08-08T12:18:35.880 LogEOSRTC (VeryVerbose): RTCPlatform LibRTC session has been fully initialized End of Early EOS LOG Init completed with existing EOS PlatformInterface
Then later, when trying to login
Attempting to login... StartLoginWithLoginTypeAndToken 08/08/2024 12:19:29 LogEOSAuth(Warning): BeginDesktopCrossplayLogin: Desktop crossplay is not ready: EOS_DesktopCrossplay_ApplicationNotBootstrapped LoginCallBackResult : Success Attempting to use refresh token to login with connect StartLoginWithLoginTypeAndToken LoginCallBackResult : Success Changing PUID: null => 0002cdca97ec40b4b0c81364cfea5cae Connect Login Successful. [Success]
Let's try to get you logged in, and see if you have any similar logs.
There's a couple of things to make your logs more useful. If you add ENABLE_DEBUG_EOSMANAGER
to your build's symbols, it will make things that go through the EOSManager
print out. You can also set logging levels before trying to log in. After you have initialized EOSManager
, call EOSManager.Instance.SetLogLevel(LogCategory.AllCategories, LogLevel.Verbose)
to tell the EOS SDK to print out additional logs for all categories.
Lemme know when you've had a chance to try these, and we can continue on debugging your issues promptly!
Hi @WispyMouse thanks for reopening the issue and all the comments, it helps tremendously as I was really lost about what to do next!
To answer your question: "are you experiencing crashes while Unity is building in the Editor, or are you experiencing crashes in built game executables that 'successfully' built?", the answer is that I crash when I try to open executables that were 'successfully' built, so it's the second option there.
About logging in: when testing and getting the overlay errors, I'm deploying the build to the Epic Store and trying to play it through my client which has access to the Stage sandbox (through the Epic Launcher). My expectation is that, by doing so and initializing EOS, it will automatically try to log in, but I'm not entirely sure anymore?
Noticeably, the log lines you sent that start with "Attempting to login..," are not present on my logs. It feels like I'm missing something crucial in my C# code, but I can't find out what.
About rebuilding the GfxPluginNativeRender-x64 binaries, I can't quite find the .sln file you mentioned. Below is what I can find when looking for that file name in my project. I didn't touch any of these as I wouldn't know what I'm doing. These files are all within the UnityProjectRootFolder\Library\PackageCache\com.playeveryware.eos@593c15b8bdab\Runtime directory.
My next steps: I'll try adding the build symbols and debug calls, and build the Achievements sample this week. I'll let you know how it goes! In the meantime, please let me know if you have any thoughts on the above.
I really appreciate your help, thank you!
Let's start with a classic Unity problem solving tool: Can you close Unity, delete your Library
folder, and then try rebuilding?
My current suspicion is that when you updated, your Library intelligently
determined that it could keep some of the files around, that it really shouldn't be. I'm hoping that if you can delete these and rebuild, then the fresh build won't have those artifacts laying around.
Looking at the UPM repo, it does seem like you aren't given the tools to rebuild the native library plugins. I'm hoping that if both your build destination and library files are cleared out, that this problem won't happen.
Since you're launching from Epic, it's using a command line argument to set the sandbox and deployment ids. As long as you've associated your sandbox with the deployment, it should use those values correctly for logging in.
This was one of your logs that you shared:
2024-06-03T01:56:51.811 NativePlugin (INFORM): Loading path at C:\Program Files\Epic Games*\Plugins\x86_64\EOSSDK-Win64-Shipping.dll
Did you adjust this path to exclude any information, or is this the path it is looking at?
Closing this issue due to it being stale. If you are still in need of assistance please don't hesitate to reopen the issue!
Hey folks, sorry for "ghosting" the thread. I had to urgently prioritize a different project.
@andrew-hirata-playeveryware I'd hugely appreciate if you could reopen the thread, but let me know if you prefer me to open a new one.
The issue seems to be that I am expecting the Epic Games login to "automatically" work if the app is launched from the Epic Launcher. Is that expectation valid and correct? This seems to be the key question.
I now created a build just with the Achievements Sample and uploaded as my game in the Stage sandbox. I then launched it from Epic Launcher, which is logged to my personal account. When opening it, I was expecting the scene to already show as "logged in" since I launched from Epic Launcher. If I try to manually log in using Account Portal, I still need to enter my username and password, instead of just using on the Epic account that launched the game. If I try PersistentAuth which sounds like what I need for my "automatic login" use case, I get the error "LogEOSAuth(Warning): No existing persistent auth credentials were found for automatic login."
@WispyMouse thanks again for all the help beforehand, it really shone a light on things! Here are some answers from what you asked/suggested:
Hi, thank you for creating this plugin! I had an easy time setting up in Unity, but I can't get my achievements or overlay to work.
There seems to be an issue with the user logging in, but I can't see any fail errors either. Please see the early EOS log below.
Afterwards, whenever I try opening the overlay I always get "Hot key event ignored because there are no known users." How can I make sure that logging in works? Any ideas what might be going on?