Why EVE Online has a single shard server?

EVE online is an MMORPG sandbox created by CCP in which the player controls spaceships of all types and series by the universe, being an EVE sandbox allows the player to do basically anything in the game.

The choice to, use only one shard comes from the concept of the game, which for being a SandBox, the main functionality is the interaction with other players, be it friendships in PvE groups or enemies in the dark PvP system, or even creating your fortune inside the economic system of the game. Since EVE is played primarily by a very specific niche, creating a split of shards would create a huge reduction in players by constellations, generating poor gameplay for some players.

WHY A SINGLE SHARD?

The choice to use only one shard comes from the concept of the game, which for being a SandBox, the main functionality is the interaction with other players, be it friendships in PvE groups or enemies in the dark PvP system, or even creating your fortune inside the economic system of the game. Since EVE is played primarily by a very specific niche, creating a split of shards would create a huge reduction in players by constellations, generating poor gameplay for some players.

In order to achieve this result, each game functionality sends a request to different nodes of this huge cluster, and for each read or write request, everything is saved in a single database (SQL Server) that maintains all the state of the world, keeping all shards linked together, we can say then that this is where the magic happens.

How does the architecture work?

Even with this division, it is still necessary to create a load balance between the server nodes, because specific places became player exchange points. Like Jita – a constellation inside the game -, that turned out to be a mall after a while. Then the solution was “simple”, only one node could not process a major war or a mall spot, but using a load balancer combined with python magic – that you can check here -, it was possible to better interact between nodes and consequently increase the maximum number of players in the same constellation.

EVE Online Servers Architecture.

Another point that directly affects game performance is the language in which it was written, Stackless Python, that allows developers to have all the performance of Thread-based languages without all the complexity of Threads involved. Only those who spent days in weird bugs caused by Threads know when this can be a blessing when it comes to creating a new feature. 

Such a robust system was not able to heat up “The Great War” that involved thousands of players. Maintaining the average of 40,000 simultaneous players isn’t an easy task after this was done the EVE online team demonstrated that it is possible with many studies and the right technologies to run a large scale MMO in a single shard. 

About the author

Kassio Khaleb

My name is Kassio Khaleb. I'm a web developer, MCP microsoft and software engineer from Brazil. With focus in back-end technologies.

Add comment

Recent Posts

Categories