It has been quite some time since my last post about the matchmaking progress, so I guess it is time to let you know how the progress flows. What I have been working on during the last week is to calculate the match quality of any given game including two or more teams. This was not all that easy but I had a lot of help from the Gaussian distribution library. The match quality is calculated from 0% – 100% where 100% is the best possible scenario and describes that it is almost 100% possibility that the match will end in a draw (which is the scenario that we are looking for). It has to be noted that my matchmaking library only will calculate the best possible match quality for the members that has waited in the queue the longest time.
When enough users have been put into the queue the system will select the players that have waited longest and pick a host among them. Only players that can ping the game server on the specific game port will be chosen from; this is because users might be behind a firewall and won’t be capable of hosting a multiplayer game. Afterwards a message will be sent to the server to setup the server with the given settings who will, after successfully created the server, send a message back about the status. The matchmaking server will then inform the rest of the waiting players that it is OK to join the newly created server.
Furthermore I have been struggling with the update of the player skill points. This update depends on the overall skill of the player but also the system’s uncertainty about the player’s skill (sigma). The skill update follows the same algorithm as can be experimented with the following calculator: