There Can Be Only Two

If you follow this blog you might have noticed that we talk a lot about the history of the Old West; the history of it all is very important to us, since our game lore is based on it. Having said that, we also care a great deal about today and tomorrow: since we are developing a browser-based MMO with a lot of modern technologies, we are bound to face technological issues. So I thought it’s time to start sharing these issues with you.

It’s an interactive world

WWWest-Online is an MMO (Massive Multiplayer Online) game, and as such is expected to have a lot of players online and interacting at the same time. We want to encourage the players to interact, which is why the game will include various “tools” for social interaction such as chat and forums. If we take a moment to consider the consequences of hosting this functionality, we can see that having a chat client requires us to have a constant connection to our server.
Another feature we’ve recently added to our game is an interactive map based on GIS technologies. Moving on the map, clicking on it and even hovering over it triggers calls to our map server to get information regarding each feature on the map, such as roads, rivers and towns.

The problem: The browser limits the amount of concurrent connections per server

All of this is real fun and great for the game, but we must remember that we are using the browser as our game client, and the browser limits its connection per server. Though every browser has its own limit on connections and some have it higher than others, but we have to base our work on the harshest limitation; the “weakest link”, as it were. Once we have that down pat, the more lenient browsers will be a cakewalk. Unfortunately, the lowest limitation is two concurrent connections. So if we issue a chat request and a map request at the same time (as we surely will), every other request we will issue while those connections are “taken” might need to wait in line, making the game experience slow and not very enjoyable. This is a major problem.

The solution: different services = different names

As with every problem, there are most likely a lot of different solutions. What I’m going to describe here is our solution to this problem. What we’re doing is separating the services so that each major service will have its own server (or at least server name): the map service will use maps.wwwest-online.com, the chat service will use chat.wwwest-online.com, etc. This will reduce the queues since each major service to we are opening a connection from the browser will have its own limit. This will solve the connection problem, but will raise some cross-domain issues, which are solvable but still worth talking about in my next post.

’till then
Scopti

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • MySpace
  • StumbleUpon
  • Technorati
  • Twitter
Published in:Design, Development on October 25th, 2009 |No Comments »

You can leave a response, or trackback from your own site.

Leave a Comment

You must be logged in to post a comment.