Swiss draw is underutilized in fighting games

(topic: )

Swiss draw has a lot of upsides over double elimination and round robin. Fighting game tournaments mostly use double elimination because it’s more practical for offline tournaments where setups are limited.

But TO’s also use double elimination online and/or when there are ample setups—contexts where swiss draw might be a better choice—probably because they don’t even realize swiss is an option. So I’ve written this page to go over why and when you might want to use swiss draw.

What is swiss draw?

In short, you play a series of rounds where players that have a similar score are paired up with each other.

The pairings are not decided in advance but rather once the previous round’s results are in. For example, in the second round, all the 1–0 players pair up with each other, and all the 0–1 players likewise.

Read the Wikipedia page for more details.

Why swiss?

The main purpose of swiss over double elimination is to make it more fun for the average entrant. An added bonus is that it makes seeding less significant.

Consider a typical low seed’s experience right now: they get paired against the best player in the tournament right away and get smashed. They have no chance. Their first life basically doesn’t exist.

They then play through the loser’s bracket with their only real life. From there it’s a gamble when they’ll run into another unbeatable opponent because of an upset elsewhere or inappropriate seeding.

They might get zero matches they have any chance to win. If they get lucky and play well they might get 3 good matches and end up 2–2.

Their result and how many games they get to play is massively dependent on how lucky they get with pairings. This isn’t just bad for anyone entering to track their own self improvement. It’s bad for anyone entering merely to have fun.

So is it surprising that noobs mostly don’t bother entering tournaments? It’d be more fun to play ranked where they might get some fair matches.

Now I know that if any such player complained about this state of affairs, everyone would just tell them to git gud. Okay, well, maybe they’re trying, but getting smashed by a guy 10 levels higher doesn’t help with that? It just feels bad.

It’s even worse where there’s a 5 or 10 dollar entry fee just to go 0–2.

If instead the tournament uses swiss draw with, say, 5 rounds, they still get smashed in the first round. They might even get smashed in the second round. But after that they’re at least guaranteed to get 3 sets against opponents they can reasonably compete with. Even if they go 0–5, many of those sets will be close enough to be something they can learn from.

And yeah, someone does have to lose. But there’s a lot more people who have to go 0–2 in double elimination, than there are people who have to go 0–5 in swiss. 1–4 feels a lot better than 0–2.

More variety in final sets

This isn’t the main reason to do swiss, but something I dislike about double elimination is how the last three sets (WF, LF, and GF) usually play out.

In the GF the player from the loser’s side is at a massive disadvantage (they have to win twice, and they’re likely a worse player since they already lost once), so the winner is pretty predictable. I don’t really consider this a downside though, since then it’s more of an underdog story for someone to win from loser’s side.

More predictable schedule

Because each round has a fixed timeline (and we’re okay calling draws or forfeits), and the GF doesn’t have such a wildly unpredictable number of matches, we can reasonably say when the tournament will actually end. This makes it a lot easier to schedule things.

Why not swiss?

For an organizer, there are three big downsides of swiss over double elimination.

You need half as many setups as there are players. This is the big one. Because nobody gets eliminated, you can’t bank on later rounds running faster once the riff raff are cleaned out.

This isn’t a strict requirement, but if you only have, say, 4 setups for 10 players, rounds will take twice as long than if you had one more setup. That last match has to wait until there’s a setup available, and everyone has to wait on that match before starting the next round. Practically speaking this is a disaster.

You can reduce the number of required setups by splitting players into pools. So you could run, say, a 256 player major with only 32 setups by having 4 pools of 64 players. But that’s still a lot of setups.

For online tournaments, this of course isn’t an issue.

You have to wait on everyone before starting the next round. So the amount of time you need to allot per round isn’t how long it takes for most matches to finish, but how long the longest matches can take.

