Going back to the online tournament demo, I noticed something about how Mario Tennis Aces implemented their online tournaments that, as a computer science student and employee plus someone who geeks out over seeing how things work, really impressed me. I’d like to try explaining what that is.
The online multiplayer in Mario Tennis Aces, in brief, entirely consists of participating in 32-player tournaments. Enter the fray and win five rounds—the round of 32, the round of 16, the round of 8, the semifinals, and the final match—of one-set two-game tennis, and you’re the champion! If you lose somewhere along the way, you’ll still get points for your efforts that contribute to a cumulative score, awarded based on how far you got and how strongly you played in each match.
Altogether, it looks like this.
Conventionally speaking, having tournaments be the entirety of a game’s online multiplayer is extremely weird. Partially, that’s due to the total absence of single one-off multiplayer matches that would typically be found everywhere else. However, even practically speaking, the requirements for setting up the obvious way to support an online tournament system are absurd!
Think of it this way: The entire online multiplayer scene would completely consist of 32-player lobbies, all pulled from a matchmaking queue of prospective competitors. Get all of the players into a lobby, organize them into a bracket, and it’s off to the races.
Each and every one of those players would then be expected to potentially sit through an entire tournament in one occasion, no matter how long it gets. If they finish and win a match but the match that determines their next opponent is still dragging on, they’ll be forced to wait. If at any point during the tournament, someone ends up disconnecting due to poor internet quality, the tournament would have to somehow deal with that, whether via handing out disqualifications or otherwise.
Basically, there’s a whole lot of overhead involved with maintaining a 32-player tournament in an online lobby. Thus, it would be counter-intuitive to make that the bread-and-butter of anybody’s online multiplayer video game. Mario Tennis Aces, by doing just that, seems to therefore be putting itself on a hazardous path. What are they thinking???
Well, judging by how they actually did things in game, it would appear to be “Who said we were gonna do this conventionally?”
We can think of the system described above—pulling 32 playing into a single tournament lobby, then arranging them into their bracket assignments, and finally letting that tournament setup play out—as a “static tournament” system. What Mario Tennis Aces does, on the other hand, can be described as more of a “dynamic tournament” system.
Which is, I guess, another way of saying that Mario Tennis Aces’ tournaments are not actually tournaments. Rather, they use some brilliant sleight of hand to get across the tournament experience, while also cutting out much of the overhead that would be required in a true-blue online tournament.
When you progress through an online tournament, you almost never see the full bracket of 32 players. You only ever get to see the part of the bracket in which you have progressed. There’s a good reason for that: Your opponents are not predetermined.
In fact, they’re being searched for only during the precise moment that you’re about to go into a match. One of the side effects of this is that one seems to not know their opponent’s bracket history until they’re actually about to face them. It’s a great framing device for what amounts to what I am pretty sure is some behind-the-scenes trickery with the online infrastructure.
Now, before continuing, since the concept of matchmaking queues are about to come up a lot, this is a good time to point out that a matchmaking queue is not necessarily going to be a literal first-in first-out queue, technically speaking. It would probably be a bit more helpful to think of it instead as similar to a raffle bucket. Reach in, draw out a couple of players, and that would make up a two-player match.
When talking about the “static tournament” setup, I mentioned that the players for each tournament would be pulled from a matchmaking queue. However, what if players were not just all put into the same matchmaking queue—the same single bucket—but were instead divided across 5 buckets instead? Where each bucket corresponds to a round in the tournament?
Because when you break down a 32-player tournament into its component parts, it really is just a gauntlet of 5 rounds. If you made it to round 2, you’re basically going to face another person who also made it to round 2; if you made it to round 3, your next opponent is someone who also made it to round 3; and so on and so forth.
Our 5 buckets would thereby look like the following.
When you enter a tournament for the first time, that is the equivalent of being placed into the 1st Round bucket. At this point, players will be pulled in pairs from the bucket, and they’ll compete against whoever they’re paired up against for their first round. When your name gets pulled out with someone else, that person becomes your first-round opponent in the tournament bracket.
If you lose? Then you’ve lost the tournament. Practically speaking, that means you’ve gone back into the 1st Round bucket, waiting for your name to be drawn again so that you have another shot at the first round, which would be the equivalent of starting up a new tournament.
If you win? Then you progress to the second round of the tournament! Practically speaking, that means your name now gets placed into the 2nd Round bucket. Your next opponent will then be someone else in the 2nd Round bucket, since they will have won their first round as well. Lose at this point, and it’s back to the 1st Round bucket. Win, and congratulations! Onto the 3rd Round bucket with you! Play match, back to the first bucket if you lose, onto the semifinals if you win, etc. etc., rinse and repeat.
This whole enterprise can be summarized in diagram form, kind of like a top-down view of the buckets as illustrated above. Each “W” means the player won their match; each “L” likewise means they lost.
To explain that “Tournament Winner” business: When you win your first online tournament in a competitive season—which I just did very recently, thank you very much—the game notifies you that because of your win, you are now seeded, and thus able to begin the next tournament in the second round. In other words, you get to skip the first round entirely! This then remains true for the rest of the season.
Therefore, after your first tournament win, your state of affairs for all subsequent tournaments will instead look like the following, since all losses will now put you back into the 2nd Round bucket instead of the first round.
Rather than a literal tournament, the “dynamic tournament” instead consists of making it through, and winning, five consecutive rounds of play. However, even though this does not technically fit the definition of a tournament, it still has the same sense of satisfaction and progression built in; each bucket is constructed from players who have all won the prior buckets, after all, so the matches are still getting more difficult in the same way that it would in a conventional tournament.
And with that sleight of hand mentioned earlier, it’s pretty easy to build up the illusion of a tournament. We can show that through example, in fact. Let’s say that the following 11 players have started their online tournaments: Kevin, Marco, Joe, Stacy, Peter, Michelle, Chris, Wesley, Priyanka, Gosushi, and Karen. They would all therefore be placed into the 1st Round bucket.
Matchmaking would then pair up all of the players into the bucket into matches. Perhaps Kevin gets pitted against Peter, Marco gets pitted against Chris, Joe gets pitted against Priyanka, Stacy gets pitted against Karen, and Wesley gets pitted against Gosushi. Michelle will eventually get paired against someone else in the 1st Round bucket; for now, though, she remains on standby.
Those 5 matches would then be essentially the start of 5 separate tournaments, looking like this.
So all five matches then get played. Kevin bests Peter in a 2-0 clean sweep, Marco made the game go on longer but Chris ultimately pulled through with a 1-3 set, Priyanka handily won with a 0-2 set, Karen narrowly bested Stacy in tiebreakers with a 6-8 score, and Gosushi beat Wesley with a 3-1 set. That means all five of them now get to proceed to the 2nd Round bucket!
They all wait for their matches in the second round. Matchmaking thereby sets up Kevin against Chris, and Karen against Gosushi. Priyanka will eventually be paired up with someone else who enters the second bucket.
Those two matches would thus look like the following.
However, we’re in the second round, which means each of these players all had to step over someone else to get to where they are. That is where the sleight of hand comes into play: We know the results of all their first-round matches, so we’ll be able to display their match histories together! All four players started out, functionally speaking, in four separate tournaments, but now we can merge them into two converged tournaments with bracket histories.
Our two tournaments would therefore be as follows.
Each match will then have one winner each, and those two will then get to enter the 3rd Round bucket, complete with their past bracket histories. At that point, maybe they will face each other in the third round, their separate tournaments converging into one single tournament. Maybe they’ll each fight somebody else, keeping their tournaments separate. They could eventually cross paths before or up to the finals; they could also just as well reach the finals and end up facing somebody else each, never crossing paths and therefore staying in two separate tournaments up to the very end.
This all now begs the big question: How does Mario Tennis Aces benefit from doing things this way, as opposed to hosting a big 32-player static tournament lobby?
Well, by breaking the rounds up all into their own separate buckets, each quote-unquote “tournament” does not operate through a single long-term 32-person lobby, thereby taking on all of the overhead inherent in such a system. Instead, it will consist of strings of matches that are played in a series of 2-player lobbies, connected to each other by the round histories of the participants.
Doing things this way, granted, does away with the centrality—the fact that everyone is collected under one bracket from the very start—that defines a tournament. However, starting and maintaining a short 2-player session is a far easier ask than organizing and upholding a long-term multi-round 32-player session.
Thus, this “dynamic tournament” way of doing things stands to be more efficient and less high maintenance for the Mario Tennis Aces multiplayer infrastructure. Plus, even if the “tournament” itself is smoke and mirrors, the ramping up of difficulty and stakes as a player wins more and more rounds is still very much real; it may not actually BE a tournament, technically speaking, but it nonetheless FEELS real in most of the ways that truly matter.
Nintendo as a gaming company that takes online multiplayer seriously, let alone the competitive scene—and then prioritizing it so much that they either allowed or straight-up forced Camelot to fall into the Street Fighter V trap—is an extremely recent development. Thus, it is heartening to see that they turn out to actually have something smart to contribute on occasion towards those aspects.