Saturday, July 21, 2007

The technology behind MMOGs (Massively Multiplayer Online Games)
I'm very excited with the MMOG scene that is happening around the world. The technology behind this fascinating experience is just mind blowing. Just imagine millions of people connected through hundreds of servers and playing in a persistant world. Isn't it fascinating to think what kind of technology must be behind such a system? Well some may say such technologies have been existing since a very long time when hundred of computers were connected to each other and the crazy world of "downloading" used to happen. About a decade ago, before a similar situation existed with hundreds and thousands of internet users connected to each other and shared their files on the net. Well the technology might not be the same as an MMOG but I'm sure the experience would have been similar. The fascination of connecting and sharing information with hundreds and thousands of internet junkies just makes the entire social experience exciting.

Figure: a in-game shot from World of Warcraft, a popular MMOG game.
Well now the famous question....how do I start writing the system behind a MMOG game? Well the answer is complex as an MMOG game involves both writing a game as well as the networking system behind this game. So I would broadly classify writing 2 systems for an MMOG game.

  1. Firstly the networking system which would drive the technology behind the game, and
  2. Secondly the game itself which would offer that unique MMOG experience.

I'm more interested in exploring the technology behind the MMOG networking component. Before you start writing any components for an MMOG system, you would have to be familiar with basic networking concepts like client, servers, TCP/IP, sockets, etc. I would suggest you starting with reading about Winsock 2.0 which basically helps you with creating sockets and networking different computers and setting up a client-server architecture. Instead of going through books, I would suggest first reading trough the below article on Winsock programming. It is fairly simple to understand and I hope you would find it easy too just the way I did it.

WinSock2 for Games by Stefan Hajnoczi

Once you are clear with the concepts of Winsock, you can then explore the architecture behind some famous MMOG engines like BigWorld, Multiverse, etc. I shall be writing some more theory behind these architectures a little later. Till then expore the world of MMOG!