For fighting games, this isn’t a big issue, because the amount of time a match takes is soft capped by the round timer. (In turn-based strategy games like MtG, this is a huge issue. Complicated combo decks and draw-go control can take forever to close games, while RDW is almost guaranteed to finish rounds with half the time left on the clock. Despite this, Wizards still uses swiss for tournaments, because the upsides of swiss are that good.)

However, there’s always people not starting their games on time, having tech issues, or not reporting scores right away, and these people are gonna hold up the bracket every time, rather than sometimes being somewhere in the bracket that isn’t a bottleneck. If you’re not comfortable issuing people draws or forfeits over stuff like controller failures or game crashes, this can be an issue. But calling a result in swiss isn’t the end of the world for either player, so you can afford to do it more liberally.

There are no elimination matches. The lack of elimination games makes things less hype. Someone winning because they have the most points is super lame and anti-climactic. The way around this is to do swiss first and then cut to a top 2/4/8 for single elimination.

How swiss?

Working out pairings and tiebreakers manually is a massive pain, so don’t even bother if your bracketing software doesn’t support it.

All bracketing software I’ve seen used for fighting games (start.gg, Challonge, and Tonamel) can run swiss brackets.

How many rounds?

The bare minimum to have a decisive cut to top 8 with 64 players is 3 rounds. For a cut to top 4, you need one more round. If you want the cut to be fully seeded (i.e. only 2 players are undefeated in swiss), you need 5 rounds with 64 players.

Running the bare minimum ends up being a pure single elimination tournament at the top end, which sucks for other reasons—seeding becomes more decisive. Having 2 extra rounds means players can lose up to 2 rounds and still make the cut (i.e. getting 3 lives, instead of double elimination’s 2). So 5 rounds for 64 players feels like a more sane minimum.

You can of course run as many rounds as you have time for. But how much time do we have?

From what I’ve seen of Tekken 7 tournaments, it takes people roughly 15 minutes to run a FT2 set. Most other fighting games are in a similar ballpark.

But we can’t use the average. We need to consider the worst case possible.

For a FT2 set, if all 3 matches are played and to the last round and every round goes to time, that’s 15 minutes of game time. Add 2 minutes per match for character select and loading time and that’s 21 minutes. Allow 4 minutes for both players to get into the lobby, and that’s 25 minutes.

This roughly lines up with what I’ve seen of the first round of a typical Tekken 7 bracket. After 25 minutes, either every game is finished, or one game isn’t finished because somebody was 15 minutes late or having tech issues.

So if we allot 25 minutes per round, and we want 5 rounds with 64 players, that’s 2 hours and 5 minutes on the swiss.

From there, if we cut to top 8 and run single elimination FT2 sets (with FT3 GF) and stream all of them, that should take roughly another 2 hours. Alternatively, we can run all FT3 sets (with FT4 GF) and only stream 2 of the quarter final sets and still get in under 2 hours.

Regardless of how you run the single elimination part, it’s about 4 hours total for a 64 player bracket. Cutting to top 4 instead of top 8, or running all of the quarter finals simultaneously, saves 45–60 minutes. For every doubling of players in the bracket, add 25 minutes for an extra round of swiss. This is roughly how long it takes for a full double elimination bracket to run, except it’s more consistent.

Upside over round robin

For invitationals, TO’s sometimes use round robin (with groups) and then cut to an elimination bracket. This is almost strictly worse than swiss.

Round robin has big issues when it comes to the latter sets.

Usually a few sets have players in a kingmaker position: A player is either guaranteed to make the cut, or guaranteed not to, so they don’t care about the outcome. If they beat their opponent, some unrelated player makes the cut—and if they lose, that unrelated player doesn’t make the cut.

There are also often dead rubber games: those where the outcome has no significant effect on the rest of the tournament. This can happen because either both players already made the cut, or neither of them can even if they win.

Another big issue is that because full round robins are never practical (need to play way too many games), they usually do them in groups. But then seeding of groups makes a huge difference, especially when the cut from groups is aggressive (e.g. bottom 3 of groups of 5 get eliminated).

