Every online multiplayer game needs matchmaking of some sort, and the basic system of having a single pool that players can enter and get matched as soon as there's someone else within a reasonable rating range doesn't allow for different match parameters (map, game mode, timer length in a turn-based game) to be selected. In some games that's fine because there's only supposed to be one "canonical" way to play. But other games need to allow players to queue for different types of matches, most commonly timer length in turn-based games. There's an obvious right and easy way to do queue settings and several obviously wrong ways.

I won't even spend a long time talking about allowing players to queue for more than one type of match at once. That's just basic common sense that you're a moron if you didn't think of.

The right way starts with allowing players to set desired parameters separately from required ones. For example, I should be able to say "If possible, match me with between 20 and 30 seconds per turn, but I'm willing to play with up to 45 or down to 15 if someone else requires it." The system could only consider players with compatible requirements but average their preferences if those aren't also compatible. This way you give players what they want more often without splitting the queue any further than you do by only allowing players to set required parameters. This is not hard to implement. I could write the matchmaking routine in 5 minutes.

The system can be improved further by allowing players to specify how much they care about the preference: "Match me instantly with anyone who accepts 20-30 but for each second they require above 30 up to 45 or below 20 down to 15, wait 3 seconds before matching me". And no you wouldn't have to show the player all these "ugly" and "intimidating" numbers if you don't want to (although I stand by doing so); you could have a slider they set next to the preference. And you should let them weigh preferences against each other: "For each rating point they're above or below me, wait .1 additional seconds, and for each second I've already been waiting by the time this person appears, wait 1 less second before matching me with them". It might take me as much as 15 minutes to write this completed system though, and maybe another 15 to add the menu interface, so I can't hold commercial game developers to that standard.

While I'm at it, it's also common sense to allow players to set how much they care about equal-skill matches. Every Chess and Go site out there does it; I don't know why modern game developers think they can't or shouldn't.

A related point: who the hell makes games where you can't do anything else while you're sitting in queue? In Spellweaver you have to stay at the queue screen to stay in queue. It's amazingly horrible that I can't look over my deck or browse my card collection while I'm waiting for a match. This should not be hard to implement either. Prismata shows it done right. Being able to spectate top players' ranked matches while you wait makes it so much more fun.



This page was last modified (UTC)