The matchmaking system in our game is designed in such a way that players do not have to wait a long time for their battle to start and, at the same time, their team is adequately balanced and equally capable of winning against their counterparts.
The matchmaker does not take into consideration any parameters of specific aircraft, only tiers and classes are used to balance teams.
All players enter the battle queue once they click “Battle”. This queue consists of two elements:
- Single aircraft;
- Flights of two aircraft (For the purpose of balancing, these flights are considered a single entity).
Elements that spend more time in the queue get priority over newly added ones when the matchmaker creates battle rooms.
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.
There are 10 battle tiers corresponding to the 10 aircraft tiers. It is based on the maximum battle tier the aircraft can enter. The room can include aircraft from one tier lower than the battle tier (and, rarely, aircraft from two tiers lower can also be added if no more suitable aircraft have been in the queue for a long time).
The matchmaker evaluates the queue going from high tiers down and forecasts the number of full and balanced rooms that it can create for each tier.
The maximum number of players in a single room is 22, the remaining 8 slots are reserved for bots, 4 per team.
The matchmaker selects a battle tier for flights based on the highest tier of the two aircraft in a flight.
Once the matchmaker starts filling rooms, it picks relevant flights from the queue first and spreads them among rooms in pairs (one flight per team). If there is only one flight in the queue, the matchmaker balances it with a pair of single aircraft of the same tier and class in the second team.
The matchmaker evaluates the percentages of each aircraft class in the queue for every battle tier and uses these percentages to fill rooms in a similar way. For example, if the queue consists of 30% fighters, 30% multirole fighters, 15% heavy fighters and 25% attack aircraft, the same ratio will be preserved for the team’s composition. The teams are formed by adding pairs of aircraft of a specific class, one per team.
If the matchmaker cannot find a second aircraft to balance one already added to a room, it will use another class and consider special class coefficients that define the priority of each class as a replacement.
We have a “karma” parameter for each aircraft in a player’s hangar that counts how many times it has recently been in battles of its tier. Since a room can include aircraft of two, or even three tiers (in rare cases), karma defines which battle tier can be used for a specific aircraft every single time. For example, if a player with a tier VII aircraft was matched into a tier VII battle several times in a row, there is a high possibility that next time they click Battle piloting that aircraft, they will be put into a tier VIII room, and vice versa.
A full room consists of 30 members where 22 slots are dedicated to players and 8 slots are taken up by bots. If there are not enough players in the queue, the matchmaker can still balance them against one another and send players into battle without waiting for all 22 to appear. The longer the room cannot be fully formed, the less strict the balancing rules become. Eventually the matchmaker will still start the battle. The minimum number of players needed for a battle to start is two, one human pilot per team.
Once the matchmaker forms a room with human players, a bot manager starts working to fill it to full capacity. It adds bots while trying to balance teams in terms of tiers and classes, and even their chances of winning. The number of bots to be added to a room depends on the number of players the matchmaker managed to pick from the queue:
|Number of players in a room||Number of bots to be added|
These basic principles are used to provide a fair and equal chance to all sides of all battles, make the gaming experience as pleasant as possible for every player, and put the outcome of the battle in the players’ hands. Of course, sometimes small exceptions in our matchmaking rules can happen simultaneously and team compositions might not be ideal. This is why we are constantly monitoring statistical data, isolating such cases and fine-tuning the matchmaker settings.