Loading...
  OR  Zero-K Name:    Password:   

Idea for matchmaker

9 posts, 809 views
Post comment
Filter:    Player:  
sort

3 years ago
Is it possible to set the max rank difference between players when doing 1v1 matchmaking? I'd love to be able to wait longer instead of being matched against a waaaay too different skill player? I mean, I'd not enjoy being matched with my win chance at 1%, but neither do I enjoy games where my win chance is 90%...
+0 / -0


3 years ago
Yes. It requires:
  • Some design work to consider and stop abuse cases.
  • A PR to the infrastructure repository with changes to the matchmaker logic.

And either:
  • A web UI for configuration (perhaps alongside map bans).
  • Lobby UI design and server commands for configuration.
+0 / -0

3 years ago
Could you comment on how this can be abused?

Alongside MapBans do you mean in the same view or a new view in the same dropdown menu?

Also would be great if someone pointed out where the matchmaker logic is sitting these days. Thanks=)
+0 / -0
Not claiming to speak for GoogleFrog, but those were my thoughts for abuse potential: the MM population is small, so there is potential for using the WHR width to strongly increase the odds that you get a game with someone weaker than yourself in conjunction with the WHR width increasing with time (e.g. if you know someone 240 stronger than you is out there, you can queue for X minutes to preemptively dodge them with your WHR width set to 300).

Right now I think you can leave a MM game without penalty once it's started, but that's much more visible than if you manipulate MM to prevent such games from happening. Making MM more transparently customizable will make it easier to game the system, which would ultimately hurt the MM population if not addressed. (This may happen without any intent to abuse the system too if users can set their WHR width to be too low for games to have any chance of starting. This is not an insurmountable problem by any means)

The matchmaking code lives in https://github.com/ZeroK-RTS/Zero-K-Infrastructure/tree/master/ZkLobbyServer/MatchMaker. MatchMaker.PlayerEntry has the EloWidth property which would become dynamic per user, and this change would be reflected in MatchMaker.ProposedBattle (and maybe in the MatchMaker class itself in its method that tries to look for a battle). The user's EloWidth could be passed when the user enters a MM queue, stored server-side like the map bans are, or be sent as a command from the client while in the MM queue.
+3 / -0
3 years ago
Legomenon,

Though I am not able to understand coding and all that jazz, what you said was beautiful >.< xox
+0 / -0
3 years ago
In principle, the expectation value of whr change is zero, independent of whom you play against. You could trick the system if you have reasons to think that certain players are currently misrated. But even then, whr should compensate the misrating afterwards. You could only exploit temporary rating deviations that are not fully compensated due to too high omega if you think that a misrated player is unlikely to play many more games at this and the following days. The solution is lower omega imo.

Also, you could avoid players that are somehow effective against you, for example if you know that they block your favorite maps. But those are really edge cases.
+2 / -0
WHR also assumes that skill differences are transitive, that is all players can be arranged by strength on a one dimensional scale. There are always players/playstyles against whose one performs better or worse than a perfect single rating would predict. Since WHR cannot capture these relationships, choosing the right opponent can result in a higher rating.
+0 / -0

3 years ago
Thanks USrankLegomenon!

Bottom line is this: I don't mind getting matched with Godde, I'll learn much from that game. Not sure Randy will enjoy it though, as chances are good I'd not be able to really challenge him. At least for me that is the main motivation, and I'm fairly certain most decently good players have no intention of grieving lobsters either. Based on this, here is a way to implement anti-abuse logic:

The filter should be biased. In a way, if you set maxdiff=300 WHR or whatever, the matchmaker will not match you with anyone WEAKER than you by 300 points, but it can and will match you with folks who are stronger by e.g. 600 WHR. Specific bias point could be adjustable, of course, based on e.g. total wait times.

Another limit would be the minimal gap width, which should be chosen to not prevent too many matches.

I think these changes make system biased towards allowing balance with stronger players without destroying its main purpose, so you can not really abuse it the way that was suggested by USrankLegomenon. Please let me know if this would be acceptable.

+1 / -0
DErankBrackman we're trying to design a system that is fun for the actual people using it, not discussing how or whether WHR may be inaccurate of trickable. WHR can give everyone a skill rating but it has nothing to say about who should be playing who.

quote:
Could you comment on how this can be abused?

@[GBC]HeadHunter I had no specifics in mind. Thinking for more than a few minutes about the way a system will interact with player incentives and social dynamics is just a good idea. I or any one else won't have specific ideas about what the system should look like until the thought is applied. USrankLegomenon has good points.
+0 / -0