There are 3 developers total working on Block Story Online. Head Hunter, myself and a mystery developer which I will call R (until he wants to become known).
R has been working a lot on making the server. Here is a brief summary of what the requirements are, how we are designing the MMO and why.
In an ideal world, we would make an MMO with one single infinite world where everyone logs in.
But suppose we get 100K or 1M users. There is no way that a single server could handle that.
Other MMO's, can usually break their worlds into rooms, and then have each server work on a set of rooms. This allows them to scale up, because a single world is handled by several servers. This is however not possible in Block Story because of the nature of the game.
Others, break the world into regions, usually connected by tunnels or something. Transitions between regions is very hard to do, and involves moving the player from one server to another without disrupting the client. This is again hard to do in Block Story, because the terrain cannot be predefined to have mountains and tunnels between regions. Also, this is insanely hard.
Obviously we want to support 1M users or more if they are all willing to pay, so how do we do that?
The technique we will use is called sharding. Not everyone will log in into the same world. Instead, users will be split between several worlds. Each world will be handled by a single server. If we need to support more users, we just add another world in another server.
The goal is to support at least 500 CCU (Concurrent Users) per world.
A typical problem with sharding, is that once you are in a world, you cannot go to another world, so if your friends happen to join another world, then you will never see them. We will decouple characters from worlds, so your character can join any world that you like. Your friend joined a different world? log out and log back in the other world.
The design chosen is 1 lobby server, and many world servers. The lobby server is where the user logs in. It keeps a list of all the worlds, and gives this list to the user. The user picks a world, then picks a character, and joins that world server with that character. From then on, the lobby is done.
The lobby is a single point of failure, but its work is kept to a bare minimum, so it should be able to handle millions of users. All the heavy lifting happens in the world servers, which we can add as we see fit.