Beginnings of a MMORPG server design - feedback wanted

Started by
29 comments, last by Ardaxus 21 years, 7 months ago
Hi, I have the beginnings of a massively multiplayer server design document done, with a basic overall plan on how I *think* might be a good way to do the server. I''d really like some feedback as just about the ONLY information on this topic I''ve been able to find anywhere on the net is in these forums. So anyway, what do you guys think so far? What do you think I''m doing wrong? What''s good? What needs improving? Would you like me to elaborate on anything? I''d also welcome any advice on alternative/new ways of doing things that I haven''t thought of. the link (150kb roughly) is http://www.hep10.com/internal/MMOGTechnicalDesignDocument.doc
Snowman | Ardaxus | Nathan
Advertisement
Seems reasonable so far. The World Server Message Hub sounds like a bottleneck, i''d be more inclined to use a central server that provides directory services to the other servers, and can control the other servers, keeping communications peer to peer wherever possible.

There's probably a simpler, more elegant way of doing it but hell this is London
4.1.1.2 Shutting down a game world for maintenance
1. Send a message to all logged in players to notify them of shutdown.
2. Close the login server to prevent additional players logging in.
3. Signal the message hub server that it is time to shut down. It will first notify the world state backup server to freeze its current state. Players are then disconnected and the world state backup server writes its content to the database server. Each of the additional servers then releases its memory and stops.



wrong order. I think it would be better to stop login server First. There might be a chance where a inlogging connection dosent get the shutdown message.

Slide---> "Seems reasonable so far. The World Server Message Hub sounds like a bottleneck, i''d be more inclined to use a central server that provides directory services to the other servers, and can control the other servers, keeping communications peer to peer wherever possible."


What do you exactly mean by this, could you posible describe the steps to move a connection from one server to another? Or do you suggest to stream from the directory server to other dedicated servers?
*c++ = true;
Keep a lot / most of the functionality in the Hub, just think of it as a directory service instead of a message queue, then let the zone / ai servers etc do look ups against the directory to identify which server the should be talking to. Have a look at how things like the Active Directory, JNDI etc provide these kind of services for distributed applications.

For the player server communication, i''d put in gateways - player to zone server bridges essentially, you can embed security logic, encryption etc in here and handle passing the player communications between servers as the player moves around.
There's probably a simpler, more elegant way of doing it but hell this is London
And search google for MUD-Dev - it''s a great mailing list, good info on it.
There's probably a simpler, more elegant way of doing it but hell this is London
MUD-Dev. right... will look it up, thanks :D
MUD-Dev. right... will look it up, thanks :D
Snowman | Ardaxus | Nathan
Ok, ive researched the directory services.. and what it seems to be is simply a highly optimized database for searching & reading...

So what use would a directory service be in this server diagram?
*c++ = true;
I think what he means is a centralised listing of all current connections, registered servers, etc. i.e. a server would use it to find out what IP address to connect to when load balancing, login servers would use it to find out which map server to connect the player to, etc.

The original idea was to route all packets from each server to the hub server, which would automatically know the address of each server and route the packet to the correct location, but upon further thought, it makes sense to simply use it as a directory service and provide the IP addresses that each server needs to the servers themselves, and let the servers send to the correct location directly.

[edited by - Ardaxus on September 21, 2002 6:12:45 AM]
Snowman | Ardaxus | Nathan

This topic is closed to new replies.

Advertisement