General Server Design Question

Started by
3 comments, last by hplus0603 14 years, 4 months ago
Alright you've all played MMORPG's such as WoW, Half Life, LOTRO, Ever Quest, etc etc. Now most of the MMO's have a server design something like this [Master Server] [Realm Server] basically the clients connect to the master first to login an then go to a selected realm. Now what I am asking is how is this done? I have a idea on how this could be done but I'd like a few insights on how it would be best to be done. here is how I think it could be done. Client->Connection to MS Client->Sends Login Info to MS MS->Checks Databank then sends Client info to Client Client->retrieves the info an does whatever MS->Sends Realm List with Status Client->Picks Realm and Disconnects from MS Realm->retrieves player information from MS and Client an does whatever Now am I way off here?
Advertisement
hello I make game server in S.korea.
your idea is close to practical design of game server.
but most of game server have lot more than just two server(like master, game, npc etc..) to achieve things like speed, security issue, memory issue and so on..

I think there is no right answer to server design.
we just trying to make better(and also faster, more safe...) server.

merry x-mas.

:)
Online Game DeveloperCurrently Developing Dragonball Online
You're pretty much right on target - the process you described is a fairly good match of how it's generally done.

Typically, the role of the master server is to authenticate the player (possibly providing some form of token which can be used to sign on to the "realm" server, to avoid repeating the often complex authentication process) and provide the client with the list of available shards (realms in WoW speak).
So this Token concept to show that the player is logged in would be something similar to a cookie in PHP? saying that hey this client is logged in it's a real account an we can let it choose a realm.
Look for "Kerberos" for the original implementation of the token-based authentication concept. Or read my article in Game Programming Gems 7 on authentication for multiplayer games :-)
enum Bool { True, False, FileNotFound };

This topic is closed to new replies.

Advertisement