Recommended Posts

Hello everyone,
I need to make a suggestion for a MMORPG DB in my database class. Our theoretical db would be similar to WoW or Lineage2. Anyways, what DBMS's are good for this type of MMORPG? More importantly, what features would we be looking for (clustering, 64-bit?, etc)?
Any relevant sites or links would be greatly appreciated too.
Thanks,
Max

0

Share this post

Link to post

Share on other sites

"Massive" games are going to require multiple servers. This means you're going to need to have the database synchronized between those servers where it counts. Decide what needs to be synchronized, and what doesn't. This also depends on how the server is structured to work with multiple instances. This could include:

* One server per "channel": Easiest design by far. Servers do not interact with one another, but you can use your character on multiple servers. The only thing the servers need to keep synchronized between each other is the user and stuff related to them (ie their items).

* Non-visible area division: You have one world, not multiple clones of the same world like with "channels". Entities on one server do not interact with another server (with the exception of chatting and such), but they can move between servers. Each server only contains a portion of the world, and at no point do any of the two portions overlap. A simple example of this kind of division is the kind of maps you see in 2d games. The synchronization is just about the same as the channel one above, but more stuff may be moving between maps (and therefore servers) such as NPCs.

If it is for a database class, I don't recommend going much beyond one of these in complexity. Both of these allow synchronization to be done "on demand" (ie when switching servers) since it is unlikely you will need to communicate between the servers. When you do need something off of another server, it can be done in the form of a request to the server (ie "tell player X 'this'", or "give me info on player Y, if you have him"). To be able to do this, the database should track what server the user is on, if any.

The only database I can think of that I would recommend checking out is for MaNGOS.

Share this post

Link to post

Share on other sites

The only database I can think of that I would recommend checking out is for MaNGOS.

Emulators are not best learning resource or reference.

Quote:

More importantly, what features would we be looking for (clustering, 64-bit?, etc)

What features do you *need*?

If you don't need queries to be performed externally, then DB might be overkill and simple files will do.

If you do go with DBMS, then first determine what your object model will look like. Individual entities can be represented in many ways, from tuples to OO hierarchy to component, to something else.

Next you need to determine the update model of your state. Will you advance in lock-step, free step, fully event driven? This determines how often and in what way you need to hit the database, as well as how much data will be in updates.

How dynamic is your world, how complex are actions/transactions? Can you update entire state in single time step, or will you have long-running transactions?

Quote:

Our theoretical db would be similar to WoW or Lineage2

You don't want that. Those databases and the systems to support them need to consider entire development pipeline, have 24/7 staff to administrate them, and support crew for users. They have completely different demands from your project as well as different budget, run in data centers....

Since very few such projects operate directly on DB, but use DB primarily for persistence, your simulation model will dictate what the DB will look like.

Quote:

clustering, 64-bit?

MySQL is perfectly adequate RDBMS for this task. So is a regular file system. Other requirements are problematic to speculate on advance without knowing actual load, the design or budget.

The features you are looking for right now are: free/academic license, low hardware demands (no clustering, gigabit networks, etc.), has community support (tutorials, forums), is available on your OS and provides non-blocking/asynhronous API in language of your choice.

Share this post

Link to post

Share on other sites

The original question wasn't clear, but perhaps he is not actually looking for a database, but trying to propose one for a hypothetical MMORPG, and describe the features that make it suitable.

Sadly I think the answer is that pretty much any DB could arguably suit an MMO, simply because the concepts of "large online game" and "data persistence" are so orthogonal that your requirements all come from the finer details.