From what I have gathered from the matchmaking pseudocode and documentation on this site: http://wiki.guildwars2.com/wiki/PvP_Matchmaking_Algorithm, there are a lot of things that go into the matchmaking scoring algorithm. Currently it’s set up so that it factors in:
1. Team size
2. Rating
3. Rank
4. Ladder position
5. Number of unique professions
6. Number of duplicate professions
7. Time in queue
Rather than trying to complain about the current efficacy of matchmaking, I wanted to add some ideas to improve the matchmaking algorithm. I realize that adding more factors may dilute the weight that the current factors have. Regardless, here are several of my ideas:
1. Match on offensive/defensive score
If you have access to each player’s stats from traits and amulets, you could roughly approximate whether a player is a dps role or a bunker role. One way to calculate it would be to use a function like this: <scalar> * (-|<offensive> – <defensive>|). This could be a replacement of the duplicate and unique profession matchmaking factors, as it works somewhat better than simple duplicate counts in the case where you have multiple players of the same class playing different roles (e.g. Meditation guardian and AH bunker guardian).
This is somewhat susceptible to abuse if people switch stats during the matchmaking phase to stack a particular type of role, but do so to the detriment of their own team. I’m not exactly sure how to defeat this potential degenerate behavior from players, though a median filter of previous match builds could work at the cost of a lot of server/database space.
2. Map based rating
After watching WTS, I realized that some team compositions work better on different maps. If you could record rating on specific maps, in addition to rating based on profession, you could figure out which maps favor which team compositions.
Maps like Temple of the Silent Storm favor compositions that consist of many well balanced builds rather than a gamut of bunker and dps roles. Using the dps/bunker heuristic from above, you could match better based on map. However, this type of matchmaking factor will preclude map selection unless some sort of match abort capability is added. This type of scoring is also not scalable if you intend to add many maps.
3. Number of arena games played
This heuristic is intended to be a replacement for the rank factor. Some time ago, people were playing hotjoin and farming ranks. With this unexpected behavior, people that were relatively inexperienced with arena play had abnormally high ranks for their skill level. Using the number of arena games played or perhaps number of arena games won would be a better gauge of player experience (which is different from skill).
If anyone else has any other ideas to help improve matchmaking, feel free to add on your thoughts.