Quote Originally Posted by Maja
You may want to look at splitting the "main" server into smaller "zone" servers (or whatever you'd like to call them). Looking at Everquest, they have the following (very basic):

Patch Server (Patching Clients to current version)
Login/Chat Server (Authentication and basic Chat)
World Server (Messages, and zone transfers)
Zone Server (Main Server [for zone])

This method is very scalable becuase each zone runs the "game" but provides the user with different content, while the World Server allows players to jump from zone to zone, and send messages to anyone on the "world" server list.

I know thats a very basic description of how Everquest works, but just a thought..
It's already done like that

We have login server, message server, and main server. Many main servers can be setup on seperate machines, each linked to the primary main server. When a player logs in the main server forwards them to where they are playing. (ie. the machine hosting the map).

I think the problem I have is the speed of the player move code... Everything else runs like lightning, but when a player moves one space I need to delete them from a 2 dimensional array of nodes and then add them into the space they have moved to. The code is very simple yet takes 250ms... I will post it here later for comment.