Beginnings of a MMORPG server design - feedback wanted

Started by
29 comments, last by Ardaxus 21 years, 8 months ago
quote:Original post by Slide
To fix the problems with this you now need to start using clustering, load balancing etc which adds its own performance overhead.


That''s a bit complex, easier would be to do a sort of "fixed" load balancing, i.e. if you''ve got 3 gateways, when you log in the login server picks the best gateway and you talk to that for the remainder of your session.

It''s not perfect, but it''s a hell of a lot easier to implement than a proper load balanced system.

If I had my way, I''d have all of you shot!

codeka.com - Just click it.
Advertisement
Load balancing is a PITA. Best solution is to design your system so it doesnt have bottlenecks to start with.
There's probably a simpler, more elegant way of doing it but hell this is London
MySQL is gaining those features in the near future. I think the price makes it much better value than Oracle imho.

I think for each zone server you should allow the clients to connect directly to it after having the connection 'handed-off' by the world/login server. There is a bottle neck there otherwise.


[edited by - fnagaton on September 27, 2002 10:07:41 AM]
Martin Piper
quote:Original post by fnagaton
I think for each zone server you should allow the clients to connect directly to it after having the connection ''handed-off'' by the world/login server. There is a bottle neck there otherwise.


But then you got that annoying delay while you change servers, and it''s not possible to make it so that you can "look" into other zones. If you use the gateway, the gateway can be written so that it can talk to more than one zone server at a time allowing players to "look" into other zones and move between them without any "reconnect" delays.

The static load balancing done by the login server should be enough to avoid bottlenecks in the gateway. I mean, you wouldn''t really get to the point where one gateway server is overloaded and the others are not (unless a lot of people join, filling up all gateways, but all the people in one gateway stay while the others leave. An unlikely situation, I''d say)

If I had my way, I''d have all of you shot!

codeka.com - Just click it.
Hmm.. if you have a number of Zone Servers. And a gateway which routes the connection to one of them, as in this is where the user is now.

How would you go around disconnecting the user from that server, and connecting it to another with the user notices?

Or would that be a bad method...?
*c++ = true;
quote:Original post by Coder42
How would you go around disconnecting the user from that server, and connecting it to another with the user notices?


Well, all the gateway is doing is routing messages to the server which the player is on, so when the zone server notices the player is leaving its area, it''ll send a special message to the gateway which then just starts sending the messages to a different zone server. The client doesn''t even have to know it''s being trasferred.

And if you''re really clever, when the player is near the edge of a zone, you can have the gateway talking to the zone servers on either side of the edge so that the player is able to see (and even shoot at!) monsters and other players in the other zone.

If I had my way, I''d have all of you shot!

codeka.com - Just click it.
I''m sure you guys are familiar with BigWorld (www.bigworldgames.com) and if you look at their server maintenance tools screenshots, you''ll notice one of them is to do with server load balancing. It seems to be able to constantly switch players in and out of different servers to maintain a very similar number of players being handled by each server. Have any of you got any idea how a server model might need to work to be able to do this?
Snowman | Ardaxus | Nathan
quote:Original post by Ardaxus
I''m sure you guys are familiar with BigWorld (www.bigworldgames.com) and if you look at their server maintenance tools screenshots, you''ll notice one of them is to do with server load balancing. It seems to be able to constantly switch players in and out of different servers to maintain a very similar number of players being handled by each server. Have any of you got any idea how a server model might need to work to be able to do this?


Yeah, that wouldn''t that difficult to implement. One way might be to send the client a "switch servers" message, which when it receives it, just disconnects from the current gateway and connects to the one given in the "switch servers" packet. That''s something you could add to my system at a later stage if you find that some gateways do actually start to overcrowd.

If I had my way, I''d have all of you shot!

codeka.com - Just click it.
MySQL does have stored procedures now and the others mention will be added soon.
what version of MySQL has stored procs ?

This topic is closed to new replies.

Advertisement