Sign in to follow this  

MMO Architecture

This topic is 2485 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I am interested in developing a rather simple MMO game demo, I have read about some rather complex MMO architectures involving governor servers
and a bunch of confusing diagrams. I am wondering what is really necessary to maintain a simple game that will probably support 1k-5k players on a server.
I am not really interested in load balancing algorithms at the moment, rather focusing on having simple server components cooperating with each other.

So clients send their login details to the Login Server which verifies it and marks the player as logged in on the database.
Does the client then disconnect from the Login Server and connect to World Server/Zone Manager server
or does the client stay connected to the Login Server and World Server/Zone Manager at the same time.

Is there even a need for the login server? Could the entire server be one .exe file maybe communicating with zone servers?
Would it be possible to run the login functions on a separate thread of the World Server since the player has to always be connected to the
World Server anyway?

What does the Login Server have to do anyway besides check valid password data/encryption/auto patcher ??

Share this post


Link to post
Share on other sites
In my setup the Login Server handles everything before entering the world (Login, Character Creation, Character selection). Once the player selects the character he/she wants to use and presses Enter World the Login server sends the Connection Information for the Region server to the client and then the client disconnects from the login server and connects to the Region server.

Share this post


Link to post
Share on other sites
[quote name='rgibson11' timestamp='1298158485' post='4776479']
I am interested in developing a rather simple MMO game demo,
[/quote]
oh dear, here we go. such a thing does not exist.

[quote]
I have read about some rather complex MMO architectures involving governor servers
and a bunch of confusing diagrams.
[/quote]
if the diagrams are confusing, that should be a good sign that you do not have the required experience to continue from this point.

have you got 2 players on a server before? how about 64? or even 128?

the login server will be used to place users on servers based on overall system load. if you dont plan on having many servers (and really, how much money are you willing to spend on hardware/network connection to support 5k players?) then you dont need to divide your population, and you can do everything in one place.

for the record, 5k players is MO, not MMO.

Share this post


Link to post
Share on other sites
[quote name='Matt_D' timestamp='1298181640' post='4776583']

for the record, 5k players is MO, not MMO.
[/quote]



A 5k player single environment RTS game (ie- MW) WOULD be Massively Multiplayer.
(actually MUCHO Massive compared to anything running today)

A betting parlor 5k player with limited player interaction, yes that could likley be run on a 3 yr old
desktop (with a html client fronting it)

Share this post


Link to post
Share on other sites
[quote name='Matt_D' timestamp='1298181640' post='4776583']
[quote name='rgibson11' timestamp='1298158485' post='4776479']
I am interested in developing a rather simple MMO game demo,
[/quote]
oh dear, here we go. such a thing does not exist.

[quote]
I have read about some rather complex MMO architectures involving governor servers
and a bunch of confusing diagrams.
[/quote]
if the diagrams are confusing, that should be a good sign that you do not have the required experience to continue from this point.

have you got 2 players on a server before? how about 64? or even 128?

the login server will be used to place users on servers based on overall system load. if you dont plan on having many servers (and really, how much money are you willing to spend on hardware/network connection to support 5k players?) then you dont need to divide your population, and you can do everything in one place.

for the record, 5k players is MO, not MMO.
[/quote]

If its 5k users active at the same time in the same world its definitly in the MMO camp and would require atleast some thought into the architecture (a single cpu core won't be capable of dealing with that for any reasonably complex realtime game)

I'd recommend doing something rather simple such as:

[code]
login -> world server -> zone servers
|
chat server
[/code]

player connects to the login server and gets an authorization token (login server sends the same token to the world server) , the player then connects to the world server which provides client with character information and connection info for the current zone , chat server, and other cross zone data, and finally the client connects to the zone server which handles gameplay in the current zone, (moving between zones can then easily be dealth with by having the client tell the world server that he is moving from zonex to zoney, and the world server verifying it by asking the zonex server if the player is in the transition area), if necessary one can add queues on zone entry to prevent flooding a zone giving the player the option to wait or stay in his current zone, basic load balancing can be done by moving zone servers between physical machines (assuming you got far more zones than physical machines) (Modern virtualization solutions make this a very easy alternative and if you keep the zone servers small and primarily move low population zones the pauses caused by a zone being migrated should be fairly minimal)

Share this post


Link to post
Share on other sites
[quote name='rgibson11' timestamp='1298158485' post='4776479']
Is there even a need for the login server? Could the entire server be one .exe file maybe communicating with zone servers?
Would it be possible to run the login functions on a separate thread of the World Server since the player has to always be connected to the
World Server anyway?

What does the Login Server have to do anyway besides check valid password data/encryption/auto patcher ??
[/quote]

How you structure your game server is entirely up to you. Generally, it makes sense to put validation, patching and message-of-the-day (perhaps including billing, account upsells, etc) onto one system, and the actual gaming on another system, but if the load is small enough, the same piece of hardware can run it all.

Putting 5,000 connections onto a single machine might not be a problem if each connection doesn't do much. If the game rules are very simple, and updates aren't too frequent, then a single multi-core server can deal with 5,000 simultaneous online users just fine. You can then do login, gaming, chatting and all of that on a single machine. This assumes, of course, that you have the necessary bandwidth for whatever the game networking actually does...

If one of those operations becomes more expensive -- for example, once you start running a real simulation on the server with things like collision detection, you may start finding there isn't enough CPU. Similarly, if the job of deciding who gets to see what messages requires processing (such as "you get the nearest X players" updated for each real-time packet sent out), then you will need more machines to do the work.

Anyway, I recommend reading the [url="http://www.gamedev.net/index.php?app=forums&module=forums&section=rules&f=15"]Forum FAQ[/url]. It answers many of your questions. Also, I recommend starting with a small online game of some sort -- up to 10 players, say.
It used to be the "massive" limit started at "over 100," but these days it has moved up a little bit. A game with 1,000 players at the same time is clearly "massive" though, so a goal of 5k is very "massive" in scale.

Share this post


Link to post
Share on other sites

This topic is 2485 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this