How does it work
What is MST and how does it work?
Many users ask this question. Let's take this question apart a bit.
MST is a multifunctional flexible system that allows you to create services and microservices for your multi-user project. The picture below shows the main structure of the MST project, which is used in most projects.
The picture above displays not all modules, but only those that are used in most projects. Let's take a quick look at them.
- AuthModule - performs user authentication logic in the system. It contains the basic methods for working with authentication and interacting with the database. See full description here.
- ProfilesModule - performs the logic of working with user data, which is automatically synchronized between the server and the client whenever they change. In frameworks such as Fishnet, Sync Objects perform the same function. See full description here.
- MatchmakerModule - Performs the logic of selecting game servers using filters. By default it just gets a list of servers using basic filters, but you can easily extend its logic for your own needs. See full description here.
- SpawnersModule - executes the logic of starting game servers remotely or locally. This module registers all the spawners that are connected to the master server and waits for commands from both the client and other systems to start the game servers. See full description here.
- RoomsModule - this module registers all game servers running around the world. Stores data about these servers such as the number of users in the room, the scene in which users play and the properties of the room.. See full description here.
The image below shows the interaction of the client with this module to perform authentication logic.
The image below shows the logic of synchronization of all user data known as profile.
The image below displays schematic view of this module logic.
Image below displays schematically the process of starting the room.