Giter Club home page Giter Club logo

playeveryware / eos_plugin_for_unity Goto Github PK

View Code? Open in Web Editor NEW
250.0 12.0 43.0 346.03 MB

Repository for PlayEveryWare's EOS Plugin for Unity, bringing the functionality of Epic Online Services to the Unity Game Engine.

Home Page: https://eospluginforunity.playeveryware.com

License: MIT License

C# 96.07% C++ 3.54% C 0.11% Objective-C++ 0.06% Ruby 0.01% Makefile 0.08% JavaScript 0.07% PowerShell 0.04% Shell 0.02%
unity csharp epiconlineservices upm upm-package eos unity3d

eos_plugin_for_unity's Introduction

Lobby Screenshot

PlayEveryWare EOS Plugin for Unity

Overview

The PlayEveryWare EOS Plugin for Unity brings the free services from Epic that connect players across all platforms and all stores to Unity in an easy-to-use package. Find more information on what services Epic Online Services encompasses, see here: https://dev.epicgames.com/en-US/services and to read the developer documentation on those services, see here: https://dev.epicgames.com/docs/epic-online-services.

This repository contains the source code for development and serves as a destination for support for the PlayEveryWare EOS Plugin for Unity (UPM Package).

Out of the box, this project demonstrates (through a collection of sample scenes) each feature of the Epic Online Services SDK1. The sample scenes (coupled with accompanying documentation) can be used to get an idea of how you can implement all the online features you want in your game!

See this for a more complete overview of the advantages of using EOS with Unity.

Note

If you are not interested in the development of the EOS Plugin project (and instead just want to get to using it) you can follow our guide on Importing the Plugin Package to start using the most recently released version of the EOS Plugin.

Getting Started

Prerequisites

Note

Your system should also satisfy Unity's system requirements as well as the EOS system requirements

Supported EOS SDK Features

Below is a table summarizing the level of support the EOS Plugin for Unity provides. Most features are demonstrated via sample scenes provided in the project, and links to the guide for each corresponding sample scene are listed below. In some cases (such as Anti-Cheat) the feature is not very well demonstrated with a scene. In those cases, a link to information about how the plugin utilizes the feature is provided. In some cases (such as logging and overlay) the features are not implemented in any one scene specifically, but in all of them.

Use the "Select Demo Scene" dropdown in the application to select the sample scene that corresponds with the walkthrough.

There are many EOS features that do not require your player to have an Epic Games Account (EGA) - such features are also marked accordingly in the following table.

Feature Status Sample Scene Walkthrough Requires EGA
Achievements "Achievements"
Anti-Cheat "Information"
Authentication "Auth & Friends", Information ✔️
Custom Invites "Custom Invites"
Connect Interface "Auth & Friends"
Ecommerce "Store", Information ✔️
Friends "Auth & Friends" ✔️
Leaderboards "Leaderboards"
Lobby "Lobbies"
Lobby with Voice "Lobbies", Information
Logging Interface NA
Metrics "Metrics"
Mod SDK NA ✔️
NAT P2P "Peer 2 Peer", "P2P Netcode"
Platform Interface NA
Player Data Storage "Player Data Storage"
Presence "Auth & Friends" ✔️
Progression Snapshot Interface NA ✔️
Reports "Player Reports & Sanctions"
Sanctions "Player Reports & Sanctions"
Sessions "Sessions & Matchmaking"
Social Overlay / UI Interface Information ✔️
Stats "Leaderboards"
Title Storage "Title Storage"
User Info Interface NA ✔️
Voice Trusted Server NA

Efforts will be made to add corresponding support to features as they are added to the Epic Online Services SDK. The table above reflects the features as of November 2023.

Supported Platforms

We currently support the following platforms, details of each can be found on our Supported Platforms document:

  • Windows
  • Linux
  • macOS
  • Android
  • iOS
  • Nintendo Switch
  • Xbox One
  • Xbox Series X
  • PlayStation 4
  • PlayStation 5

Importing the Plugin Package

There are two options to install the package:

  • Via a UPM tarball (easiest to get started quickly).
  • From a git url (this method has the possible advantage of keeping the plugin up-to-date, if that's something that you would prefer).

Once imported into your project, be sure to Configure the Plugin to work with your game.

Exploring Supported EOS Features

Support / Contact

PlayEveryWare EOS Plugin for Unity documentation can be found here on GitHub.

For issues related to integration or usage of the EOS Unity plugin, please create a New Issue under the Issues tab.

For issues related to Epic Online Services SDK, Epic Dev Portal or for general EOS SDK information, see the Epic Online Services Community Support.

Detailed descriptions and usage for EOS SDK Interfaces can be found on Epic's documentation for Game Services.

For issues of a confidential nature (for instance for support using this Plugin on restricted console platforms), please reach out to us directly at [email protected].

If it is at all unclear to you where to go for support - do not hesitate to open a New Issue under the Issues tab, and we will make certain that you are properly (and promptly) assisted :)

Contributor Notes

This is an open source project! We welcome you to make contributions. See our Contributions document for more information.

FAQ

To disable the plugin for specific platforms, see this (which also explains why you might want to do this).

See our guide on how to export the plugin from the command line.

For issues of API Level compatibility, please read our document on .NET Quirks and Unity compatibility.

For more FAQs see Frequently Asked Questions.

If you have any outstanding questions, please bring them up in the Discussions tab.

Footnotes

  1. See the supported-eos-sdk-features section for which SDK features specifically are demonstrated.

eos_plugin_for_unity's People

Contributors

acolean-pew avatar adrianpew avatar andrew-hirata-playeveryware avatar andrewkahr avatar arthur740212 avatar c3-hoge-fuga-piyo avatar jason-pew avatar joetaylor1987 avatar lexornet avatar mendsley avatar paulhazen avatar paulhazen-pew avatar pew-dahs avatar pewndraper avatar raxnam avatar redmazer avatar scovertb avatar wi-lee avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eos_plugin_for_unity's Issues

