[MUD-Dev] MMORPG/MMOG P2P design

Crosbie Fitch crosbie at cyberspaceengineers.org
Thu Feb 27 11:54:45 New Zealand Daylight Time 2003

From: Derek Licciardi

> The other alternative is to make sure that it never depends on any
> one peer for a game calculation but then your duplicating
> bandwith.

Many nodes will duplicate the calculation anyway, but this doesn't
increase bandwidth either. You don't need to collect the
calculations to compare them with the arbitration, because it
already happens round the other way: the arbitration is sent to all
those doing the same calculation. Analysis is distributed.

This kind of thing needs you to stop being 'server oriented',
i.e. don't think in terms of controlling and bringing stuff inwards
(towards a central sever), but in terms of disseminating and
delegating stuff outwards and away.

The bandwidth is only marginally larger than client/server, i.e. 1+N
(parent node + number of interested peer nodes). But, it's more
scalable because all this bandwidth is spread throughout the network
rather than at one or a few servers. There's less latency too,
because for the most important state no intermediary is involved,
and it's more likely that the nodes are topologically proximate.

For all nodes duplicating the simulation of a particular area, they
monitor the long term behaviour of discrepancy between their
calculation and the incoming, arbitrated state that overrides it
(only a random selection, though - not everything).

> If you have a central server taking care of all the logging and
> admin tasks, how are you planningon keeping up with the bandwidth
> requirements for that server?

That's a very good point and I'd agree that a central server (if it
must communicate with all nodes) is an indication that someone
somewhere wants 'supreme control'...  It's a flaw, just as much as
it was to insist that horseless carriages must be preceded by a man
on foot carrying a red flag.

Now that's not to say that any computer is free to inquire about
anything of the system, e.g. I'm interested in absolutely
everything. But, for a given amount of bandwidth there'll always be
a compromise between quantity and timeliness, i.e. you can know
about a small region of the world in a very timely manner, or you
can know about a large region in a less timely manner.  If you've
got masses of bandwidth then you can make a connection will
thousands of nodes and get timely information from each one of them.
But, this time the boot is on the other foot. The nodes don't rely
on the collector.

MUD-Dev mailing list
MUD-Dev at kanga.nu

More information about the MUD-Dev mailing list