[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