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

Make the 1v1 ladder fun #2990

Open GoogleFrog opened 3 months ago

GoogleFrog commented 3 months ago

The 1v1 matchmaker derives its fun from the fun of learning a game, and the fun of the game itself. It doesn't use any game design to be intrinsically fun on its own, and arguably it does worse than a basic ELO system because WHR sends players confusing signals. This is a minimal change proposal to make the ladder fun in itself, by adding a league system. The league is in part a patch for the systems proposed here breaking down if left to run indefinitely, so the league nature is vital.

In short

Technical Requirements

The simplicity of the change stems from this part of the code https://github.com/ZeroK-RTS/Zero-K-Infrastructure/blob/master/ZkData/Ef/WHR/RatingSystems.cs image WHR recalculates when the server restarts by iterating over the game from the past 10 years. The changes would be

The rest of the changes are purely additive, and would involve adding league points for wins, and a league rating page. The minimal part of this proposal is that we don't have to go into WHR to make it more enjoyable on a fundamental level, rather, we'd plaster over the issues with a league points system. One of the big problems with WHR is that, if your skill is not changing, then there is no reason to play. It will just rate you accurately. So people at the top of the ladder stop playing.

League Design

The systems above could be used to implement something like these:

Here is how a 4-monthly league could work.

This would give us a league of 3 months, with a month in between of play that uses the ratings of the previous league, but which is also used as the initial ratings of the next league. An advantage of the WHR implementation is that it lets us avoid ever having a gap where nobody has a rating, and this seems good as it would avoid some very uneven games. But this can all be experimented with provided there is an admin UI to set the calculation period and reset WHR.

Points per game could look something like this: image Maybe that is too much. The original context of the post was a league for the top ranked players. Perhaps there could be smaller awards for having the most points in, say, light blue and below.

Also note the strict thresholds on rank colour. This could be applied in the same weird way as MM and casual ranks are applied currently. The goal was mainly to make the points-per-rank transparent, with none of the weirdness around the 20% threshold.

GoogleFrog commented 3 months ago

Website wishlist:

The admin UI would work a bit like the tournament control page. Moderators would be able to set a flag for access to the page. The page would include.

Ideally the points would be distributed based on ranks at the end of the game, but the cutoff times would be based on when the game starts. But this is a minor thing.

https://zero-k.info/Tourney image