Achievements Issue

Hi, I am trying to implement the EOS achievements system in my game with Unity and I receive the following error message from the log when I try to do the QueryDefinitions of the achievements:

unable to query achievement definitions: InvalidUser

I successfully initialized the SDK and successfully logged in using StartPersistantLogin

(Log)
Player.log
{
NewUserToken: User ClientId: xyz...oJz AccountId: 826...ca9 Access[Expires: 2022.05.19-17.51.21 Remaining: 7200.46] Refresh[Expires: 2022-11-15T15:22:05.196Z Remaining: 15550244.20] State: Valid

Social Overlay: Achievements disabled due to the local Client Auth Token missing the feature.

GenerateUserAuth success

Login succeeded
}

Has anyone else had a problem with achievements? Do you know if there is something I am missing?

Thank you.

Ui not work

After start or build any sample ui buttons not work, and i can't check that sample

How to build for android ?

I am trying to make a build for android using the latest dev branch, but the build is failing with the following errors.
image
image

Unable to authenticate using a non-developer account

Brand settings for my title have been approved and it works when testing it with a dev account.

My implementation code:

    public override void RequestPlatformID(Action<GetPlatformIDResult, string> callback) {
        LoginToEpic(LoginCredentialType.PersistentAuth, callback);
    }

    private void LoginToEpic(LoginCredentialType loginType, Action<GetPlatformIDResult, string> callback) {
        Credentials credentials = new Credentials {
            Type = loginType,
        };

        EOSManager.Instance.StartLoginWithLoginOptions(new LoginOptions {
            Credentials = credentials,
        }, (loginCallback => {
            if (loginCallback.ResultCode == Result.Success) {
                EOSManager.Instance.StartConnectLoginWithEpicAccount(loginCallback.LocalUserId, (connectLoginCallback) => {
                    if (connectLoginCallback.ResultCode == Result.Success) {
                        callback?.Invoke(GetPlatformIDResult.Success, loginCallback.LocalUserId.ToString());
                    } else {
                        callback?.Invoke(GetPlatformIDResult.Failed, string.Empty);
                    }
                });
            } else if (loginType == LoginCredentialType.PersistentAuth) {
                LoginToEpic(LoginCredentialType.AccountPortal, callback);
            } else {
                Debug.LogErrorFormat(DEBUG + "StartLoginWithLoginOptions ResultCode ({0})", loginCallback.ResultCode);
                callback?.Invoke(GetPlatformIDResult.Failed, string.Empty);
            }
        }));
    }

After the first attempt with LoginCredentialType.PersistentAuth type I receive:

