With development to an online game especially in the MMORPG, it is essential to find the most efficient way to distribute server resources available. There are a few examples as to how the current industry separate their server resources (but not limited to the examples to be shown).
First way of connection is when the client connects to the Login server then to the Arbiter server. When the client connects to a login server, it directs the information of user to an Arbiter Server which are synced with Instance servers, game database server, logD + Log DB server, and each of the world servers. Within the Arbiter server, it handles the functions such chatting, guild system, and DB cache. The client has a direct access to the Login and Arbiter server, however, cannot make a direct reach to the rest of the servers without going through the Arbiter.
Another way is when clients connect to the Login server & game server. In this case, the client connects to the login server through a TCP connection. Then the login server directs the client to the designated world which each contains a game server, cacheD + game DB server, and LogD + Log DB MS-SQL server. Client doesn’t have a direct connection to the cacheD + game DB server nor the logD + log DB server, but only through a game server that controls the other two database servers.
In third, client can connect to an Auth server which also works like a login server then connects to the world, similar to the 2nd option. Auth Server connects the client to the world server which has a direct sync to the game DB server and 3 other servers which divides to, AI server, Physics server, and Instance zone server.
When making these divination of server resources to do a specific tasks in the game, it reduces each server’s heavy usage and furthermore, queue to enter the world game. It is norm for the industry to separate the use of the game server and database server when the client connects.
The game system handles heavy load of transactions and simultaneously read and write user database. Thus, the game system needs efficiency in processing speed and stability. Especially within the online open world, it is essential to keep the response time to milliseconds (ms). And to maintain the quick response time, structuring the DB is very important. Knowing what function to be handled within the game or within the database is such. The MMORPG have the following characteristics in its structures: Handles short but many transactions, Hold close to ‘0’ complication in its transaction, Transactions by character or userID, A heavy load in its game and recording resources. So since a heavy load of short transactions are constantly happening, CPU takes a very important role among the game DB server resources.
I hope to learn more about how to structure the database for efficient use of available resources in the future.