We recently(ish) got this dev blog explaining the match maker algorithm: http://blog.worldofw...asses-and-bots/
here are the "Basics"
Basics of filling battle rooms
- Battle rooms are created starting from higher tiers and moving down.
- The matchmaker forecasts how many rooms it can create at the specific battle tier, based on the number of suitable aircraft in the queue.
- The team to be formed first is picked randomly.
- All flights waiting in the queue are spread evenly among the forecasted battle rooms. At this point, the matchmaker has multiple underpopulated rooms that it starts filling with more players.
- These rooms are filled with single aircraft from the queue. At the same time, teams are balanced by classes and tiers to eliminate disparity in team potentials. If necessary, the matchmaker picks additional aircraft from the queue and discards ones it already added to the room.
This algorithm runs every server tick, which means that every time the queue updates, the matchmaker checks it and, if possible, starts creating and filling new rooms. At the same time, it continues to balance teams in the rooms it created previously.
The real issue MM has is contained in that last sentence. It creates rooms, populates them with players, then allows those rooms to persist with the players waiting inside and not useable for other (potentially better) battle line-up solutions. It spends its time trying to populate rooms that already exist and then creating new rooms for things that don't fit the solution for a pre-existing room. This means it is SEVERELY limiting it's balancing options and distributing players among more rooms than the minimum ultimately required, as it would have far more variables to work with if players were not already committed to rooms as new players drop in.
If I were writing this algorithm, no actual rooms would be created until just before the battle drop, leaving me with maximum player base to create a battle line-up from, instead of already having them distributed to various rooms and waiting for new appropriate players to drop in.
IF MM simply held all players outside of rooms and recalculated theoretical battle line-up solutions regularly without actually making rooms and committing players to them, it could much more easily find a good solution and drop that entire set of players all at once (along with any bots required) into a room created at that moment for that final solution to the line-up and send them into battle straight away, presumably with some leftovers left in MM who would become the priority for the next solution.
The way MM is designed now basically assures a fragmented player base with lots of bots in each battle, even when there are sufficient players online for full battles. The inefficient manner the current MM uses wouldn't matter with a sufficiently large player base, but we do not have that luxury.
Edited by Vanize, 15 February 2017 - 11:41 PM.