[MUD-Dev] Complexities of MMOG Servers WAS Retention Without Addiction

Amanda Walker amanda at alfar.com
Thu Dec 12 01:50:36 CET 2002


On 12/11/02 8:57 PM, bradley newton haug <brad at faithanddisease.com> wrote:

> While not disagreeing that idiots will mess anything up, with
> remoting (com+ and .NET, corba, pickyerpoison) and modern
> languages it's possible to write apps that run the same way no
> matter how many machines they are spread over.

Sure.  This doesn't mean that they will run well when spread over
many machines, however.

> While this sounds like an oversimplification, it's not, my server
> can be spread by threads or instanced objects over any number of
> machines or processors, and it requires about one extra line for
> every 20 (there's some initial setup but a snap after that).

You also have to make sure that you don't hold on to locks (or, if
possible, use locks at all), don't rely on a single global state
being consistent, watch out for priority inversion, deal with
redundancy and failover if a machine crashes or has a hardware
failure, etc.  Managing concurrency on a large scale is a whole
different ball game than basic client/server setups, and concurrency
problems (particularly emergent ones like priority inversion) can be
very hard to spot by looking at the code.  There's a reason that
everyone's big MMORPG servers roll over and die the first few times
they throw thousands of clients at them simultaneously.  Add to the
normal problems of concurrency the fact that a MMORPG data stream
is, in effect, real-time streaming media with a lot tighter time
constraints than other sorts of tasks, and it gets very interesting.
What's the #1 complaint of any MMP game?  Lag.  What's lag?  Lag
happens any time you don't provide plausible feedback to the player
in under 50ms.  What's the biggest cause of lag?  Server timing and
concurrency problems.  Network congestion is actually farther down
the list.

> Course I've been doing client/server a long time, but still, I
> guess I find it hard to believe a bunch of engineers paid to sit
> around and figure out a solution at a place like Blizzard can't
> reach a decent one.  Of course the last statement probably shows
> me to be incredibly stupid and naïve.  =D

Overoptimistic, perhaps :-).

Client/server is one thing.  10K clients / 100 servers is a bit of
another.

Amanda Walker


_______________________________________________
MUD-Dev mailing list
MUD-Dev at kanga.nu
https://www.kanga.nu/lists/listinfo/mud-dev



More information about the mud-dev-archive mailing list