StartLoginWithLoginTypeAndToken
No existing persistent auth credentials were found for automatic login.
StartLoginWithLoginTypeAndToken
Record Event: EOSSDK.HTTP.Complete
ClientAuthTask Success
NewClientToken: Client ClientId: xyz...Q4q Access[Expires: 2022.03.07-17.55.03 Remaining: 7200.16] State: Valid
xyz...Q4q result: eyJ...tEQ
Record Event: EOSSDK.HTTP.Complete
FInitiateDeviceFlowTask Success
Device code flow to be continued at https://www.epicgames.com/activate?userCode=SBBBXRCY
Launching platform browser for account portal
Error response received from backend. ServiceName=[OAuth], OperationName=[TokenGrant], Url=[], HttpStatus=[400], ErrorCode=[errors.com.epicgames.account.oauth.authorization_pending], NumericErrorCode=[1012], ErrorMessage=[The authorization server request is still pending as the end user has yet to visit and enter the verification code.], CorrId=[EOS-pyw0sNfd5UWuSovo4XQHbw-AGx03vOpPUeES-1I9aPaRw-lm5oeVy1Z0-jrk6t2lz35Q]
Polling for token grant. Device code flow to be continued at https://www.epicgames.com/activate?userCode=SBBBXRCY
Record Event: EOSSDK.HTTP.Complete
Next token grant poll
Error response received from backend. ServiceName=[OAuth], OperationName=[TokenGrant], Url=[], HttpStatus=[400], ErrorCode=[errors.com.epicgames.account.oauth.authorization_pending], NumericErrorCode=[1012], ErrorMessage=[The authorization server request is still pending as the end user has yet to visit and enter the verification code.], CorrId=[EOS-pyw0sNfd5UWuSovo4XQHbw-AGx03vOpPUeES-1I9aPaRw-MUidY1YDd0GBQRZjwD-o2w]
Polling for token grant. Device code flow to be continued at https://www.epicgames.com/activate?userCode=SBBBXRCY
Record Event: EOSSDK.HTTP.Complete
Next token grant poll
Error response received from backend. ServiceName=[OAuth], OperationName=[TokenGrant], Url=[], HttpStatus=[400], ErrorCode=[errors.com.epicgames.account.oauth.authorization_pending], NumericErrorCode=[1012], ErrorMessage=[The authorization server request is still pending as the end user has yet to visit and enter the verification code.], CorrId=[EOS-pyw0sNfd5UWuSovo4XQHbw-AGx03vOpPUeES-1I9aPaRw-LlWQFplxs0ig_BymbFMPog]
Polling for token grant. Device code flow to be continued at https://www.epicgames.com/activate?userCode=SBBBXRCY
Record Event: EOSSDK.HTTP.Complete
Next token grant poll
FPollTokenGrantRequestTask Success
Record Event: EOSSDK.HTTP.Complete
FInitiateDeviceFlowTask Complete Success
NewUserToken: User ClientId: xyz...Q4q AccountId: 741...62b Access[Expires: 2022.03.07-17.55.33 Remaining: 7199.99] Refresh[Expires: 2022-09-03T15:55:33.991Z Remaining: 15551999.99] State: Valid
GenerateUserAuth success
Persistent auth credentials successfully updated in the local keychain.
Record Event: EOSSDK.HTTP.Complete
login/queryuserinfo success
Social Overlay: 'leaderboards' feature disabled by overlay.
Login Tasks Complete: 0
Social Overlay: Loading:
Social Overlay: Initital DisplaySettings{ Visible(FALSE) ExclusiveInput(FALSE) HitBox(unset) }
Overlay loading in instance 1917771513040
Record Event: Overlay.ClientApi.LoadURL
LoadURL result received. [Success=1, BrowserID=1]
Record Event: Overlay.RenderProcess.LoadURL
Record Event: Overlay.MessageHandler.LoadURLResult
Record Event: Overlay.RenderProcess.BrowserCreated
Record Event: Overlay.RenderProcess.ConnectBrowserAndRenderProcesses
Record Event: Overlay.MessageHandler.BrowserStatus
Error response received from backend. ServiceName=[EOSAuth], OperationName=[TokenGrant], Url=[], HttpStatus=[404], ErrorCode=[errors.com.epicgames.eos.auth.user_not_found], NumericErrorCode=[110016], ErrorMessage=[EOS User Identity not found. identityProviderId: epicgames accountId: 741a35744182426ab699e358368d762b], CorrId=[EOS-pyw0sNfd5UWuSovo4XQHbw-AGx03vOpPUeES-1I9aPaRw--n3OtYpTt061CmpNmE0E8g]
Record Event: EOSSDK.HTTP.Complete
[EPIC_USER_PROVIDER] : StartConnectLoginWithEpicAccount ResultCode (InvalidUser)`

After the InvalidUser result I try again using LoginCredentialType.AccountPortal and get the same InvalidUser result:

Error response received from backend. ServiceName=[EOSAuth], OperationName=[TokenGrant], Url=[], HttpStatus=[404], ErrorCode=[errors.com.epicgames.eos.auth.user_not_found], NumericErrorCode=[110016], ErrorMessage=[EOS User Identity not found. identityProviderId: epicgames accountId: 741a35744182426ab699e358368d762b], CorrId=[EOS-pyw0sNfd5UWuSovo4XQHbw-AGx03vOpPUeES-1I9aPaRw--n3OtYpTt061CmpNmE0E8g]
Record Event: EOSSDK.HTTP.Complete
[EPIC_USER_PROVIDER] : StartConnectLoginWithEpicAccount ResultCode (InvalidUser)

Getting stuck in EOS library unloading

When entering play mode for the second time after starting Unity it gets stuck in SystemDynamicLibrary.FreeLibrary(existingHandle); at:

EOSManager.EOSSingleton.ForceUnloadEOSLibrary() at Library\PackageCache\com.playeveryware.eos@7684ee6c4e\Runtime\EOSManager_DynamicLoading.cs:line 312 EOSManager.EOSSingleton.Init() at Library\PackageCache\com.playeveryware.eos@7684ee6c4e\Runtime\EOSManager.cs:line 254 EOSManager.Awake()

This is in the latest version of the EOS package using the latest Unity LTS version, 2020.3.17.

login

login not working

git-lfs command not found, how to fix?

I keep getting this error when I try to import the project:

Error when executing git command. git-lfs filter-process: git-lfs: command not found
fatal: the remote end hung up unexpectedly

I read the unity documentation for this but I have no idea what I am suppose to do to get the package manager to actually work for this.

A step by step guide would be helpful because unity is terrible with documentation on explaining this.

EOS for iOS n Android end of year

Hi there

https://dev.epicgames.com/en-US/news/epic-online-services-releases-plugins-for-unity-and-unreal-engine?sessionInvalidated=true

According to Epic's official blog post on unity plugin (this one),
"The Epic Online Services plugin for Unity is now available for PC, with console and mobile following later in the year. "

We are just 2 months away , so do you think this is still applicable? (Unity Plugin for both iOS n Android)

A 'rough' idea will let us plan better.

Thanks

Samples not reacting to player input

Hello,

I installed the plugin package and the samples and have entered the product, client id, etc. parameters with the Config Editor.
Now, when I load any of the sample scenes (e.g. AuthAndFriends) and run it, it initializes EOS correctly but I can't interact with the UI (mouse clicks are ignored) so I can't login, etc.
The logs show they are trying to access a missing script in the 'EventSystem' object, and indeed this object has a broken reference to a script (shows 'missing script').

Is this expected or maybe something went wrong when importing the samples?

Thanks a lot.

Device Auth Url Link

Hey,

Im trying to figure out the device auth flow. I have it all working but when I call AuthInterface.Login() it prints out a URL to the console that I then manually have to copy and paste into my browser. Im trying to figure out either how to make this automatic so the browser window will popup for the user with the link supplied or where in the code this link gets printed so I can access it and pop up the browser myself in my own code.

Any insight would be great.

Regards
Rob

Missing script in Samples

Hi, is it normal to have a missing script in the "EventSystem" Game Object? I followed the installing instructions from this repo (install using git url + samples import). Currently, in every Sample scene, this script is missing.

image

Btw, I've been having troubles running this scenes (maybe because of the missing script). When I hit Play, the Game view shows the logs but I'm not able to interact with it e.g. press the "copy logs" button .

Roadmap

Hi,
can you share when Android and iOS version will be released?

Thanks

Session Matchmaking Sample doesn't work

Describe the bug
After creating a session, it disappears in an instant.

I tried the following in the Sample scene.
・ AuthAndFriends ⇒ fine work
・ Lobbies ⇒ fine work
・ Session Matchmaking ⇒ bad

To Reproduce
Steps to reproduce the behavior:

  1. Login
  2. Input SessionName
  3. Create New Session
  4. Session careated
  5. See Error

Expected behavior
The session should remain until it is erased.

Screenshots
image
image

Desktop (please complete the following information):

  • OS: Windows x64
  • Unity Version:2021.3.5f1
  • Plugin Version:1.0.4

Additional context
The log at that time is as follows.

02:06:09.606 [Log] : Loaded config file: {"productName":"PieceWars","productVersion":"1.0","productID":"a4f1f08f1b9e4ae0ad477113ae6befad","sandboxID":"4d37c986c923480d82ce9215f14e4577","deploymentID":"4d909975955a4248aa1a47f5238a17b9","clientSecret":"o+WmmyICjUc6f18BNQPgwtmwyAywRakEkXJBEwBxK18","clientID":"xyza7891vnMrXkkE0tZgFeogsCKMN36F","encryptionKey":"","platformOptionsFlags":[""],"alwaysSendInputToOverlay":false,"initialButtonDelayForOverlay":"","repeatButtonDelayForOverlay":""}
02:06:09.613 [Log] : InitializePlatformInterface: platformSpecifics.GetType() = PlayEveryWare.EpicOnlineServices.EOSPlatformSpecificsWindows
02:06:09.613 [Log] : InitializePlatformInterface: initOptions.GetType() = PlayEveryWare.EpicOnlineServices.EOSWindowsInitializeOptions
<color=#FFFF00>02:06:09.661 [Warning] : EOSManager::Init: InitializePlatformInterface: initResult = Success
02:06:09.673 [Log] : 2022-07-06T11:06:09.6664596+09:00 LogEOS(Info): [Boot] EOSSDK Version 1.14.2-18950192 booting at 2022-07-06T02:06:09.665Z
02:06:09.673 [Log] : 2022-07-06T11:06:09.6738567+09:00 LogEOS(Info): [Boot] EOSSDK Platform Properties [OS=Windows/10.0.22000.739.64bit, ClientId=xyza7891vnMrXkkE0tZgFeogsCKMN36F, ProductId=a4f1f08f1b9e4ae0ad477113ae6befad, SandboxId=4d37c986c923480d82ce9215f14e4577, DeploymentId=4d909975955a4248aa1a47f5238a17b9, ProductName=PieceWars, ProductVersion=1.0, IsServer=false, Flags=LoadingInEditor]
02:06:09.678 [Log] : 2022-07-06T11:06:09.6782999+09:00 LogEOSOverlay(Info): Overlay will not load, because it was explicitly disabled when creating the platform
02:06:09.681 [Log] : 2022-07-06T11:06:09.6812957+09:00 LogEOSEcom(Verbose): Purchase flow is disabled due to flags passed to EOS_Platform_Create
02:06:09.681 [Log] : 2022-07-06T11:06:09.6812957+09:00 LogEOSUI(Verbose): Social overlay is disabled due to flags passed to EOS_Platform_Create
02:06:09.694 [Log] : 2022-07-06T11:06:09.6943123+09:00 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.
02:06:09.700 [Log] : 2022-07-06T11:06:09.7002986+09:00 LogEOSRTC(Info): LibRTCCore: Initializing LibRTC...
02:06:09.712 [Log] : EOS loaded
<color=#FFFF00>02:06:09.714 [Warning] : Session Matchmaking (OnLoggedOut): Not logged in.
<color=#FFFF00>02:06:09.748 [Warning] : Session Matchmaking (OnLoggedOut): Not logged in.
02:06:09.757 [Log] : 2022-07-06T11:06:09.7576692+09:00 LogEOS(Info): Updating Platform SDK Config, Time: 0.046596
02:06:10.543 [Log] : 2022-07-06T11:06:10.5432378+09:00 LogEOS(Info): SDK Config Platform Update Request Successful, Time: 0.829516
02:06:10.545 [Log] : 2022-07-06T11:06:10.5452345+09:00 LogEOSAnalytics(Info): Start Session (User: ...)
02:06:10.545 [Log] : 2022-07-06T11:06:10.5452345+09:00 LogEOSAnalytics(Verbose): Record Event: SDKOverlayComponent.Init
02:06:10.545 [Log] : 2022-07-06T11:06:10.5452345+09:00 LogEOSAnalytics(Verbose): Record Event: EOSSDK.HTTP.Complete
02:06:10.545 [Log] : 2022-07-06T11:06:10.5452345+09:00 LogEOSAnalytics(Warning): EOS SDK Analytics disabled for route [1].
02:06:10.546 [Log] : 2022-07-06T11:06:10.5462318+09:00 LogEOSEcom(Verbose): Purchase flow is disabled due to flags passed to EOS_Platform_Create
02:06:10.546 [Log] : 2022-07-06T11:06:10.5462318+09:00 LogEOS(Info): Updating Product SDK Config, Time: 0.833552
02:06:10.800 [Log] : 2022-07-06T11:06:10.8009295+09:00 LogEOSAnalytics(Verbose): Record Event: EOSSDK.HTTP.Complete
02:06:10.801 [Log] : 2022-07-06T11:06:10.8019267+09:00 LogEOSConnect(Verbose): ConnectClientAuthTask Success
02:06:10.808 [Log] : 2022-07-06T11:06:10.8089082+09:00 LogEOSAnalytics(Info): Start Session (User: ...)
02:06:11.008 [Log] : 2022-07-06T11:06:11.0088254+09:00 LogEOSAnalytics(Verbose): Record Event: EOSSDK.HTTP.Complete
02:06:11.010 [Log] : 2022-07-06T11:06:11.0108199+09:00 LogEOS(Info): SDK Config Product Update Request Successful, Time: 1.298976
02:06:11.011 [Log] : 2022-07-06T11:06:11.0118188+09:00 LogEOSEcom(Verbose): Purchase flow is disabled due to flags passed to EOS_Platform_Create
02:06:11.011 [Log] : 2022-07-06T11:06:11.0118188+09:00 LogEOS(Info): SDK Config Data - Watermark: 1963445314
02:06:11.011 [Log] : 2022-07-06T11:06:11.0118188+09:00 LogEOS(Info): ScheduleNextSDKConfigDataUpdate - Time: 1.298976, Update Interval: 335.701172
02:06:11.212 [Log] : 2022-07-06T11:06:11.2122846+09:00 LogEOSAnalytics(Verbose): Record Event: EOSSDK.HTTP.Complete
02:07:10.539 [Log] : 2022-07-06T11:07:10.5390225+09:00 LogEOSAnalytics(Verbose): Record Event: UsageMetric
02:07:10.539 [Log] : 2022-07-06T11:07:10.5390225+09:00 LogEOSAnalytics(Verbose): Record Event: UsageMetric
02:07:10.801 [Log] : 2022-07-06T11:07:10.8010336+09:00 LogEOSAnalytics(Verbose): Record Event: UsageMetric
02:07:32.986 [Log] : Attempting to login...
02:07:32.986 [Log] : StartLoginWithLoginTypeAndToken
02:07:33.557 [Log] : 2022-07-06T11:07:33.5570565+09:00 LogEOSAuth(Verbose): Received exchange code from dev auth tool. Proceeding with exchange code login
02:07:33.878 [Log] : 2022-07-06T11:07:33.8786188+09:00 LogEOSAnalytics(Verbose): Record Event: EOSSDK.HTTP.Complete
02:07:33.880 [Log] : 2022-07-06T11:07:33.8806580+09:00 LogEOSAuth(Verbose): UserAuth Success
02:07:33.881 [Log] : 2022-07-06T11:07:33.8818748+09:00 LogEOSAuth(Info): NewUserToken: User ClientId: xyz...36F AccountId: 337...4f1 Access[Expires: 2022.07.06-04.07.34 Remaining: 7200.94] Refresh[Expires: 2022-07-06T10:07:34.944Z Remaining: 28800.94] State: Valid
02:07:33.893 [Log] : 2022-07-06T11:07:33.8938631+09:00 LogEOSAuth(Info): GenerateUserAuth success
02:07:34.109 [Log] : 2022-07-06T11:07:34.1091205+09:00 LogEOSAnalytics(Verbose): Record Event: EOSSDK.HTTP.Complete
02:07:34.110 [Log] : 2022-07-06T11:07:34.1101183+09:00 LogEOSAuth(Info): login/queryuserinfo success
02:07:34.112 [Log] : 2022-07-06T11:07:34.1121120+09:00 LogEOSAuth(Info): Login Tasks Complete: 0
02:07:34.402 [Log] : 2022-07-06T11:07:34.4023360+09:00 LogEOSAnalytics(Verbose): Record Event: EOSSDK.HTTP.Complete
02:07:34.404 [Log] : 2022-07-06T11:07:34.4040741+09:00 LogEOSMessaging(Info): Attempting connection to Stomp. LocalUserId=[000...a7d] Url=[]
02:07:34.413 [Log] : Changing PUID: null => 000209f95a4e4ff0bc4ef26c492bea7d
02:07:34.413 [Log] : Connect Login Successful. [Success]
02:07:35.425 [Log] : 2022-07-06T11:07:35.4250271+09:00 LogEOSPresence(Info): Updating Presence to Online. LocalUserId=[337...4f1] RichText=[]
02:07:35.469 [Log] : 2022-07-06T11:07:35.4694528+09:00 LogEOSMessaging(Info): Succesfully connected to Stomp. LocalUserId=[000...a7d]
02:07:35.663 [Log] : 2022-07-06T11:07:35.6638609+09:00 LogEOSAnalytics(Verbose): Record Event: EOSSDK.HTTP.Complete
02:07:35.666 [Log] : Session Matchmaking: set presence successfully.
02:07:35.695 [Log] : 2022-07-06T11:07:35.6957702+09:00 LogEOSMessaging(Verbose): Stomp subscribed to topic /4d909975955a4248aa1a47f5238a17b9/account/000209f95a4e4ff0bc4ef26c492bea7d
02:08:01.707 [Log] : 2022-07-06T11:08:01.7071484+09:00 LogEOS(Warning): Error response received from backend. ServiceName=[Sessions], OperationName=[CreateSession], Url=[], HttpStatus=[403], ErrorCode=[errors.com.epicgames.common.policy_missing_action], NumericErrorCode=[UNSET], ErrorMessage=[Client xyza7891vnMrXkkE0tZgFeogsCKMN36F missing matchmaking:createSession], CorrId=[EOS-NUnnp0zsjUuMnFnKXluNCw-LUUyW2_b_kavKvt-Iq2xww-T6GiUwK46kGMTxZLz3EsDg]
02:08:01.708 [Log] : 2022-07-06T11:08:01.7081457+09:00 LogEOSAnalytics(Verbose): Record Event: EOSSDK.HTTP.Complete
02:08:01.710 [Log] : 2022-07-06T11:08:01.7104059+09:00 LogEOSPresence(Info): Skipping updating Presence to Online. Requested Presence is the same as the current one.
<color=#FF0000>02:08:01.721 [Error] : Session Matchmaking (OnUpdateSessionCompleteCallback): error code: NotConfigured
<color=#FF0000>02:08:01.722 [Error] : Session Matchmaking: could not get ActiveSession for name: 123
02:08:09.895 [Log] : 2022-07-06T11:08:09.8950603+09:00 LogEOSAnalytics(Verbose): Record Event: EOSSDK.HTTP.Complete
02:08:33.848 [Log] : 2022-07-06T11:08:33.8484135+09:00 LogEOSAuth(Verbose): Sending Verify Auth request. url=
02:08:33.881 [Log] : 2022-07-06T11:08:33.8813208+09:00 LogEOSAnalytics(Verbose): Record Event: UsageMetric
02:08:34.043 [Log] : 2022-07-06T11:08:34.0434991+09:00 LogEOSAnalytics(Verbose): Record Event: EOSSDK.HTTP.Complete
02:08:34.044 [Log] : 2022-07-06T11:08:34.0444966+09:00 LogEOSAuth(Verbose): Verify Auth Success
02:08:34.402 [Log] : 2022-07-06T11:08:34.4026063+09:00 LogEOSAnalytics(Verbose): Record Event: UsageMetric
02:08:35.424 [Log] : 2022-07-06T11:08:35.4244634+09:00 LogEOSAnalytics(Verbose): Record Event: UsageMetric
02:08:35.664 [Log] : 2022-07-06T11:08:35.6634147+09:00 LogEOSAnalytics(Verbose): Record Event: UsageMetric
02:09:01.707 [Log] : 2022-07-06T11:09:01.7071801+09:00 LogEOSAnalytics(Verbose): Record Event: UsageMetric
02:09:01.707 [Log] : 2022-07-06T11:09:01.7071801+09:00 LogEOSAnalytics(Verbose): Record Event: UsageMetric
02:09:34.043 [Log] : 2022-07-06T11:09:34.0437174+09:00 LogEOSAuth(Verbose): Sending Verify Auth request. url=
02:09:34.254 [Log] : 2022-07-06T11:09:34.2543493+09:00 LogEOSAnalytics(Verbose): Record Event: EOSSDK.HTTP.Complete
02:09:34.255 [Log] : 2022-07-06T11:09:34.2553469+09:00 LogEOSAuth(Verbose): Verify Auth Success

Error loading EOS lib on Mac

After going through the setup steps and installing via upm, I get the following error trying to start in the editor, both in the Auth sample and in my project:

NullReferenceException: Object reference not set to an instance of an object
PlayEveryWare.EpicOnlineServices.EOSManager+EOSSingleton+<>c.<LoadDelegatesWithEOSBindingAPI>b__60_0 (DLLHandle handle, System.String functionName) (at Library/PackageCache/com.playeveryware.eos@b1c455b332/Runtime/EOSManager_DynamicLoading.cs:218)
Epic.OnlineServices.Bindings.Hook[TLibraryHandle] (TLibraryHandle libraryHandle, System.Func`3[T1,T2,TResult] getFunctionPointer) (at Library/PackageCache/com.playeveryware.eos@b1c455b332/Runtime/EOS_SDK/Generated/Bindings.cs:29)
PlayEveryWare.EpicOnlineServices.EOSManager+EOSSingleton.LoadDelegatesWithEOSBindingAPI () (at Library/PackageCache/com.playeveryware.eos@b1c455b332/Runtime/EOSManager_DynamicLoading.cs:217)
PlayEveryWare.EpicOnlineServices.EOSManager+EOSSingleton.LoadEOSLibraries () (at Library/PackageCache/com.playeveryware.eos@b1c455b332/Runtime/EOSManager_DynamicLoading.cs:341)
PlayEveryWare.EpicOnlineServices.EOSManager+EOSSingleton.Init (PlayEveryWare.EpicOnlineServices.IEOSCoroutineOwner coroutineOwner) (at Library/PackageCache/com.playeveryware.eos@b1c455b332/Runtime/EOSManager.cs:388)
PlayEveryWare.EpicOnlineServices.EOSManager.Awake () (at Library/PackageCache/com.playeveryware.eos@b1c455b332/Runtime/EOSManager.cs:1021)

