By Melvin Koh on Feb 06, 2009
Since I started by education in IT and programming, I've always been very interested in developing games (who isn't?). One of my projects in my tertiary school, I worked on a multiplayer boardgame project using DirectX. That was like 10 years ago and how technology has changed...
I'm now going to start a pet project in virtual world. I think that my experience in HPC is very relevant in gaming and virtual world, as today it's all about pushing the technology and high system performance. So how do you scale a multiplayer virtual gaming world? This article has some interesting points:
\* Latency is the enemy of fun—and therefore the enemy of online games and virtual worlds.
\* Using multiple servers is a basic mechanism for scaling the server component of a game to the levels that are being seen in the online world today.
\* Having multiple servers means that part of building the game is deciding how to partition the load over these servers. The first technique is to exploit the geography of the game or world. The second technique is known as sharding.
\* While shards allow scale, they do so at the price of player interaction.
That is why, as Jim Waldo from SunLabs said, they started Project Darkstar. The Darkstar game server is designed to allow horizontal scaling without having to do sharding. Another project from SunLabs is Project Wonderland, a virtual world engine that is based on Darkstar.
This is my first blog entry in this area. I hope to write more as I learn, so do stay tune!