Tuesday Feb 01, 2005

Utility Computing for Games

Utility computing will be a hot topic today, so I thought I would write a little about the concept as it relates to online games. In theory, it is a wonderful concept. The idea of using utility computing to provide scalable resources to online games makes perfect sense. They have loads which can vary quite a bit, both from day to day as well as from launch to peak popularity to final end of life. Although, online games end of life is pretty painful - someone always wants to keep playing. Unfortunately, the economics of keepong one of these online games running is too high to support low game memberships.

Utility computing would also solve the unexpected load problems that seem to plague online games. World of Warcraft is the latest victim of its own success. It sold out at retail - over 600,000 copies, and hit a peak of 200,000+ players wanting to play all at once. Their servers crumbled, with as many as half of then down at one point. I don't know why they failed, but if it was due to lack of compute resources, utility computing seems like a good solution.

So, with this natural fit, why don't games use this compute model? There are two core reasons that it hasn't happened. They can be summerized as latency issues and the lack of middleware for online games. First, let's look at the easy one - latency.

Most online games are very latency sensitive. Some of the massive multiplayer online role playing games can handle some latency. Games like Everquest and Star Wars Galaxies will generate around 10 messages per second per player. These messages encode things like movement, object interaction, and combat sequences. The combat is usually turn based and victory is a result of your virtual character's abilities, and not your hand/eye twitch coordination. These games can handle a certain amount of latency. Action based online games, on the other hand, cannot. If I am shooting at another player, I need to know almost immediately whether or not I hit them. These games are generating more like 30 messages per second per player. Players who play these games know exactly what the latency, or ping time, they are currently experiencing. They will select a server to play on soley based upon their ping time because it gives them an advantage. In either case, current deployments of utility computing are not optimized for latency, so this becomes an issue. Once more localized compute centers become available, then this issue will be solved.

The harder problem that games have when it comes to utility computing is the composition of their back end infrastructure. Most online games have a custom infrastructure for each game. That infrastructure goes all the way down, and sometimes even includes the operating system as well. It is not uncommon for an online game to have its own custom linux kernal - yuck. Utility computing can support infrastructures like this, but it becomes very costly for the infrastructure providers. They have to dedicate hardware to a specific application, and have to provision it in a very specific manner. Current online games often do use hosting partners for their infrastructure, but it is custom infrastructure that cannot be shared among applications. This makes this style of utility computing not very cost effective for the utility provider. Using a faviorite analogy from Sun executives, imagine if you had to get special electricity to run the washing machine that you chose to purchase. It doesn't scale. The solution is to create middleware that is appropriate for the games industry.

Online game middleware allows for multiple games to share the same infrastructure. This dramatically changes the economics and the ability to dynamically respond to fluctuating workloads. It also allows for games that have much smaller memberships. An example that Chris often uses is cable. There are 500 channels of content on your cable. You may only watch 20 of them, but there is a viewership for every single one of those channels - no matter how small. If there wasn't, then the channel wouldn't exist. Games middleware would make "game channels" possible.

Middleware for online games is starting to emerge. And, more importantly, the games industry is starting to embrace it. In the mobile space you have solutions like Terraplay, Kayak Interactive, and Nokia/SNAP-Mobile. In the desktop/console space there are technologies like Butterfly.net and the Sun Game Server. Games are getting too complex to continue to write everything from scratch, so middleware is inevitable.

Sun is a huge believer in utility computing, and I think that it can create whole new opportunities for game developers and publishers. Once we solve the latency and middleware problems, we can move on to creating those 500 channels of game content.

Comments:

Middleware resources for games are already in an advanced state of development. With new, such powerful portable devices it's clear that's going to be the main evolution of online games in the next years. Bye

Posted by Aldo on August 29, 2005 at 03:35 AM PDT #

Post a Comment:
  • HTML Syntax: NOT allowed