Skip to content
lschans edited this page Nov 2, 2014 · 2 revisions

In the old situation we used to have a single server, running a single process with a single tick. After a few months of coding we ran into a scalability problem. Since the whole server was just one nodejs process and nodejs is single threaded the only option that was left was to setup multiple servers and split up the players. So if you where in server 1 you couldn't chat or play with a player on server 2.

If we take a closer look to what made the server slow, we will see that all the players, NPC's, sockets, etc where all in a single array. That sinlge array was processed over and over by what we call a 'game-loop'

When this loop became too crowded players experienced a lot of glitches, slow updates, mosters that where still there but already killed by other players and so on. And eventually the server would crash, and every player had to login again to start the same story all over.

  1. Home
  2. [The old server](The old server)
  3. [The new server](The new server)
    • [The masterplan](The masterplan)
    • [Server infrastructure](Server infrastructure)
      • [Proxy server](Proxy server)
      • [Authentication server](Authentication server)
      • [MySQL Server](MySQL Server)
      • [MongoDB Server](MongoDB Server)
      • [Chat server](Chat server)
      • Compute-node
      • Tick-node
Clone this wiki locally