If you've looked at the diagrams in the previous section, you're probably wondering how we will handle deployment capacity. Since we cannot add infinite players, this is a parameter of the deployed application that we make sure not to exceed.
Let's say that your game can accommodate 100 players in the same instance, this parameter will then be 100. At each session request, we will check that the number of players (the IP addresses) added to the current player of the session, does not exceed the set maximum.
If it exceeds, we will place the session request in another existing deployment or create a new deployment on demand and thus link the players of the session request to the newly created deployment. We will see this concept in more detail in the next part.
Do you remember in the last section when we mentioned that deployment "can be automated", this is where we are now. When you make a session request, if there is no deployment available to accommodate your players, Arbitrium can automatically create a deployment in the best location for you. Once again, this is simply a setting to activate in the deployed application.
This principle also applies to capacity. If your game instance is full and other players want to play, Arbitrium can create a new instance for you in seconds.
With sessions, Arbitrium will always promote grouping of players since no one likes to play a multiplayer game alone. Especially in the case of a MMO, you don't want multiple servers with few players, at least that's what we think.
Let's see with an example. We have four locations represented with the red dots. We have two players in Europe represented by the yellow dots. The blue rounded rectangle is our deployment in America. Let's say that this one already includes several sessions with multiple players. If you request a session with our two new players, it will go to deployment in America.
This may seem strange to you since players in Europe have to play in America and it will probably have a negative impact on their experience, something we don't want. But as we said above, the basic decision prioritizes the grouping of players. There are several options to better segment your requests.
To remedy this situation, if your matchmaker knows your two players are from Europe, you can add a filter to the request to have locations only in Europe. This way, Arbitrium will understand that there is no deployment that can host your session request. It will then create a new deployment in Europe automatically if the option is enabled.
Let's take a more standard scenario where you have deployments all over the world. You make a session request for our two same players. In this case, if there is enough deployment available in Europe, Arbitrium will automatically choose L1, L2 and L3 as potential locations. Additionally, it will take the telemetry to determine which is the best of the three for your two players specifically.
If you or your player even want to decide the location precisely, you can directly specify the deployment you want the session to be associated, if the deployment has capacity for course.