• Advertisement
Sign in to follow this  

MMO Database

This topic is 423 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I have been working on a mobile MMO type game - If you are thinking of GW or WoW, stop.  This project is not and never will be even approaching that scale.  This game is fairly limited in scope and is not a giant universe of things that would be appropriate for a large studio.  Specifically, I have been trying to sort out what type of database would be appropriate.  I have read posts and opinions on this topic ad nauseam.  There is a team of programmers working on this project, but none of us have had any experience with NoSQL type databases.  To be clear, I am not saying that we should be using a NoSQL database, but I am saying I want to study our options.  So here are the details of my project.  

 

Let's assume...

1. The project's scope is within the team's ability to complete it in a reasonable amount of time.

2. We will get to a large number of users, 10,000 concurrent, 100,000 total (relevant to rough size and activity of database - I realize there is far more to it, but work with me here)

3. The general server side architecture is authoritative in nature to discourage cheating, which means there will be a fair amount of database load per player.

4. No character walking around a large world - No location type data to be stored.

 

 

Database needs to store...

1. Many game objects that have varying levels of progression - not every player possesses the same objects (This is what makes me begin to wonder about NoSQL). 

2. Inventory of a mixture of roughly 200 items and associated quantities.

3. Many time based events.

4. A large number of player to player transactions - think the stock market.

 

Thoughts?

Edited by bluebass44

Share this post


Link to post
Share on other sites
Advertisement

I'm all in MySQL, it has a number of different engines: The most common are INNODB and MYISAM (I can't recall which one was what) and the difference is huge (and you can choose which table uses what). Both of which are implementations of the "new ways" and the "old ways"  (I hate this misnomer).Transactional and atomic queries are the nice thing about the "old ways"... the "new ways" can corrupt data if done incorrectly (well, maybe it's unavoidable). 
The thing is that you talk about 100k users. And a MMO. While making tests you will realize that you will step over unless you really know each step towards making that... and it might take a lifetime.

Edited by RenzoCoppola

Share this post


Link to post
Share on other sites
Specifically, I have trying to sort out what type of database would be appropriate.

The fact that you don't know is a good sign you are not ready for a game at this scale.

 

I am guessing the type of data base is one of the smaller problems that you have. In the end, all data bases are mostly the same, they store large quantities of records with data.

While there are no doubt performance differences at full scale, it won't make any difference now.

 

Just pick one. It's likely to be wrong, but replacing it with something better shouldn't be a major problem, as their interface is all similar.

 

 

Have you done any studies on what happens if you have 100,000 live network connections? As in, how much traffic does that give, at the computer side, how many network packets / second do you have to handle, how many of those need data base access, so how much time do you have for one DB query? How does that requirement match with whatever data base you have?

At the network side, how many network packets does that cause, how fast must your network connection be, what does that cost?

Inside the data base, how many records will you have, how fast does performance go down as the number of records goes up, etc?

 

Sort of a "big data stream picture" to get an idea how much iron you'll need for that scale.

Edited by Alberth

Share this post


Link to post
Share on other sites

1. No character walking around a large world. 2. The world for a player consists of a limited view of their game.  Think Clash of Clans. 3. Game objects have varying levels of progression. 4. Large number of players (well say 100,000) 5. Inventory of a mixture of roughly 200 items 6. Many time based events
 

OP could probably pull of a MVP just using Firebase or Parse Server.

 

Sorry, but as this is For Beginners, adding some realism to the dream is (unfortunately) probably the best idea. The journey can be fruitful, and the person can learn quite a lot attempting to reach that goal, but encouraging an unrealistic goal isn't very kind.

 

While part of the question is about databases, the entire situation is entirely unrealistic. Even using great tools, a game at the scale being described cannot reasonably be implemented by a single human, particularly a beginning developer.

 

It is important to understand that the dream cannot be achieved by one-self nor with a small group of beginner friends.  A large team of experts can accomplish it, certainly, but that isn't what they have.

 

Helping to redirect the goal into something more realistic can be fruitful, and that's what a few people have done.

 

But getting back to the original question:

 

I have trying to sort out what type of database would be appropriate.  I have read posts and opinions on this topic ad nauseam.

 

Deciding what tools and technology to use -- including databases -- is mostly an exercise in elimination.

 

Make a list of all the possible software you want to use.  Eliminate those outside your cost range.  Eliminate those that have known problems you cannot work around. Eliminate those you know or believe you cannot work with, although leave them if your choices are limited and you can potentially work around the issues.

 

When you are done eliminating the ones that will not work, you should have a pool of those that might work.  Pick one, either at random or because you have familiarity with it already.  

If you ever discover the tool won't work, add that to your criteria, eliminate all those that fail the new test, and pick from among the contenders again. 

 

At this point you have quite a few excellent free database systems to choose from.  Study them a little bit, study your needs, and pick one. Pick from the list at random if you must.

Share this post


Link to post
Share on other sites

While part of the question is about databases, the entire situation is entirely unrealistic. Even using great tools, a game at the scale being described cannot reasonably be implemented by a single human, particularly a beginning developer.   It is important to understand that the dream cannot be achieved by one-self nor with a small group of beginner friends.  A large team of experts can accomplish it, certainly, but that isn't what they have.

 

There are several MMOS that have been developed by one man teams recently:

 

 

Agar.io

Slither.io

Sherwood Dungeon

 

Love

 

Minecraft 

 

 

Some of the developers probably have more experience than others (Notch obviously).  Others though whilst having experience in software development in general, do seem to beginners at games development.

 

Besides the OP never indicated weather he was developing by himself or with others.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement