“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!