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, we make sure not to exceed this parameter of the deployed application.
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 sum between the number of players (the IP addresses) and the current player of the session does not exceed the set maximum.
If the sum exceeds the maximum, we will place the session request in another existing deployment or create a new deployment on demand. Thus, we 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"? Now is the time to do it. 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 reaches its maximum capacity and other players want to play, Arbtrium can create a new instance for you in seconds.
With sessions, Arbitrium will always promote the grouping of players since no one likes to play a multiplayer game alone. Especially in the case of an MMO, you don't want multiple servers with few players. At least that's what we think.
Let's see with an example. Suppose there are only 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 deploy in America.
This deployment decision may seem strange to you since players in Europe have to play in America, and it will probably reduce their game experience, something we don't want. But as we said above, the essential 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 no deployment can host your session request. It will then automatically create a new deployment in Europe if the option is enabled.
Let's take a more standard scenario where you have deployments worldwide. 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 telemetry to determine the best three measurements for your two players.
Suppose you or your player even want to decide the location precisely. In that case, you can directly specify the deployment you wish the session to be associated with if the deployment has capacity for the course.