Announcement

Collapse
No announcement yet.

Epic Online Services

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

    [PLUGIN] Epic Online Services

    Hi Everyone,

    I'm currently working on a Plugin for the newly announced Epic Online Services (EOS) and thought it might be something others would be interested in.

    You can find the latest version of the Plugin here.

    You'll need to register and download the EOS SDK from Epic, here. Hit the middle option (Online Services), login/register and download the SDK Zip. Once you have the Zip (and the Plugin and/or sample project from my repo' above), you'll need to copy the Bin, Include and Lib folders into the ThirdParty folder in my plugin. This is to ensure I fully comply with the EULA from Epic, hence not adding the SDK within the repo.

    Once you have the Plugin (or the sample), you'll need to:
    • Set up your Project on the Portal
    • Get your ProductId and SandboxId
    • Add both your ProductId and SandboxId to the UEOS Settings, in Project Settings
    After this, if you see the sample, there is currently a simple test approach to initialize and shutdown the EOS SDK. Instructions are displayed through a Widget when you launch the sample project. These options are:
    Press 'E' to perform the initialisation and if everything is good, it'll print "true."
    Press 'S' to perform the shutdown.
    (Obviously you will want/need to move this to something more appropriate for your project.)

    Once you have the SDK initialized, then you can use:
    B will initialize a Metric.
    N will attempt to Begin a Player Session.
    M will attempt to End a Player Session.

    The project, blueprint nodes and comments have more direct usage information. It has also only (currently) been tested with 4.22.

    I'll be adding the other events and content to the Plugin over the coming days, and more features when they become available... but for now, everything links, compiles and can be used within a UE4 project!

    Enjoy!

    Questions, Problems and Errors:

    "EOSSDK-Win64-Shipping.dll is Missing"
    The DLL is currently in the Plugin's ThirdParty folder. Copy this to your project's Bin directory and you should be good to go!

    "Module cannot be loaded"
    Or a similar error. First, check that you can run the EOSBasic project. If you are using that project (or even if you're using your own), check under Saved/Logs for <ProjectName>.log file. Start from the end and work your way backwards, and in here you should see more details about why it cannot load the module. Most likely, the Editor cannot find the EOSSDK-Winxx-Shipping.dll file. And if that's the case, see the point above!

    Currently only built/tested against UE 4.22
    Any other versions might not work as expected!

    What's the license? And can I use it for a commercial project?
    You can absolutely use this in any of your own projects, commercial or free. No limitations. The plugin is provided "as is," so no warranty, use at your own understanding etc. And you can totally use it as a "jumping off point."
    I'd only ask that if it's of use, and you extend or fix something, do consider contributing back to the plugin :-)

    Updates:

    Some bug fixes found by the awesome community and contributors!
    Built against EOS SDK v1.1.0, with everything working as expected.
    New (simple) instructions Widget.
    Last edited by Jawdy; 07-23-2019, 02:10 PM.
    Epic Online Services Plugin for UE4 [github] [forum]

    #2
    Sounds great, so I can access it via Blueprints?

    Comment


      #3
      Originally posted by DeepShader View Post
      Sounds great, so I can access it via Blueprints?
      Absolutely!

      You'll need to add the plugin to either your project or the engine (loads more details on this AnswerHub page). And then everything is done in the Editor, either through the Project Settings page or via Blueprints.

      Of course, anyone who wants it, can access everything via C++, too.
      Epic Online Services Plugin for UE4 [github] [forum]

      Comment


        #4
        Oh hey, I was just working on this myself but this'll save me some time! Nice work!

        Comment


          #5
          Originally posted by Jawdy View Post

          Absolutely!

          You'll need to add the plugin to either your project or the engine (loads more details on this AnswerHub page). And then everything is done in the Editor, either through the Project Settings page or via Blueprints.

          Of course, anyone who wants it, can access everything via C++, too.
          Great!!!

          Comment


            #6
            Originally posted by disseminate View Post
            Oh hey, I was just working on this myself but this'll save me some time! Nice work!
            Thanks!

            I'm in the middle of sorting the Authentication and Metrics side, which will lead to good sized update and make this whole plugin much more useful :-)
            Epic Online Services Plugin for UE4 [github] [forum]

            Comment


              #7
              Hi,
              I'm experiencing a problem when I open the EOS Basic project I'm giving the error the program can not start because EOSSDK-Win64-Shipping.dll is missing from your computer. Specifically, I have introduced the Bin, Include and Lib files in the ThirdParty and still give me this error what to do?
              Excuse me of my English.

              Comment


                #8
                Originally posted by MariusEm View Post
                Hi,
                I'm experiencing a problem when I open the EOS Basic project I'm giving the error the program can not start because EOSSDK-Win64-Shipping.dll is missing from your computer. Specifically, I have introduced the Bin, Include and Lib files in the ThirdParty and still give me this error what to do?
                Excuse me of my English.
                Ah - so this is you trying to launch the project itself, rather than in the Editor?
                To solve this, you also need to put that DLL into your projects Bin directory - I'll update the notes in the first post :-)
                Epic Online Services Plugin for UE4 [github] [forum]

                Comment


                  #9
                  Today I hope to solve the Authentication side and can then continue with the other elements.
                  Epic Online Services Plugin for UE4 [github] [forum]

                  Comment


                    #10
                    Originally posted by Jawdy View Post
                    Today I hope to solve the Authentication side and can then continue with the other elements.
                    After fighting with this for a while, I finally caved and upgraded everything my end to VS2017 (hey, I got comfortable with 2015... and it still worked!) so that I could properly build the sample.
                    Added my ProductID and SandboxID, everything initialized, just like my Plugin. Great.
                    Couldn't login... getting the same EOS_InvalidParameters message...

                    Then I re-checked the documents and within this page is this Important message:
                    Player authentication and identity features are currently only accessible for games that are published in the Epic Games Store.
                    Not at all frustrating - as I thought I'd screwed up!

                    OK, so the Authentication (Login, Friends List etc) part of the Plugin will take a while longer... need to figure out how to "test" this stuff. Such as the way Valve do it with Steam and that you can test the API using a SteamDevAppId of 480, rather than having or needing a proper ID. Or if I can get something on the Epic Store, just not fully published... or???

                    I'll shift over to the Metrics side.
                    Within here, there are two types of User/Account for Metrics: Epic Account; or External.
                    So to begin with, my Plugin will focus on the External.
                    Epic Online Services Plugin for UE4 [github] [forum]

                    Comment


                      #11
                      Another update:

                      Added support for Metrics: Initializing; Begin Player Session; and End Player Session.

                      One must currently use the "External" account type, not the Epic type. I've updated the Plugin and the sample project on Github. :-)
                      Epic Online Services Plugin for UE4 [github] [forum]

                      Comment


                        #12
                        What exactly are the sessions supposed to be for the metrics system? When to start and stop tracking player activity?

                        Comment


                          #13
                          Originally posted by Mootjuh View Post
                          What exactly are the sessions supposed to be for the metrics system? When to start and stop tracking player activity?
                          Yup, exactly.

                          There's an extra data tag (currently unused), so you can track specific session types - like which level a player is on, that sort of thing. Once that goes live on the back-end, it'll be a parameter in the function and Blueprint node.
                          Epic Online Services Plugin for UE4 [github] [forum]

                          Comment


                            #14
                            Already copy SDK's folders to ThirdParty..already generate vs project....but, when I try to compile...this error happens...

                            Comment


                              #15
                              Originally posted by Demonrras View Post
                              Already copy SDK's folders to ThirdParty..already generate vs project....but, when I try to compile...this error happens...
                              The image isn't loading :-/

                              Can you copy/paste the text from the "Output" panel into here?
                              Epic Online Services Plugin for UE4 [github] [forum]

                              Comment

                              Working...
                              X