AGT Experiment

After lots of nagging, I got the organizers for a local Tekken 7 online tournament to use swiss draw.

So here are some lessons from an online swiss tourney with 41 entrants.

Tiebreakers

Game win% isn’t good for tiebreakers. It rewards losing early because doing so gets you easier opponents overall and therefore better game win%. Between the tied 4-1 players there’s a clear inverse relation between game win% and opponent game win%.

Head-to-head is probably not good for tiebreakers. This could lead to a weird outcome where players lose on H2H points vs people they never played. Example: 3 players are tied for 6th: Alice, Bob, and Carol. Alice has a H2H win vs Carol, which means she has a H2H point and wins the tiebreaker. Bob gets robbed despite not losing any H2H match vs tied players.

A simple tiebreaker of opponent win% is probably fairest and easiest to reason with. It punishes losing early, and somewhat balances getting lucky with the draw of opponents. If you went from 4-0 to 4-1 you almost certainly make the cut, whereas going from 0-1 to 4-1 is cutting it close.

Opp set win% is probably better to use than opp game win% because people aren’t used to the game count mattering, it gets reported wrong a lot, and both should be sufficient for tiebreaking on their own.

Mid tourney drops

By the last round, there were 9 entrants who had dropped out. 5 of them didn’t play a single set, and the rest dropped due to emergencies or salty quitting. We didn’t know how to drop them out of the pairing system, so heaps of players were getting DQ wins from one of these guys every round.

We’ve figured out how to drop players mid-tourney now, so this won’t be a problem in future. Anyone dropping out will at most give up only one DQ win. From then on they won’t be paired with anyone.

Round times and Top 6 cut

The swiss rounds ran surprisingly smoothly. I expected more sets to fall behind due to tech issues and draws being assigned for going overtime. Instead, things went much faster than I thought, and the bottleneck ended up being scores getting updated on start.gg.

Each round took on average 18 minutes to finish. I expected it to be 25-30 minutes.

With the rounds running faster, it’s practical to either run an extra round of swiss or do a cut to top 12 instead of top 6. I think an extra round is preferable so that all the single elim games can still be streamed, and players who don’t make the cut get to play more games (which is, ultimately, the point of this format).

Why not top 8 cut?

The reason we don’t cut to top 8 is so that the difference between being placing first vs last in the swiss is more than just seeding. Without this, 4-0 players in the last round are incentivized to agree to draws, which then also makes the bracket seeding less accurate.

This is a limitation of start.gg, since they haven’t implemented a way to add rounds to single elimination. Comment on or upvote my suggestion on their public issue tracker if you want them to increase priority on that.

Stream setup

During the swiss rounds, the stream was both chaotic yet also had lots of dead time.

The core issue is that if 1 match per round is streamed, you’re gonna wait a lot. And if you do 2 matches per round, it holds up the bracket.

So there needs to be a plan to have a 2nd matches to stream without having it hold up the bracket.

For games where the lobby system allows spectating in-progress games, this isn’t an issue. The stream can just jump to another cab.

For games like Tekken 7 with stinky lobby systems, I have a few ideas on how to handle this:

  1. Assign a 2nd match to be the backup. Instruct the players in this match not to play unless the main stream match goes 1-1. If it does, they play one set off-stream, then join the stream lobby after that.
  2. Have that 2nd match put on a second stream setup recording footage to a private stream on e.g. YouTube. If the main match finishes early, the actual stream can replay and commentate over the recorded footage.

No dedicted organizer

With this format, there are a lot more scores to report. The streamed matches also can’t all be decided in advance. So there’s more work for the tournament orgnizer to do.

This event didn’t have a dedicated TO. The main admin was also commentating, and the other admins were either co-commentators or entrants. This made things more confusing for everyone than necessary.

Having a dedicated TO, in particular one who isn’t a commentator or entrant, would help keep everything in order.