[vworld-tech] Layered servers...is there any point?
ceo
ceo at grexengine.com
Mon Dec 29 16:16:15 PST 2003
Weston Fryatt wrote:
>
> My approach to an MMOG is I think a little difference than most MMOG that
> are currently out there. It "seems" that most MMOG run on one massive
> server. (Maybe I'm wrong here) But this way just seems ... Wrong... I
think
> a better way of approaching the idea is have several layers of
servers. Each
> server will either work as a group to help manage bandwidth and load and
> also providing redundancy and failover.
>
>...
> Well.. This is my idea of working with a MMOG, Not sure if it will work or
> not, but I feel it worth a try.
NB: I'm incredibly biased here :). I concentrate on developing generic
MMOG architectures that can handle any genre of MMOG: layers are
generally a no-no for us simply because they are useless in the general
case. If you're writing for a specific type of game, they could work
perfectly...so take all this with a pinch of salt. However, I would
genuinely be interested in someone explaining why layers are an
appropriate tool for the job?
...
Your scheme is not *especially* novel in that many MMOG's in development
use the same basic idea; note, however, that the particular details of
your architecture could make your scheme very different, so I'm only
going to generalise about others I've seen. Personally, in most cases I
think it's a waste of time...it's the wrong tool for the job (depends
very much on what kind of game you're aiming at here...). The main
exception I can think of is a system using SEDA (Staged Event-Driven
Architecture) which you could describe as using layers, although my
impression is that most people mean a different thing in such cases.
From a distributed-systems (DS) perspective, people are in danger of
shooting themsevles in the head with a layered system; I've not yet
heard of a layered system of any non-trivial size being used
successfully in MMOG-style servers.
Layers are a very powerful tool e.g. for massive websites (where you
have two or three caching layers, often divided amongst mutliple
physical co-location centres, plus one or more application layers, and
at the bottom somewhere a DB layer or two). If you know nothign about
DS, but you do know about large-volume corporate websites pr enterprise
business systems, they probably seem a good idea because they're all you
know.
However, I've never seen anyone explain how they are appropriate for
MMOG's; even at the most basic level, how do layers effectively handle
typical MMOG traffic patterns? Caching tends towards being impossible
(NB: assuming non-SEDA here), and layers make one of the single biggest
problems in MMOG dev harder: they add latency.
Having kept a close eye on layered MMOG dev, I've noticed that those
that adopt this approach tend to die or get cancelled before making it
to a public beta. This could be co-incidence. If you're aiming for
serious commercial success I'd advise avoiding them like the plague; if
you're just experimenting, or want to gain first hand experience of MMOG
design and dev issues, they ought to be fine. Although you won't be able
to handle any serious throughput (and hence will be limited to small
numbers of players) they WILL make it considerably easier to actually
get as far as a working game.
Adam M
More information about the vworld-tech
mailing list