ZeroK-RTS / Zero-K-Infrastructure

Website, lobby launcher and server, steam deployment, .NET based tools and other vital parts of Zero-K infrastructure
GNU General Public License v3.0
53 stars 52 forks source link

WIP: seasonal ladder rating #2850

Closed sprunk closed 4 months ago

sprunk commented 2 years ago

Don't merge! Lacks migration.

To do:

We probably need a lobby UI matchmaker tickbox that toggles whether the player is queuing for a league game or not. The game would only count if both players say it is a league game. I don't know whether this would break the league, but it seems wise to have the capability.

GoogleFrog commented 2 years ago

How about two extra queues ala https://github.com/ZeroK-RTS/Zero-K-Infrastructure/commit/b8fb10d068f6437ebafcee2f421299b146a08ee4 that have some "LeagueRating = True" parameter set, which causes the battle to count for league rating as well as main 1v1 elo. This the lobby can handle these two queues as a checkbox.

League MM should be added "before" normal ones in the sense that it is checked first, so that these battles take precedence.

GoogleFrog commented 2 years ago

Remind me, what does this implement and what would the lobby need?

Is this close to done? How are we going to get someone to do migration?

sprunk commented 2 years ago

This implements a fourth rating, "Ladder" (in addition to MM, Casual aka custom, and PW). There is a new dynamic config entry on the website, which is a boolean toggle on whether a league is running. If the bool is toggled, 1v1 MM games are automatically also ladder. The top50 page shows Ladder and Custom (instead of MM and Custom), this is even if a season is not ongoing (so that winners have a hall of fame of sorts).

As-is the lobby doesn't technically need anything. Any 1v1 MM game is automatically a ladder game. If the idea from https://github.com/ZeroK-RTS/Zero-K-Infrastructure/pull/2850#issuecomment-940853724 is implemented there would be an additonal key in the JSON that describes possible queues for lobby to handle.

I believe this is "close to done" in that a migration should make it mergeable to test and working reasonably close to expectations. It doesn't implement the idea above that lets people opt out of ladder when playing MM. It doesn't keep track of historical seasons (but I think your approach with if date > x then would largely do that, if applied to the new rating). To generate a migration, as far as I can tell somebody just needs to open this project in Visual Studio, find a "generate migration" button and click it (which sounds trivial but I once managed to spend a day only to generate something that corrupted the database so I am scared).

Licho1 commented 4 months ago

was this project aborted @sprunk ?

sprunk commented 4 months ago

Yes. It was more of a crude proof-of-concept so not much loss.

sprunk commented 4 months ago

This was an attempt at #2848 btw, that ticket contains more info