It seems to be looking for libEOSSDK-Mac-Shipping, which I can't find anywhere in the project.

login

there's a more simple way to login than the way on sample?

Player Data Storage Encryption Key Not Set

I'm having the following error when using the demo scene and my own scene.

"[EOS SDK] Player data storage: could not upload file: PlayerDataStorageEncryptionKeyNotSet"

I've set up the encryption key to a 256-bit hex string as well as a 128-bit hey string and neither seem to work. Do we need to initialize this key somewhere else in the code?

Social Overlay not loading

Hey there, I integrated this plugin on 29th Sept and had the social overlay working correctly. Running the game again this week and it returns EOS_UI_SocialOverlayLoadError and the overlay doesnt open.

I saw the Epic Launcher just updated to 13.0 and the EOS SDK just released 1.14 (though this apparently focuses on the anti-cheat features). Wondering if its something there thats broken the overlay support?

Having the ability to change the way the EOSConfig is initialized instead of being forced to use the json file

Is your feature request related to a problem? Please describe.
Currently the EOS config in the EOSSingleton.init is loaded via a .json file located at StreamingAssets\EOS\EpicOnlineServicesConfig.json . This is a file that is also included in a build and can be opened by any text reader and contains all the ids inlcuding sandbox, client, client secret, etc . Correct me if I'm wrong but these a not things that you want to expose to the public and that users can freely adjust on a release build?

