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

Weston Fryatt wfryatt at muuf.com
Tue Dec 30 14:56:39 PST 2003


> >On Tue, 30 Dec 2003 10:53:30 -0600  "Weston Fryatt" <wfryatt at muuf.com>
> >wrote:
>
> 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.

How are you getting around the problem  synchronization?

I was going to protect the server from attack using a hardware firewall.
This will at least help reduce the problem. Client Hacking is my next worry
in this area, but there doesn't seem to be a lot you can do.  From what I
seen, You don't trust the client at all. Its just a source of input, and you
validate all data on the server side.

To start with, I was going to have the client doing some round robin load
balancing itself.. (ie: If there are multiple servers of the same type, The
client would connect to the next following server until it hit the end of
the list and then start back over at the top of this server list again)  I
know this isn't the best way, but will buy me sometime to afford hardware
load balancers.

I'm using RPC to allow the servers of the same type to connect to the
Database Cache server where all of the game data is shared at and then sent
on to the database server.

> 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?

The world is broken up in "continent" servers, Each controling its own area.
Right now any area that is between continents is assume to be ocean. Within
each of these severs is stored terrain and object data.  Everything in the
world is assigned a WID (World ID) this ID is used to figure out what this
object is and where its located at.

I'm not sure if this is the best idea or not right now, Most of the world
server isn't written yet, So it all theory at this point.





More information about the vworld-tech mailing list