“Massively Multiplayer Online Role Playing Games” (or MMORPG’s)
– that’s a phrase I have got to know over the past year, although I find it easier to say "Virtual Worlds". If you’re one of the millions that are into
this stuff then bear with me; I make no claim to extensive personal experience
of the genre. But I am very interested
both the economics of virtual worlds, and the mechanics of how these complex
broadband systems are best built. It’s
the latter I wanted to comment on here.
There are various challenges in building these systems,
ranging from the algorithms, assets and market mechanisms that define the
virtual economy, through the physical rendering of the environment as viewed by
a player, down to the gory detail of how you manage state. Lots of state. I should say lots of rapidly changing state. As
with anything that we at StreamBase are interested in, the whole challenge is
relatively straightforward with traditional technologies if you are prepared to
slow it all down by three or four orders of magnitude. That’s probably not OK for the players I
would think!
Actually the problem is a little worse than what I have
described. These are systems that need
to be more or less arbitrarily scalable. If a studio produces a successful title it may have some tens of
thousands or hundreds of thousands of users. If the title really takes off you need to scale to millions of
users. At least that is how far it has
gone to date – see Blizzard’s World of Warcraft (WOW). But how hard is it to imagine a virtual world
in which there are tens or hundreds of millions of users? And I am prepared to bet that the per-user
complexity of interactions with associated state changes go up rapidly
also. Bottom line is that these are
events-based computational systems on a potentially enormous scale.
The challenge is to deliver both very high scalability with carrier-grade uptime guarantees, and this has proven very hard to do. The point is well demonstrated by the consequences of WOW success.
So we were really interested in discovering that when you
drill into what needs to be done at those data rates it is more or less common-or-garden CEP. Specifically developers obtain a very flexible framework for joining and splitting event streams, correlating events, producing analytics, issuing alerts, filtering what data goes to disk,
performing general data transformations, and maintaining
real-time snapshots of application state. The result is a modular architecture where it
was once monolithic, deployable over as many shared-nothing machines as you like,
with no system-imposed limits to scalability.
With CEP functional capabilities, massively parallel deployment and the productivity/expressiveness of StreamSQL there is
reason to believe that High Performance CEP will catapult MMO game development
to a new generation, with new levels of scalability, reliability, and user experience.
Watch this space!