Search Unity

Discussion Epic Online Services new Cross-Play Update with Unity SDK

Discussion in 'Multiplayer' started by neoangelique, Jul 11, 2022.

  1. neoangelique

    neoangelique

    Joined:
    Nov 19, 2014
    Posts:
    30
    Services | Games (epicgames.com)

    Latest Update and Changelog:
    What's New | Epic Online Services Developer (epicgames.com)

    I'm having some trouble understanding what exactly does Epic Online Services offers, but from what I'm guessing it is that EOS offers Player Login functionality through Steam, Epic, Google accounts etc.

    What I'm trying to figure out is if they offer any form of database backend, to store Player data e.g currency, stats, items, unlocks etc? Cause the docs and through the epic dev portal: Epic Online Services | Developer Portal (epicgames.com) does not indicate this. The closest I found was a feature called "Player Data Storage", which is also stated to be player authoritative and through the dev portal it seems to not be in a database form, its more to a txt file containing player data.

    If what I currently understand is correct then aside from EOS, a 2nd backend system with database feature is required? E.g PlayFab, AWS, Firebase.

    Does this mean that if I were to build a game using EOS as the front login "gateway" it will look something like this:
    EOS - Front Login Gateway (Players login with their Google/Epic/Steam/Facebook accounts)
    PlayFab - After login is done via EOS, game will take the ID of the Google/Epic/Steam/Facebook account and use it to search in the Playfab database for the matching ID to retrieve player data.
    Mirror/Photon/FishNet/Netcode for GameObjects - Netcode with EOS Relay System to connect to other player hosted server.

    Do I understand this correctly? Since EOS is used as the Front Login Gateway, I should not be storing Player Account details in PlayFab, instead I will only store the ID of the user in EOS to retrieve their data in PlayFab Database? This sounds slightly cumbersome since if there's anything wrong with player accounts, I would first have to know the player's EOS ID before searching in PlayFab's database to resolve or make edits to his account. I guess I could store his username in PlayFab along with the ID or perhaps only the username instead of the ID. Just want to know if this is the right way to handle 2 separate backends.
    I could use PlayFab as the Login Gateway and just use EOS as the Relay Server (I'm assuming) but than in the documents it states that Cross-Play functionality is only applicable if the player login via EOS. (Correct me if I'm wrong)
     
    Last edited: Jul 11, 2022
  2. daxiongmao

    daxiongmao

    Joined:
    Feb 2, 2016
    Posts:
    412
    Epic online services has a lot of different pieces.

    Account login is just one of them.
    It seems to be broken up into two main areas account services and game services.

    The gameservices cover networking, storage, leaderboards.
    Account services is friends, logins, identity.

    Your third point about mirror/photon... those are all doing different jobs. But basically Epic can act as a transport layer.
    So you write your game using mirror, or netcode for game objects.
    You then say transmit the data using epic transport. Mirror has one, I haven't found one yet for the new netcode for gameobjects. Hopefully there will be one soon or I will look into creating my own.

    So you may or may not need to use playfab depending on what you want to store. If you can store the data in epics player storage. The only thing I don't see in epic right now is payment verification. Where playfab has store validation for purchases. As well as ability to run server side code through their cloud script or azure functions. Which can help to secure your data. While the player data stored on say epic is accessible to the player most likely making it easier to cheat and modify.
     
    MJdev likes this.