Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make the 1v1 ladder fun #2990

Open
GoogleFrog opened this issue Aug 11, 2024 · 1 comment
Open

Make the 1v1 ladder fun #2990

GoogleFrog opened this issue Aug 11, 2024 · 1 comment

Comments

@GoogleFrog
Copy link
Contributor

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

  • Give people league points for victory, with more points being awarded for being higher on the ladder.
  • Partially reset the ladder periodically.
  • Fix the rank colours at set thresholds, to cut down on confusing messages to players.

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

  • Make WHR for the matchmaker recalculate from some fixed time in the recent past.
  • Leave casual WHR unchanged.
  • Restart the server to start the league.
    Ideally this would be a date field on some sort of admin UI, with a button to recalculate MM WHR.

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.

  • Month 1: Lead in or "calibration" time.
  • Month 2: Reset WHR to calculate from the start of Month 1.
  • Months 2-4: Award league points for wins.
  • End of Month 4: Close the league, announce winners, print trophies.

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
Copy link
Contributor Author

GoogleFrog commented Aug 11, 2024

Website wishlist:

  • "Top Players" on the home page shows league progression instead, when a league is active.
  • https://zero-k.info/Ladders shows league ranking next to ladder rankings, puts casual rankings below?
  • A page, or maybe just a wiki page, linked to on the ladders page.
  • An admin UI
  • (Optionally) something on the battle results page that says how many league points were gained.

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.

  • A tickbox for whether MM WHR should be calculated using the full 10 years.
  • A datetime entry for when MM WHR should be calculated from, if the above us not ticked.
  • A button to recalculate MM WHR.
  • A datetime entry for when league points start being given for games.
  • A datetime entry for when league points stop being given for games.
  • (Very stretch goal) a way to configure the points thresholds and amounts given for each game, so that the league can be fiddled with without a server restart.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant