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

MM map veto design #2444

Closed
GoogleFrog opened this issue Nov 20, 2018 · 11 comments
Closed

MM map veto design #2444

GoogleFrog opened this issue Nov 20, 2018 · 11 comments

Comments

@GoogleFrog
Copy link
Contributor

Players should be able to pick which MM maps they do not play on. Here are the components:

  • Every player should have 6 DB keys called something like mapban1 through mapban6.
  • Players can set these values by entering strings (with autocomplete, as seen here http://zero-k.info/Battles) into six text boxes in a small dedicated map ban page which is accessible via a link on the homepage.
  • Every match size should have a number of map bans. Reasonable values for the current pool are 6 for 1v1, 3 for 2v2, 3 for 3v3 and 2 for 4v4.
  • When a MM game is created, the map is chosen from the pool of maps created by banning the first X maps selected by both players to be banned. X varies depending on game size.

The backend should not care whether the maps banned by a player are MM maps, to avoid fancy checking or validation when the MM pool is updated. The UI should only consider MM maps for its autocomplete.

See: #1552

@Anarchid
Copy link
Member

Anarchid commented Nov 20, 2018

Every player should have 6 DB keys called something like mapban1 through mapban6.

IMO: separate table, something like AccountMapBans with fields AccountID, BannedMapResourceID.

Accounts rows already span multiple screens.

@Licho1
Copy link
Member

Licho1 commented Nov 20, 2018

Yeah you dont do 'MapBan1, MapBan2, MapBan3" thats bad design. But i think this is just a description of the concept.
Also imo its a pointless feature. It's a very niche feature for a very niche way to play the game.

@GoogleFrog
Copy link
Contributor Author

Sure, separate table.

@Licho1 it's a very important feature for the MM because many people don't like some maps. This is my experience from talking to just about anyone about updating the MM pool. I think the MM would see a noticeable increase in activity if people were able to queue with the surety that they won't be served the maps they most dislike.

@GoogleFrog
Copy link
Contributor Author

Any update?

@DeinFreund
Copy link
Member

I'd like an infra stable before doing any further changes to the MM. There is already a major rework for autohosts as well as some changes to the MM in the pipeline. For that we'll need to test and deploy:

ZeroK-RTS/Chobby#654
ZeroK-RTS/Chobby#650

@Legomenon-gh
Copy link
Contributor

I have MM running locally and intend to take a stab at implementing this since I'd very much like to make the MM map pool more configurable by users.

The last comment above by @DeinFreund implies autohosting is being reworked. Is this still current, and how much of a blocker is it? (e.g. how much of a merge conflict would it end up into in the future?)

@GoogleFrog
Copy link
Contributor Author

That comment is not relevant as it is from 2018 and an infra stable has been made since then. Autohosting has nothing to do with the matchmaker, except for a system DF added that is defunct (as far as I know). In any case, no work is being done on it.

@Legomenon-gh
Copy link
Contributor

Legomenon-gh commented Jun 13, 2020

Thanks, I saw the comment was from 2018 but wanted to double check since the two issues below it still being open.

Implementation looks straightforward but I have a question on this requirement: When a MM game is created, the map is chosen from the pool of maps created by banning the first X maps selected by both players to be banned. X varies depending on game size.

It seems strange to me that banning a map has no effect unless the other player also bans it,
especially for team games. Should a veto work as a weight to the random pick instead so a single vote has an impact? (For each veto, reduce the probability of that map being picked by %Y / number of players. The simplest case in 1v1 is reduce the probability by 50% if one player vetoes the map, and remove it if both players veto it)

Either way I'll implement a percentage-based weight to make the impact of map veto easier to tweak in the future.

It would be simple to add the ability to like maps so they're more likely to be picked in MM, but I'm assuming this isn't worth adding right now (custom games can serve that purpose already, and this would make the map preference UI get pretty complicated). Let me know if you think being able to like maps would actually be desirable.

@GoogleFrog
Copy link
Contributor Author

When a MM game is created, the map is chosen from the pool of maps created by banning the first X maps selected by both players to be banned. X varies depending on game size.

This is just ambiguous wording. Take the union of the first X maps of each player and ban that set. Bans should not mess with the probabilities either, once something is banned the player should never see it.

Here is how it could be fixed:

When a MM game is created, the map is chosen from the pool of maps created by banning the first X maps selected, for each player, to be banned. X varies depending on game size.

@Legomenon-gh
Copy link
Contributor

Legomenon-gh commented Jun 14, 2020

Ha, both can be an intersection or a union :D Simple enough, thanks for clearing that up!

@sprunk
Copy link
Member

sprunk commented Nov 4, 2020

#2682

@sprunk sprunk closed this as completed Nov 4, 2020
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

6 participants