For a tournament organizer, carefully seeding an event is a critical task for maintaining competitive integrity and for ensuring that players have a great experience. It can be time-consuming and tedious, and the work involved scales up as events grow. Boost Legacy, a tournament organizer specializing in Rocket League events, uses a software solution (powered by the smash.gg public API) to quickly and thoroughly seed their events from top to bottom.
Boost Legacy uses in-game Rocket League rankings data (obtained from a 3rd party source) to initially order their seeding. This means that even if a player/team isn't known in tournaments, they can still receive an appropriate seed in their events based on their performance in competitive matchmaking.
I spoke briefly with staff at Boost Legacy to learn about how & why they built this.
Can you tell me a bit about Boost Legacy's history?
Boost Legacy is a Rocket League community organization that has been running tournaments since 2015. We have had over 200 tournaments on the smash.gg platform! When we first started we would have tournaments with 3-4 teams and have grown to recently having an event sponsored by Psyonix [the developer/publisher of Rocket League].
What inspired you to build this automated process to seed by in-game rankings?
One of the biggest challenges to running a fair tournament is to have good seeding. Most of our events are single eliminations tournaments which makes it crucial to have good seeding so that you don't have some of your best teams going out early in the tournament. With the new smash.gg API we've been able to seed our tournaments automatically based on in game rank data we pull from a third party service.
This means that every single team in our tournaments is given an accurate seed as soon as we close registration. Having a good seed generated automatically relieves pressure from our staff in the busy time right before a tournament start and allows us to give more focus to small adjustments in the seeds of the top teams.
How does it work?
Our [open source] code starts by getting information about the tournament so that we know the format of the tournament and how many teams we are seeding. We then gather all of the registered teams and their participants connected accounts by paginating through the phase standings. From here we get rank data from a third party service for each connected account of each participant of the teams. A participant could have multiple connected accounts so we go through the rank data and pull out the highest rank for the format of the tournament.
We then calculate a weighted average for the team from the participants top ranks. Once we have a team average we assign each team a seed based on that average. Finally we push our seeding to the smash.gg API.
Solutions like these are great to see- they enhance the experience for competitors and make life easier for tournament organizers. If you're interested in building your own solution for seeding events, you can check out our basic example!