[vworld-tech] Distributed worlds (was: ...what are people working on?)

Alex Chacha achacha at hotmail.com
Tue Dec 30 12:25:07 PST 2003

>On Tue, 30 Dec 2003 10:53:30 -0600  "Weston Fryatt" <wfryatt at muuf.com> 
>And that is what I'm trying to avoid.  I feel by distributing the servers
>and having multiple of them will help to prevent a single point of failure.

The problem I ran into early in my server development was database 
synchronization (and cache synchronization for that matter).  I am assuming 
that each server serves some purpose, the problem is that you now have many 
points to secure against attacks, each server-type cluster needs some 
central load balancing to account for hardware failure and there needs to be 
some way for servers to synchronize with others of their type (would be 
interesting if one weather server reports that it is raining, while other 
reports that the rain ended and it is sunny).  This actually turns out to be 
a horrendous problem in the long run.

At design time, you need to determine where the most CPU cycles will be 
spent and separate that functionality into a process that can be distributed 
onto many machines to allow scaling based on load (this is nothing new and 
generally how servers are written that can be CPU heavy, in the web world 
these are the application servers).

You still have to create a local cluster of login servers load balanced by a 
hardware switch (F5 Resonate or similar).  Login servers need to work off of 
1 database to avoid synchronization issues with clients changing settings, 
CS changing settings, etc.  There needs to be 1 source for valid user info 
that is always in synch regardless of where it is accessed from (or you may 
leave yourself open to exploits and other CS headaches).

After user logs in, they can be passed over to the "virtual world" server, 
but the problem is that each world server should have a database (or some 
form of data storage) that is consistent across all the servers that access 
that particular world.  You don't want one user seeing a MOB run by, while 
another user across the world see nothing due to lag or other 
synchronization issues.

While your idea may have merit, that is dependent on the game design of your 
virtual world.  Designing a network topology for the sake of being different 
can be seen as the old saying: "Those who igonre history and doomed to 
repeat it".

I am curious, which aspect of your world design would require distribution 
of servers across locations and how are you storing static data?

Get reliable dial-up Internet access now with our limited-time introductory 
offer.  http://join.msn.com/?page=dept/dialup

More information about the vworld-tech mailing list