I adjusted the loading of this Json to use a different method (can be via code, scriptable object or whatever custom method you want to use to create the EOSConfig object with the required data. This works great in the editor but when you create a build things go horribly wrong.
The reason for this is the use of the Native GFX Renderer on standalone windows builds.
During the init EOS_GetPlatformInterface() is called which is a method that is part of the GfxPluginNativeRender dll. Which in turn tries to load the Json file (or at leas that is what it looks like)!?
So when the json isn't present a nullref exception gets thrown and everything halts even though you provided a fully valid EOSConfig in the EOSManager

Describe the solution you'd like
If possible I would like to be able to control how this config is loaded instead of being forced to use the public visible json as the only solution.
Or at the very least make it so that if this point is reached the plugin can recover with the manually provided data.
Ideally I would like to be able to set a EOSConfig on the manager or instance before it's init is called.

Describe alternatives you've considered
Don't have the json as a freely readable text file.

Additional Question
Is there a way to work around this with the current version or a way for me to adjust this myself?

Thank you in advance.

Creating build for macOS fails if EOS plugin package is installed

This package does not support macOS yet, which is fine, but it should still be possible to create macOS builds of your Unity project (without using EOS).

Right now, when trying to do so the build fails due to some methods not existing:

Library\PackageCache\com.playeveryware.eos@7684ee6c4e\Runtime\EOSManager.cs(238,35): error CS0103: The name 'CreateSystemInitOptions' does not exist in the current context

Library\PackageCache\com.playeveryware.eos@7684ee6c4e\Runtime\EOSManager.cs(247,17): error CS0103: The name 'ConfigureSystemInitOptions' does not exist in the current context

Library\PackageCache\com.playeveryware.eos@7684ee6c4e\Runtime\EOSManager.cs(267,39): error CS0103: The name 'CreateSystemPlatformOption' does not exist in the current context

Library\PackageCache\com.playeveryware.eos@7684ee6c4e\Runtime\EOSManager.cs(268,50): error CS0103: The name 'GetTempDir' does not exist in the current context

Library\PackageCache\com.playeveryware.eos@7684ee6c4e\Runtime\EOSManager.cs(289,17): error CS0103: The name 'ConfigureSystemPlatformCreateOptions' does not exist in the current context

Getting errors that shouldn't be happening

Unity and VS both seem to say there is missing interface implementation but they are both wrong yet i can't compile because of it.

See screenshot to see what I mean:

image

I don't understand why it can't see this function which is clearly defined for the interface...

image

Any ideas why this is happening and how to fix it?

GC Allocations in p2p hot path

Receiving packets in the P2PInterface.cs generates a ridiculous amount of garbage from the inefficient Marshalling. As per Unity's own coding standards, any garbage that's more than zero should be considered a bug. It should also be noted that each byte from the byte array is being Marshalled individually, also generating garbage each and every time. The performance is absolutely abysmal on such a critical path.

Is 'Encryption Key' in the Config Editor required?

Hey guys, thanks a ton for the plugin! I am just starting to test it out, and was filling out the fields in the Epic Online Services Config Editor. There is a field for "Encryption Key", and I can't find any info on it anywhere.

The only place I see it mentioned anywhere on Epic's documentation website is in this table: https://dev.epicgames.com/docs/services/en-US/GameServices/Platform/index.html#creatingtheplatforminterface

It doesn't explain whether this is an encryption key that is provided to us by Epic somewhere in the developer portal, or if we are supposed to create one ourselves, or if it is even necessary at all. I've tried looking through the documentation, googling, etc.

Could someone enlighten me? Thanks a lot!

Git URL package install issue

Hey There,

I first tried installing the plugin from git using the Unity package manager, as in the guide here.
I get an error from Unity when i try both URLs...

[Package Manager Window] Cannot perform upm operation: Unable to add package [https://github.com/PlayEveryWare/eos_plugin_for_unity_upm.git]:
Cannot checkout repository [https://github.com/PlayEveryWare/eos_plugin_for_unity_upm.git]:
Error when executing git command. git-lfs filter-process: git-lfs: command not found
fatal: the remote end hung up unexpectedly
[NotFound].

I thought this was a Unity issue for mac but it appears on my windows machine also.

Plugin intergration

Dear all,

I have just started working with the plugin and I am struggling a bit with the integration. I have three questions about this.
After initializing the EOSmanager i need to log in the user either through Persistent login or with another method. Is it safe to assume that we should always try and log in the user with persistent login first and if that fails continue with another method?
Secondly, how do i get the avatar of a user. This if for both the local user and a friend?
Finally, i want to change the language of the game when I boot up the game. I have set up my supported languages inside the dev portal, however im not sure how to get the list of supported languages or the current language of the epic games launcher. How can this be done?

EOS API Config get saved in streaming assets folder!!!

Hi,

just want to let you know that your eos plugin saves the api keys config as a readable json file in the streaming assets folder, everyone can read that in any standalone build! You should move it to a resources folder at least (and make a scriptable object or something similar.)

Best regards,
Chris

Alternative to storing configuration in StreamingAssets?

Hello!

By using the StreamingAssets folder to store the product information we are just exposing sensitive information to the public, and in a human-readable format like JSON.

Is there an alternative (i.e. hardcoding, passing it to EOSManager somehow) to this?

Thanks!

Unity Editor Frozen in AuthSample

A Platform Interface initialization failure exception occurs in the first play attempt, and the Unity Editor frees up when the second play is attempted.
image

Achievements Sample Bug

Hey guys.

Just thought I'd mention a couple of bugs I found in the achievements sample that held me up for a bit. The MakeQueryPlayerAchievementsOptions and the MakeCopyPlayerAchievementByIndexOptions were missing the LocalUserId. Caused the functions getting the players achievements to error with an invalidUser.

Regards
Rob

Stop spamming the log

Currently, by default, the plugin constantly spams unity logs. Removing the ENABLE_DEBUG_EOSMANAGER define in the EOSManager.cs manually stops the plugin from bloating the logs, but is there a way to fix this without having to adjust the package ?

Since Epic isn't the only platform my game supports, I switch from target platform alot and by doing so removing/adding this plugin and discarding all changes from EOSManager. So it would be nice to have this symbol removed by default, or to add a way to disable logging through code.

Info

There are any video tutorial that you can follow?

Leaderboards Sample Scene - Error

Hey There,

After i login to the LB sample scene and the scene loads, i get an error when the scene tried to fetch the LB definitions.

Leaderboard (LeaderboardDefinitionsReceivedCallbackFn): QueryDefinitions error: UnrecognizedResponse
UnityEngine.Debug:LogErrorFormat (string,object[])
PlayEveryWare.EpicOnlineServices.Samples.EOSLeaderboardManager:LeaderboardDefinitionsReceivedCallbackFn (Epic.OnlineServices.Leaderboards.OnQueryLeaderboardDefinitionsCompleteCallbackInfo) (at Assets/Samples/Epic Online Services Plugin for Unity/1.0.1/EOS Plugin for Unity Samples/Scripts/EOSLeaderboardManager.cs:220)
Epic.OnlineServices.Leaderboards.LeaderboardsInterface:OnQueryLeaderboardDefinitionsCompleteCallbackInternalImplementation (intptr) (at Library/PackageCache/com.playeveryware.eos@cc1b23eabb12-1630406260137/Runtime/EOS_SDK/Generated/Leaderboards/LeaderboardsInterface.cs:426)
Epic.OnlineServices.Platform.PlatformInterface:Tick () (at Library/PackageCache/com.playeveryware.eos@cc1b23eabb12-1630406260137/Runtime/EOS_SDK/Generated/Platform/PlatformInterface.cs:738)
PlayEveryWare.EpicOnlineServices.EOSManager/EOSSingleton:Tick () (at Library/PackageCache/com.playeveryware.eos@cc1b23eabb12-1630406260137/Runtime/EOSManager.cs:743)
PlayEveryWare.EpicOnlineServices.EOSManager:Update () (at Library/PackageCache/com.playeveryware.eos@cc1b23eabb12-1630406260137/Runtime/EOSManager.cs:841)

... I have 3 test Leaderboards set up. 1 has ended and the other two are active.
Because of this error, there are no LBs loaded into the UI for me to test so i am stuck at the moment.

Android & iOS

Hi,
I am hoping to move to EOS since Gamesparks is closing and it seems the best alternative, but my games are for mobile and it doesn't seem to be supported by this plugin for now.
Any idea when it will be?
Thanks :)

Build Fails if using EOS_DISABLE directive

LibraryName string isn't complete if using the directive EOS_DISABLE.

Library\PackageCache\com.playeveryware.eos@b1c455b332\Runtime\EOS_SDK\Core\Config.cs(60,36): error CS1525: Invalid expression term ';'

Easy Anti Cheat

Is there any easy way to use EAC with this? I'm aware that it says its not supported, but can I use anticheat with this if I want?

Release date of the v1.0.2

Hello,
I see on the development branch the change for the v1.0.2 release.
In this version you add the support of macOS.
When do you think, it will be release ?
Thanks for your great work.

PlayerData Sample Scene - Error

Hey There,

I am getting an error in the PlayerData sample scene after login.

For the PlayerData scene I get an error when it loads...

NullReferenceException: Object reference not set to an instance of an object
PlayEveryWare.EpicOnlineServices.Samples.EOSPlayerDataStorageManager.QueryFileList () (at Assets/Samples/Epic Online Services Plugin for Unity/1.0.1/EOS Plugin for Unity Samples/Scripts/EOSPlayerDataStorageManager.cs:74)
PlayEveryWare.EpicOnlineServices.Samples.EOSPlayerDataStorageManager.OnLoggedIn () (at Assets/Samples/Epic Online Services Plugin for Unity/1.0.1/EOS Plugin for Unity Samples/Scripts/EOSPlayerDataStorageManager.cs:522)
PlayEveryWare.EpicOnlineServices.Samples.UIPlayerDataStorageMenu.ShowMenu () (at Assets/Samples/Epic Online Services Plugin for Unity/1.0.1/EOS Plugin for Unity Samples/Scripts/UI/UIPlayerDataStorageMenu.cs:201)
UnityEngine.Events.InvokableCall.Invoke () (at :0)
UnityEngine.Events.UnityEvent.Invoke () (at :0)
PlayEveryWare.EpicOnlineServices.Samples.UILoginMenu.ConfigureUIForLogout () (at Assets/Samples/Epic Online Services Plugin for Unity/1.0.1/EOS Plugin for Unity Samples/Scripts/UI/UILoginMenu.cs:276)
PlayEveryWare.EpicOnlineServices.Samples.UILoginMenu+<>c__DisplayClass30_0.b__0 (Epic.OnlineServices.Connect.LoginCallbackInfo connectLoginCallbackInfo) (at Assets/Samples/Epic Online Services Plugin for Unity/1.0.1/EOS Plugin for Unity Samples/Scripts/UI/UILoginMenu.cs:371)
PlayEveryWare.EpicOnlineServices.EOSManager+EOSSingleton+<>c__DisplayClass20_0.b__0 (Epic.OnlineServices.Connect.LoginCallbackInfo connectLoginData) (at Library/PackageCache/com.playeveryware.eos@cc1b23eabb12-1630406260137/Runtime/EOSManager.cs:506)
PlayEveryWare.EpicOnlineServices.EOSManager+EOSSingleton+<>c__DisplayClass22_0.b__0 (Epic.OnlineServices.Connect.LoginCallbackInfo connectLoginData) (at Library/PackageCache/com.playeveryware.eos@cc1b23eabb12-1630406260137/Runtime/EOSManager.cs:549)
Epic.OnlineServices.Connect.ConnectInterface.OnLoginCallbackInternalImplementation (System.IntPtr data) (at Library/PackageCache/com.playeveryware.eos@cc1b23eabb12-1630406260137/Runtime/EOS_SDK/Generated/Connect/ConnectInterface.cs:854)
Epic.OnlineServices.Platform.PlatformInterface.Tick () (at Library/PackageCache/com.playeveryware.eos@cc1b23eabb12-1630406260137/Runtime/EOS_SDK/Generated/Platform/PlatformInterface.cs:738)
PlayEveryWare.EpicOnlineServices.EOSManager+EOSSingleton.Tick () (at Library/PackageCache/com.playeveryware.eos@cc1b23eabb12-1630406260137/Runtime/EOSManager.cs:743)
PlayEveryWare.EpicOnlineServices.EOSManager.Update () (at Library/PackageCache/com.playeveryware.eos@cc1b23eabb12-1630406260137/Runtime/EOSManager.cs:841)

Estimate for Android and IOS support?

Hi, do you guys have an estimate for when you will have android and IOS support? I'm currently using the C# SDK, but it's not working on android for arm64 builds.

Developer Authentication Tool Issue

Hey There,

I have followed the setup steps using tarbell and i can log a user in using the sample scenes, however i cannot get developer-auth to work.

I assume the dev-auth tool included in the C# SDK would work?
The endpoint that the sample-scene is trying to hit for the token is invalid. ( http://8888/sean/exchange_code )

Is there something i am missing with regards the tool setup?

.. also ...
Login portal authentication is very slow and can take 10+ seconds to complete.
I am in Greece at the moment so that might be part of the problem, just thought i would let you know

Thanks,
Sean

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.