Database Management

Database models used by Massive Multiplayer Online (MMO) Games

Massive Multiplayer Games tend to replicate reality within their programs. For this reason alone, one would first think that a relational database might be the database of choice. However, there are many considerations to that would need to take place, such as how many users will you have and the amount of data being processed.

The basic design around MMOs is familiar to anyone who has spent any time in them. You have characters that contain various items, armor, weapons, and the like, as well as some objects that contain these same items but for storage, such as backpacks or lockers. Each armor or weapon also has its own attributes. All of this is to be taken into consideration when choosing a database structure. SQL is fully capable of setting up a stricter that makes it easy to add or remove items from the game and add more characters as needed.

Cryptic Studio’s has formulated their own OODB for their games. This CrypticDB is used to reduce latency, regain as much ACID (Atomicity, Consistency, Isolation, and Durability) as possible among other benefits. OODBs reduce the code-database impedance that occurs with SQL structures. Other benefits of an OODB are lower latency, a higher read/write throughput than SQL, ease of backing up and restoring, and much friendlier to schema changes.

But you don’t need to create your own OODB as cryptic did. Versant is one company that provides developer tools that include the Versant OODB. Their Whitepaper on the subject lines out the benefits of the OODB and its use in the MMO development world.

However, may systems use relational databases to construct their worlds. World of Warcraft, one of the most popular MMOs , and second life both use MySQL. Sony Online Entertainment uses EnterpriseDB. They have arguably found ways around the limitations that are said to be in place by advocates for OODBs.

The discussion then turns to not only of capabilities but performance. Many argue that SQL is just too slow and can be implemented incorrectly causing unnecessary lag between the user and the servers. OODB is still new but maturing quickly in the gaming developers world.