Strix Architecture Overview¶
Strix is built out of several components:
Strix Server: The server-side application.
Strix Cloud: The cloud solution to use Strix Servers as a service, accessible through the Strix Cloud web interface.
Strix Net/Strix Client: The C# client libraries that provide in-game functionality.
Strix Unity SDK: A plugin for Unity game engine to use STRIX features.
Strix Server and the Strix Cloud¶
After you have created a new application on Strix Cloud, you can add clusters of servers. Clusters are groups of room servers connected to a central Master Server.
Master Servers¶
Servers in Strix can be of two types: Master and Room. Master servers contain the current information of each connected Room Server, and the rooms on those servers. The master acts as the entry point for a given cluster; clients can perform search operations on it to look for specific rooms or Room Servers.
Room Servers¶
Room Servers run rooms that players can join. They are responsible for routing communications between members in rooms and holding information on each room member and room properties. Room Servers each can contain many different rooms. The creation/deletion of rooms is handled by your application, and Room Servers can be configured to limit room counts or messages per second through the Strix Cloud interface.
Rather than running an instance of a given map or game, Room Servers maintain lists of players and handle messages between them. Every individual client has their own game state, which is updated by different messages from other players, routed through the servers. Strix servers handle permissions, connections, routing, and room/client property management.
Note
Master Servers can also be Room Servers, useful for simple test clusters.
Strix Net/Strix Client¶
The client-side libraries for STRIX that provides functionality to its Unity SDK. These libraries send and receive messages to and from the Strix Servers. They also include some specific functionality for in-game features such as matchmaking, movement interpolation, and replica synchronization.
Strix Unity SDK¶
We provide an SDK for Unity game engine so that developing with STRIX is simple and easy and fits into your specific development
process, without the need to learn any new tools or languages.
The Strix Unity SDK interfaces lower-level C# classes in Strix Net/Strix Client and
the higher-layer Unity components.
Most of the SDK functions are exposed through a StrixNetwork
singleton
and the StrixBehaviour
abstract class.
Network transport¶
STRIX supports several network transports. The most common transport is TCP, which provides a bidirectional reliable communication channel with minimum overheads.
Through the server-side configuration, STRIX supports some other transports. The most significant one may be WebSocket, which is a web-friendly bidirectional protocol. Unity SDK uses WebSocket to support WebGL platforms (HTML5 clients). (See How to Create an HTML5 and WebGL Client for details on WebGL support.)