Download

What is the best way to store players data in multiplayer online game?

Hi,

What would be the best way to store players data for a multiplayer online game? MySQL? What other options would work good for a game with around 100 players at a time? The data to be stored would be the players inventory items, map location, stats, etc. I remember DayZ mod used MySQL to save everything but is that still a good way to do it still today? Advantages and Disadvantages? Thanks

Storing in MySQL would be an okay way to do it. SQLite may also be a better alternative as it’s a bit faster than the MySQL server.

I use a SQLite “cache” server… and then a C# Service, running outside the game server exe, that collects data stored on multiple copies of this SQLite cache server.
Each Unreal Dedicated Server is connected to one of these SQLite cache databases; the C# Service compares time-stamps of the data recorded on SQLite, the data that is the newest one and valid, is then uploaded to the “real database” which is a MS Server database.

There is a configurable timer on the C# Service that automatically fires events to query the data from these SQLite cache databases, as well as a timer that will feed them with the newest data.
Then all dedicated servers are kept in sync with latest relevant data while they don’t have to access the “real database” for a real time game running, that would eventually be too expensive to do when there’s too many Dedicated Servers running, thus the idea of a “cache server”:

Some people use JSON, PHP, etc…

I see this will hit the marketplace soon, how much are you trying to sell it for? Look interesting.

I have very limited time to provide users support beyond email replies (I can reply to emails freely while I’m at company working, but not much beyond that);
So I always publish “my UE4 stuff” for free or minimum fee possible as a result of my lack of providing extensive support to plugin users.

So, I don’t know yet what Epic Games’ Marketplace Team think about this.
I am waiting on their feedback to see at what price range I will definitely publish it…
I am thinking about below $50, at some point maybe even publish for free, I don’t know yet.
If a package is “too cheap” or “too expensive” they usually provide hints on the subject and suggest changes, otherwise they won’t even talk about it when it’s ok.

However the “C# Service”, that links MS Server to this SQLite plugin, isn’t hitting Marketplace because that software I made when I was under contract and technically speaking that source code is not my property then. So I’m waiting review process to publish only what is seen in that video.

I could publish for very high price and provide dedicated support;
I could publish for low price and provide minimum email support;
I could publish for free and provide no support at all…

I personally like second option, because I like getting in touch and see what people are doing with it (and help when I can), while being able to invest some time on other things.