As a proud casual gamer, I am disappointed to see that even AAA titles are struggling with catering online multiplayer to casual gamers. This post is part 2 of my "casual encounters" series. Part 1 tried to establish that there is a problem, the next parts are all about how to fix it.
There is certainly more than one way to make multiplayer more approachable for casual gamers. I'll save the more creative ones for later posts. With this post I want to tackle the basics - what's usually broken with how matchmaking is done and how to improve.
Well, what's broken is pretty straightforward - skill is commonly not factored in, and even when it is, it usually misses the mark. It is ridiculous that a level 70 veteran is matched against a day-old noob, and you'll be surprised at how often this happens. With franchises like Call of Duty attracting 40 million active monthly players, the matchmaking pool is obviously big enough to expect this never happens. Treyarch is questioning why doesn't everybody play CoD multiplayer, well.. that's definitely part of the answer.
What Is Skill?
If we want to base matchmaking on skill, we should first define correctly what skill is. You know what.. It's more fun to point out what skill is not. Skill is not my rank/level/XP. These levels of progression measure actually how long I've played the game. I will eventually get to level 50 with Uncharted 3 multiplayer, and guess what.. I'll still suck.
The only way to determine my skill is examine how well I perform in actual matches. Now don't sneer and say that's what league play is all about. I'm a casual gamer, I don't want to be part of a league, I find ranked competitive play intimidating, not fun. Measuring my skill should be done discretely in the background. Just like I don't care about my ping or latency scores, I don't want to be constantly reminded of how bad you think I am.
There are many methods to measure skill. You can count how many kills I have, how well I complete team objectives, etc. You may claim doing this is complicated and expensive, I beg to differ. Let me suggest a very simple mechanism that I expect to perform rather well, and should be a breeze to implement in any online shooter:
My skill is basically a number. in the end of every match, every decent game shows a score board where all match participants are ranked from top to bottom (according to whatever objective the match had). If I'm in the top half, increase my skill by 1. If I'm in the bottom half, decrease by 1. That's it. After enough matches, it should reflect pretty well how good I am. And remember, I don't ever want to see this number!
What Is The Metrics?
Except for a rather poor movie pun, metrics are the heart of a matchmaking algorithm. Developers favor metrics which effect game performance - attempting to make the game run as smooth and fluid as possible, minimizing lags and jitter. This is usually done by matching players from the same region, or taking Internet connectivity parameters into account (ping and latency). These parameters are impervious to who's playing the game. They just measure your connection quality. After calculating the metrics for all players, the matchmaking algorithm itself is rather simple and involves matching together players with similar sets of numbers.
In addition, the matchmaking process is usually divided into 2 main steps. First, choose a group of players to play together. Second, split them into two teams (in case of team matches). I've seen too many good games (Uncharted included) which seem to take skill into account only in the second step. You know, dividing the noobs equally. This is a mistake. Skill must be one of the metrics used for the first step.
Let me say this again for all developers to hear because this is critical - when matchmaking players together, do not rely only on network connectivity parameters. Always take the players' skill into account. If I'm playing with a group of veterans who kill me every 10 seconds, I don't really care if my dying happens with lag or without.
Matchmaking Without Numbers
Up until now, we've used somewhat sophisticated numerical algorithms to implement better matchmaking. This is not a requirement. Let me argue that many of our objectives can be achieved by a far simpler approach.
Online shooters usually have several gaming modes to choose from (deathmatch, teams, capture the flag, etc). Imagine you had another option to choose from - called "the kiddie pool". The kiddie pool isn't anything special, I will probably be exactly the same as one of the other simpler popular modes such as deathmatch or team deathmatch. The only special thing about it, is it's name.
How will this play out? I don't see any hardcore gamers going into the kiddie pool. Well, that's basically what we've wanted to achieve. Problem solved, let's go home.
In summary, we can agree that good skill-based matchmaking isn't too much to expect. I'm not an expert and I've been able to give plenty of ideas. The most important of which is a rather simple one - keep skill part of it.
There's a new CoD coming next week and I'm already preordered. Treyarch is complaining not enough of us casual gamers are playing their multiplayer, next week I'll tell you if it's their fault or not. Also stay tuned to the next part of this series, this time about perks, kill-streaks.. and criticism.