- Pulled direct from the 20 page Wargaming patent: https://patents.google.com/patent/US9610504B2/en
- This is how the Wargaming patent reads, I have pulled out relevant excerpts to help us understand how the matchmaker works today. Just because this is their patent does not HAVE to mean that this is how it currently works, but since the patent was obtained in 2017, there’s a good chance it might actually work this way
Interesting Information of Note
- It would appear from the patent that the world DB and the object DB are maintained client-side as well, but the world DB is also hosted on the server, which could be part of what is syncing every time you sign in to the client to keep the two in sync. This would be STUPID, as all that information could be maintained within a SUPER small database, and thus be totally capable of syncing in seconds from the server to the client to prevent tampering, without taking 2-3 minutes to sign in…
How are players matched together by the matchmaker?
italics are my emphases
OVERARCHING MATCHMAKING FORMULA
- Calculated by determining a current maximum permissible battle level (C) based on the following formula and rounding to a nearest integer value: For B<N: C=L+(B-1)((M-L-1)/N); For B=>N: C=M
- (L) represents a lowest battle level defined by the battle level table for the vehicle type/tier
- (M) represents the maximum battle level defined by the battle level table for the vehicle type/tier
- (B) represents the number of battles previously played using the vehicle
- Creates a battle level table of an assigned difficulty level (battle tier), assigns tanks based on object values, types of tanks and quantities therein already in the match (such as no more than 3 SPGs), minimum number of players required to start the match, ensuring first player in the list for both teams are equal in object values/specs; once the table is complete, it sends instructions to each game client involved in the table to connect to a particular world instance server to kick off the match
- “Assigning may include calculating the permissible range of battle levels as a function of a number of battle sessions previously played using the vehicle“
- “World database on the server(s) are used to store/define rules, algorithms and interaction data.” and “…may be defined in world database so that items may not be modified by each client”
- To me this is the strongest indication that RNG is a dynamic algorithm that’s processed on the server side
- This is not the only way to make sure that it can’t be altered, it could EASILY be put into client side, using hash validation on application launch, and encrypting the code in memory so it cannot be altered, and utilizing ongoing hash validation and crash out the application if it gets modified in any way (buffer overwrite, etc.)
- “Load may further be distributed based on user geography or on other predetermined basis” and “multiple logical servers may reside and be running on the same physical computing device/server, or servers may be physically separate devices” and “Depending on the processing load, a virtual world server system may divide a plurality of users among multiple instances of the virtual world, to reduce or alleviate overloading on a single server or prevent overpopulation”
- What happens if one player in a platoon is connected to one server world instance and another was connected to another instance?
- Does that introduce internal server lag in the communications?
- Would this point to having a better platoon experience if we based platoons on region?
- Does the server determine world instance population based on geolocation of the connection(s)?
- Could this potentially be affecting our stronghold experience as well? When we have better matches vs worse matches, are there team compositions that point to this potentially being an issue (based on involved individual(s) geolocation)?
- What happens if one player in a platoon is connected to one server world instance and another was connected to another instance?
- “As players progress and advance in experience, the player (or vehicle) will gradually be moved into higher battle levels based on the experience, attributes, and capabilities of each player’s characters and/or vehicles.”
- “However, according to another aspect, players who have just acquired a new higher tier vehicle are encouraged by being placed into battle sessions near the lower boundary of that vehicle’s accessibility range, which allows the player feel more comfortable in the game. With time, the balancing system starts putting them into higher levels battle sessions, which creates a challenge of playing with more upgraded opponent vehicles.” (This is what we call the ‘honeymoon period’)
- Matchmaking server may confirm one or more equal weights, pairs, personnel, vehicle, etc., at any time prior to starting the battle session.
- So how hard would it be for them to add checking WTR, PR or some other value as part of the weighting to make things more fair across the board?
- “For example, when a use[r] acquires a new tier 4 light tank, the first time the user plays a game with that tier 4 light tank the matchmaking server might force the vehicle to be assigned to a battle session of battle level 4. When the player plays a second game session using the same tier 4 light tank, the matchmaking server might force the vehicle to be assigned to a battle session of battle level 5. The third game session, battle level 6, the fourth game session, battle level 7, and so forth until the seventh battle session where the vehicle is in battle level 10. After that, the matchmaking server might start over at battle level 4. Alternatively the sequence might proceed in decreasing battle level order, and/or might start in the middle of the applicable range of battle levels.”
- “According to another aspect, the matchmaking server may store a win/loss percentage for each user (or vehicle) at a given battle level. As the player’s win/loss ratio decreases, the player becomes more likely to be placed in battles having battle levels at the lower end of the allowable range, whereas as the player’s win/loss ration increases, the player becomes more likely to be placed in battles having battle levels at the upper end of the allowable range. Thus, when a player has been repeatedly put into too many difficult battles, the balancing is done in favor of easier battle sessions, thereby encouraging the player by providing an easier game environment. Similarly, when the player has been repeatedly put into too many easy battles, the balancing is done in favor of harder battle sessions, thereby keeping the player challenged instead of letting the player become bored with easy games.”
- “If the battle level is already at the upper end of the range and the player wins the battle, the battle level may remain constant. Similarly, if the battle level is already at the lower end of the range and the player loses the battle, the battle level may remain constant.”
- “…a variable may be defined (here, referred to as range variable N) that defines a number of battle sessions that a vehicle must participate in before the vehicle may be assigned to the highest possible battle level within its allowable range of battle levels. Range variable N is used to define a sub-range within the otherwise permissible range of battle levels for a given vehicle. In one variant, a vehicle may be placed in any battle level except the highest allowable battle level, based on any placement algorithm described herein or otherwise, until the player plays at least N battle sessions with a particular vehicle.” (Another indication of ‘honeymoon period’)
- “Matchmaking server may determine…The number of battle sessions in which a player has used a particular vehicle may be stored in a data structure or object associated with the vehicle, e.g., as an attribute in instance. Once the sub-range is calculated, matchmaking server randomly (or otherwise) selects a battle level within the sub-range for that player/vehicle, and may add the player/vehicle to the battle session in step…”
- If there are per-vehicle attributes associated with player tank objects, this could be a first indication towards tanks having individually set soft-stats, which could quite easily be different depending on when they’re set.
- Battle level tables change:
- To maintain dynamic and intriguing game play
- Based on the strengths and weaknesses of vehicle types at different tier levels
- Based on an analysis of vehicle performance and battle session results
- New battle level tables may be published with game updates to clients, or may be adjusted at the matchmaking server without requiring a game update on the client side.