Does Epic Online Service have a Database to store Player items, unlocks, purchases, currency etc?

I’m having trouble understanding EOS, do we still have to have a backend for the database to store player accounts, player unlocks / items / weapons / stats etc? Because upon logging to EOS Dev portal, all I see is “Player Data Storage” which is not a database and they’ve even indicated that its for player authoritative data where the player sends the data which is easy to cheat. I understand that the login can be done with Steam, Google, Epic accounts in EOS, but what happens after the login? Where do the rest of the game data gets stored? Does steam / google systems have a place where I can use as a database? Or do I have to use other database solutions from e.g Playfab, AWS etc? If Playfab is used to store player stats, items etc, do I then setup a database in playfab which stores the player’s epic account id so that I would still use EOS for login and account details, while playfab handles player specific data like player stats, unlocks etc?

1 Like

I’m in the same early stages of a game. Ugh so many choices, what’s the best and preferred database design for an UE game?

Cant you use the server to authenticate data before its sent out to Player Data Storage?

I believe they sort of do it for the Inventory System, acting more as a real time database, but the other player data could be stored using save games. I’ve been digging into it for a couple hours and I even saw @Kepller post on Sneaky Kitty’s video. I’m about to test it in my own game, but all of the info I could find was this: Cloud Saves | Epic Online Services Developer

Sorry if I’m late. Quick answer: yes. They offer an online saving feature called Player Data Storage provided by EOS. BUT, its not optimal AT ALL, with hardly any documentation on how to use it or its limitations. It also seems to take WHOLE file sizes as well.

A different option would be to buy out a contract with a database company or simply make one yourself using SQLite or MongoDB.

Simply use EOS/PlayFab to log in your user, then pass the Unique IDs off to the db for authentication, and then design your DB with schemas and controllers as you see fit. (you will need to use the HTTP module)

Hope this helps!

Since EOS isn’t really what you may need, you’ll need to consider using a database and hosting it yourself somewhere. What database you use is up to you and what you need it for. There’s nothing wrong with using a relational database in a lot of cases but there are alternatives that can potentially be faster but might have a higher learning curve.

You would need to authenticate the data via your server ie: you could use php, C++, and a number of other choices. Authentication is needed so you need to pass session data from the game to the authentication server. That then goes to the database server and then returns back to the player and the game interprets the results.

Some technologies are free to use (hosting is not) but others require a paid license. It’s pretty extensive and usually you would want to hire a consultant that matches what you need. Of course, this is a question for UE so the odds are this is for a small (solo made) indie game is pretty high and funds are likely limited so opting for free options may be your best bet rather than best performance.

As for steam achievements etc… Those are uploaded through their respected API. Technically you could use a cheat to complete all achievements at once because it’s all done on the client’s side. I’m not sure if you can use the API from your own server and authenticate the legitimacy of the achievement or not (I never used it). Hope this helps.

Oh and always encrypt your data. I don’t care if you have to self-sign for testing, just do it. And I’d probably avoid using AWS / cloud services unless you hire someone who knows how to do it. Otherwise you’re likely going to get a surprise bill you need to pawn your next few children for. Until you blow up, you should probably use a service like digital ocean or something.

1 Like