What Happened to CTF?
Last week we made some changes to the Titanfall playlists on PC and since then many members of the community have expressed their disappointment with our decision. Capture the Flag has been a specific point of contention considering we had just made a significant change to how the mode worked (Titans cannot carry flags after the last patch). If you’re just catching up, we made the decision to remove these modes because hardly anyone was playing them and matches were nearly impossible to find.
The reality is that less than 1% of the player base was even trying to play CTF, let alone actually able to get in to a game. With that few players attempting to connect, our matchmaking would just sit there, spinning forever, waiting to find a game to play. This is a bad experience for the user, and so we had to look at how we fix it. Our first step was removing playlists that were effectively broken. The second step is to continue refinement of our matchmaking. After that first step, though, it’s obvious that lots of people were upset – far more than the player counts on the removed modes led us to believe. So, what happened? Let’s talk about it.
What is Matchmaking?
Put simply, matchmaking is what lets you find other players to play against in a multiplayer game. How each individual game goes about doing this is different, and some don’t use matchmaking at all, they use what is referred to as a server browser. There are a multitude of variables that go into a matchmaker choosing a "good" game for each player: latency, location, skill, game mode, map, party size, search time and more. Matchmaking can be plagued with all sorts of issues like laggy games, mismatched team sizes, lopsided team skills resulting in huge blowouts and super long search times.
Those problems have led many PC gamers to prefer using a server browser. A server browser, at its core, is when you can look at all running game instances and then choose which game you'd like to join. Some server browsers let you filter by all sorts of things; game type, latency, map, player count, and so forth. While there isn't anything inherently wrong with a server browser, we've chosen to take the onus of finding a good match off the player. The ideal goal of a good matchmaking system is to have a complete view of all currently joinable games to find you the perfect match. Why should the player have to sort through hundreds, if not thousands, of matches to find an empty slot on a server with a good connection and people who are equally matched? Matchmaking streamlines all this, in a way that hopefully creates more compelling match-ups and gameplay for everybody. Yes, we may get lots of hate mail about this, but we believe good matchmaking is better than a server browser and we’ll detail out why in this article.
How does Titanfall use Matchmaking?
We just pointed out all the faults matchmaking can have and we’re aware some of these apply to Titanfall. However, we've continually been working on improvements as testing matchmaking systems in closed player groups (like our office) is really tough. Our best feedback has come from observing the game in the wild. Even the beta we ran in February with 2 million players wasn't enough data over a long enough period of time to give a complete image of how matchmaking would function post-launch. We’re actively working to make our matchmaking better, but for now here's how it works:
Each player, when they load up Titanfall, tests their connection to a bunch of data centers around the world to find which one they connect to with the lowest ping, ping being the designation of how much latency there is for traffic that travels between their machine and the server. Each data center is hosted by Microsoft on their Azure cloud infrastructure. Once the game has found the data center you have the best connection to, you connect to a Private Lobby server. This is where you customize your load-outs, check your stats, invite friends to your party, and so on. You probably didn't realize it, but at this point you’re on a dedicated server that was spun up just for you. With Microsoft’s Xbox Live Cloud Compute there’s a bazillion (not a technical number) servers in those data centers, waiting for you to come along and ask to use one. All online interactions in Titanfall are handled with these servers, which takes the burden of hosting any matches or lobbies off your individual console or PC and internet connection. This is why there isn't any host migration or rage-killed servers via console power-off in Titanfall – everything is hosted on dedicated servers in the cloud. This is also why we don’t have rentable dedicated servers – everything is already run on your own dedicated server. Want to play a private match with wacky settings for just you and your friends? Hosted right away and free to you. And we’ll be adding more private match options to give you better customization going forward.
Anyways, now that you’re connected to a server in a Microsoft data center, you’re about to start matchmaking. Once you choose to play either Campaign or a Playlist (like Attrition or Hardpoint Domination) your lobby server sends a bunch of information to our back-end matchmaking service that keeps everything running, which we call Stryder (because its quick… get it?). Your server sends Stryder things like your data center location, what game mode you’re searching for, and something that we don’t actually show you – your skill. This is different than your level, as anyone can level up by playing – even weaker players can complete multiple gens with enough patience. Based on skill rating, we essentially put all players into various skill bins on a bell curve. One interesting thing we've learned is that median player skill tends to be similar regardless of Gen level. Stryder uses these three pieces of information (game mode, skill, and data center) amongst others, to try and find the best possible game for you.
What constitutes a good game? Well, to us, we think even losing can be fun if it’s a hard fought game between players of similar skill. While it can be fun to absolutely stomp another team from time to time, it isn't the preferred outcome of a match. We also think a game of low latency is extremely important. Lastly, we believe matchmaking should be FAST. If we can’t find a team for you to join in your region with a close skill rating, we spin up another dedicated server in your data center and put you on it. This server then advertises itself to Stryder with the pertinent information for other players to find it.
Today, Stryder is tracking 75% of games having less than a 30% score differential and 15% of games with less than a 5% differential (that’s a difference of a few pilots or squads of grunts in Attrition).
The problem though, is that even when tens of thousands of people are playing Titanfall at once, there may not be a lot of games forming at any one time, especially during non-peak hours. This means our absolute “perfect” match is often hard to come by. This is where the hard part of matchmaking starts. Do you just continue looking for minutes, hoping to find the perfect match? What happens if that perfect match never opens up? What if there’s no one in Southeast Asia who is also in the 75th percentile skill that really wants to play Last Titan Standing right now?
The Titanfall player base is spread between 11 data centers on 4 continents with several playlists. If you’re playing a mode with lower player count, like we observed in the PC playlists for CTF and PH, this can mean matchmaking doesn't have a lot of options. Let’s say 1,000 people are playing Titanfall right now in the world, it’s an easy number to break down. On the back end we’d see, roughly, 10 players per game if you take into account games that are forming, people leaving matches, etc. This would mean there are 100 games being played or forming. Add up the average of 2 open slots per game, and there are 200 available spots for players to slip into via matchmaking. Keep in mind, this is a generous estimation. It’s more likely there are a handful of nearly empty games getting started, but most people are in 6v6 matches.
Still, take those 200 slots, and divide that equally (which, again, isn't how it works in practice, but makes it easier to follow). Six playlists (we’re ignoring Campaign for now) for 200 slots equals roughly 33 slots per playlist. Now, divide that between the 11 data centers and you’re looking at 3 available slots for you to get in to, per 1,000 players, when you click on a playlist.
Obviously it doesn't quite work out this way. There are data centers that are more populated than others and playlists that are less popular than others. Still, it’s easy to see how even with lots of people playing a game at once, the logistics of finding a good match become quite tricky.
We've decided that it is better to get in to a game, even if it ends up a little lopsided, after a little searching as opposed to waiting forever or even minutes. What this means is, over time, we relax the skill search as well as the region. This means you could eventually be searching across your entire continent for an available game amongst players of any skill. For a long time this was working pretty well. Perhaps we widened the search too fast, as all the hilarious images on the internet of what looks like mismatched games can attest to. Still, we prioritize players game time above the absolute mathematical perfect game. We know you don’t have unlimited time to play a game, and we’re honored that you’re choosing to spend it playing Titanfall. We want to pay that back by getting you in to a match quickly.
Where this particular approach falls apart is when the player base for a particular playlist in a region becomes untenable. If there were so few people playing in your region that a game was almost never getting started, what can you do? Many players told us “Put a server browser in! That’ll fix it!” but that doesn't help when there is no one else trying to play the mode you’re looking for, which was the case.
Our first step to fix the problem of the “broken” playlists that could never start a match was to remove them from the rotation for the time being. The thought process was “If it’s not working right now, we’re effectively advertising a broken game mode.” So, out went Pilot Hunter and CTF as we re-worked some things. Which leads us to today.
Changes to Titanfall Matchmaking:
The biggest response we heard from temporarily removing playlists was “Why not let those who really want to play that mode just sit it out? If we want to wait, let us!” as well as “Even if there’s no one near me playing, at least let me choose to play with people elsewhere”. Both of those are legitimate suggestions. Unfortunately the first suggestion wasn't really a solution, most regions were never going to work. The second suggestion, while noble, wasn't the easiest in practice. You had to back out to the main menu, choose a new data center in a different region, and try again. This was quite frustrating, since you never knew if you were going to hit the jackpot – and even more so when the thought started creeping in to your head that you might have left East US for West Europe just minutes before a slot opened up in a game for you! Overall, that ends up being a bad user experience.
So, what are we doing about it? Well, first, we’re bringing the CTF playlist back on PC. Furthermore, we’re introducing a test of even wider region searches. If you’re searching for 5 minutes without starting a game, Stryder will eventually widen your search to include neighboring continents. This means you might end up in a game with a much higher ping than you’re used to, but as players pointed out; playing is preferred to not playing at all! The 5 minutes is a rough estimation as Stryder may very well use a much shorter time if it can determine from its real-time view of the globe that waiting 1 or 5 minutes will have no tangible difference. Like with many attributes of matchmaking, we’re tweaking and tracking or slicing data differently almost daily. Our engineers spend A LOT of time staring at graphs and analytics.
But this isn't the only change we’re making. We’re working towards all sorts of cool behind-the-scenes features to increase visibility and control over matchmaking. Lobbies will show “Connecting…” on player slots when players are joining a match to avoid the misconception that your game may not fill up, causing you or other players to leave prematurely. We know no one wants to play a 3v6 round.
We’re also adding a last resort measure to re-balance lobbies that have been constructed from disparate skill groups or couldn't be balanced in time by matchmaking. We're going to start rebalancing teams during the lobby countdown if they're lopsided. 6v4 matches will balance to 5v5, and we'll shuffle players so that teams have even skill. The premise for our choice prior to this change was that we needed to account for parties that can’t be broken up. In other words, we needed to face the worst problem head on, and we’ll continue to find more ways to balance these lobbies and do better for the lobbies that don’t have the party problem. It turns out a majority of teams will have a party of 2 players and less than 5% of teams are a party of 6.
We’re tracking more player attributes like mic/chat use in the hopes we can better align like-minded players that enjoy the teamwork made available by those systems. Titanfall is more enjoyable when you can call out your flag route and have your defense respond by coming to intercept your pursuers. We’re also trying to learn what might be the health of a team by looking for high player turnover in a single map and determining why that may be happening and working towards preventing such scenarios.
Beyond this, we’re working on new game modes, riffs on existing game modes, Hashtag matchmaking, and more. We plan to keep the playlist selection of Titanfall fresh and fun, with engaging new ways to play and switch-ups to old favorites. We’ll continue to update you all on Titanfall.com and our social channels about the cool stuff in the works.
And if you give CTF on PC a try again, please let us know how it goes! We’ll be watching the graphs :)