Clusters and servers

Cluster and servers

Strix Cloud manages servers on the cloud using a unit called “cluster”. A cluster generally consists of multiple server instances, and each cluster always has one significant server instance called the “master server”. Other servers in a cluster are called “room servers”.

Note

As long as its load is small, a single server instance can run both a master server and a room server.

Master server

A master server contains the current information of room servers connected to it and of the rooms on those servers, acting as the entry point for clients.

A game client first connects to the master server to search for information of room servers and/or rooms in room servers. Once an appropriate room server is found, the client connects directly to the room server, bypassing the master server. This architecture reduces the load of master server, even when the number of active clients goes high.

Room server

Most of the game server features are provided by room servers. A room server contains multiple “rooms”, where players join to utilize online features of games. A room is created and deleted on the fly by requests from game clients.

Depending on the game design, each room can have various roles such as a certain map or a lobby. However, room servers don’t run those maps or other game instances. Instead, room servers maintain list of players and handle messages sent from clients. Maps and game instances are expressed by a set of game states that every client has. STRIX plugins running on clients update the game state based on messages from servers or other clients routed through room servers.

Room servers in a same cluster are usually symmetric, and you can scale them out by distributing the server load among them. With the Web Console of Strix Cloud, it is easy to check server loads and change the number of room servers. There is no set limit on the number of room servers in a cluster.

Application

Application and servers

The server-side unit of administration that corresponds to one game title is called “application”. You can define multiple applications on Strix Cloud where necessary. Applications are completely independent each other. A single game client usually doesn’t use multiple applications.

An application can have multiple clusters. Clusters are split by their purposes in the game.

In case you have multiple clusters in your application, your game client will choose an appropriate cluster by your game logic in the client. STRIX has no functions to choose a cluster to use among many automatically.

Each cluster always has a single master server. A game client chooses a cluster to use indirectly by choosing a master server to connect.

Note, however, that usually just one cluster is sufficient to run a game of moderate size.