Fort matchmaking (for pickup) and how it works

General Stuff about Armagetron, That doesn't belong anywhere else...
Post Reply
User avatar
raph123
Average Program
Posts: 82
Joined: Sun Feb 07, 2010 11:43 pm

Fort matchmaking (for pickup) and how it works

Post by raph123 »

Hi folks. I recently created a first pass system for automatic fortress matchmaking. Since I hope to share this for us to use within discord for fort pickup, I thought I would shed some light on the current matchmaking process. Just to reiterate, this is a first pass! Feel free to share your thoughts and feedback, but don't expect this to be final or perfect.

To start, I'll explain the current process of matchmaking. Given that we have a list of players (like people added in discord)...

Using a rating system
We need a way of figuring out relative skill level for creating balanced teams. To do this, I'm using armarankings, and for the first pass of fort matchmaking in particular, I'm using the ratings from pickup season 1: https://armarankings.com/rankings?match ... -fortress1. This dataset currently has the richest set of fortress match results (with 583 matches). In the future, we'll migrate to using something more current (since these ratings aren't currently being updated from results) with hopefully just as much rating accuracy.

Bucketing into tiers
Now that we have a rating system to use, we can bucket players into categories for their relative skill level. The reason for doing this rather than strictly using ratings and sorting by that is to add an element of randomness and hopefully more fun to the matches. Players signed up are bucketed into the following four categories based on the percentile of their rating:
s-tier: top 10% of ratings
a-tier: 10-25%
b-tier: 25-60%
c-tier: 60-100%

Now that we've bucketed players, we choose two captains. If we have enough players signed up in s to b-tier, captains are randomly selected from those tiers. Captains should have no more than one tier difference between them (unless for example there's a single s-tier signed up and then only b-tier players).

Generating teams
With players and their associated tiers, we can now generate a list of players ordered by tier (like [s-tier players..., a-tier players..., ...]) which should roughly match the order in which a captain might pick players for their team. I'll quickly add a note that players within tiers are shuffled randomly; the list is not ordered any more granularly than by tier. Now we start going through the list player by player, following a similar picking system than we do in "manual" fort pickup: first player to team A, second and third player to team B, etc (ABBAABB...). The last step here is to associate captains with the appropriate teams, and voila, we have our (hopefully) balanced teams!

That's pretty much it. If you're curious to look at the python code that does this, feel free to have a look here. Shout out to Kronkleberry for doing most of the algorithm design as well as a proof of concept.

Random notes
  • For this system to work from discord, we need your tron auth username when you add since there's currently no association between peoples' discord accounts and their tron usernames.
  • When you !add fortauto <tron auth username>, you could technically pass in any username because of the bullet above. Please don't do this and just use yours :) If you use someone elses, it will mess up the matchmaking. I'll leave it to the community and mods to moderate this until there's a better system in place.
  • If you want to mess around with this by creating sample matches or whatever, you can. The REST API used for matchmaking is publicly accessible and just accepts a JSON list of player usernames. Let me know if you're interested.

User avatar
sinewav
Graphic Artist
Posts: 6334
Joined: Wed Jan 23, 2008 3:37 am
Contact:

Re: Fort matchmaking (for pickup) and how it works

Post by sinewav »

:) Thanks for all the hard work, I'm glad to see this long overdue feature added to games. This is a good start and hopefully it will have an affect on some of the problems we have.

User avatar
Z-Man
God & Project Admin
Posts: 11426
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Re: Fort matchmaking (for pickup) and how it works

Post by Z-Man »

Sounds good to me!

User avatar
sinewav
Graphic Artist
Posts: 6334
Joined: Wed Jan 23, 2008 3:37 am
Contact:

Re: Fort matchmaking (for pickup) and how it works

Post by sinewav »

Just want to say that, in my opinion, this matchmaking has worked amazingly well and has dramatically improved the our setup time, resulting in more matches. The balance feels good and we rarely need to intervene. There is still an issue of new players not being able to sign up and being forced to use other players logins, but hopefully that can be addressed soon. Thanks for continuing to improve our tools! :star:

syllabear
Shutout Match Winner
Posts: 1022
Joined: Fri Oct 13, 2006 1:37 pm
Location: UK/HK

Re: Fort matchmaking (for pickup) and how it works

Post by syllabear »

Can we manually add a new player (or multiple player IDs) to the armarankings for new players?

For instance, can set a custom new GID (such as [email protected]) to a low rating and never have it change, or would we need to have a bunch of accounts ([email protected], [email protected] etc.) and then we can direct people to use these for GID?
The Halley's comet of Armagetron.
ps I'm not tokoyami

Post Reply