Via Mark Wallace comes an interesting interview and perspective by Tim O'Reilly regarding the infrastructure supporting Second Life. Another data point in the MMO unseen...
Read Tim's interview of Cory Ondrejka and Ian Wilkes on his site - there is plenty to chew.
As a minor detail - I found Cory's remark interesting on how Second Life is moving towards an HTTP-based communcation model within their back-end system. Once upon a time I worked on a large-scale distributed middleware system that used a similar approach - assuming I understand Cory's meaning.
The neat thing about a pull-based architecture (e.g. "webservices") is that they are often more flexible (as Cory points out) even if they may be less-efficient on a per message basis (overhead of using a general format and protocol).
Perhaps we should just stop here and marvel the complexity of the MMO backend system (also chase down the above links to Eve-Online and Everquest). However, I can't resist this technical pun of sorts: if I rely on a pull-based communcation model (not told about an event until I ask), can it have happened in a virtual world? Zen aside, do you ever wonder what is the right way to handle world state inconsistencies resulting from hiccups (pull or push) besides rolling-back to where you were 10 minutes ago or having it just disappear (ref. transactions)?
Anyway, enough of the techno navel-gazing. Enjoy your world, but just remember all the work that makes it happen, unseen.
Despite the many problems it had in implementation, the DoD's "HLA" approach of users subscribing to information from a central server strikes me as the most robust and scalable approach of all.
Note that among other things, this allows the server to qualify subscriptions as appropriate to the context (or subscriber) - a critical requirement in game. Remember that too much information to a client can result in Very Bad Things.
Posted by: Arnold Hendrick | May 16, 2006 at 21:33
If I recall correctly, and I might be off here, the MMORPG Earth and Beyond used such a communication method for their game. The game was also notoriously laggy, although whether this was due to the method or just due to not enough servers I don't know.
The lag in Earth and Beyond came in a particular flavor called "rubber banding" where the client side prediction would constantly have you moving in the expected speed and direction while the netcode would keep moving you back and forth, feeling like you were riding a rubber band.
Earth and Beyond was one of the bigger MMORPGs that was sunsetted. This was mainly due to EA's absolute piss poor management of the game, and honestly what could be described as contempt for the entire MMORPG industry and the people who play the games. I remember a story describing some of the management as akin to sports jocks, laughing and looking down on us fantasy nerds. This was a few years ago though, I wonder what they think of World of Warcraft...
Posted by: Brandon | May 17, 2006 at 10:29
The key piece, for those who care, is that our architectural changes will allow problems to properly segmented into their web components -- loosely coupled, remixable, discoverable protocols, sequential access, massively parallel single player, client scripting, text -- and their virtual world components -- physically simulated, high performance protocols, collaborative access, massively multiplayer, AI, place. In the design space of interesting online problems, most solutions want to do a bit of both. Since the web 2.0 world is so well understood, it would be foolish not to leverage all the knowledge and experience in that area.
Posted by: Cory Ondrejka | May 18, 2006 at 00:33