Paul's picture

Block Story Online - design

5
Avg: 5 (4 votes)

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.

The Requirements


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 design

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.

Yay my idea has been used:)

Yay my idea has been used:) Thanks paul, this is interesting. If you dont mind answering, does R have an account on the forums?

He most likely wont answer

He most likely wont answer that and yay some news on what your doing!

People of Old

not conplaining but

So we pay for the same thing- but only difference we play with other people instead?

Giggles Defence Squad Leader

I am the pike.

Yea you didnt know that

Yea you didnt know that multiplayer was going to cost

People of Old

I'm glad to here news on the

I'm glad to here news on the mmo sounds great

"The day will come when a single carrot will set off a revolution" Crazy

acyually yes LIGHT i knew that

What I didn't know was multiplayer had some sort of feature that single player didn't.

Giggles Defence Squad Leader

I am the pike.