How does the server handle load-balancing?
The server breaks up the world using a quad tree. You can set configuration options which controls when the quad tree gets divided. The server can off-load a quad tree node onto another server. All objects on the server are serializable, both to xml (when saved to the database) or into a binary data format, as is used for transferring objects to another server. A proxy server makes this transition seamless to the client machine. One and only one server can be ‘in-charge’ of an object at any point in time. When this load-balancing happens is based on a heuristic. Currently you can use the number of users, mobs, and objects in a quad tree area. Finer-grain heuristics based on CPU-load will be added to the system soon. You can set aside extra machines which can soak up load as needed.