MMR and SR constraints

Do you notice the matchmaker I have described isn’t using MMR?
It is using a vector. What you put in that vector is up to you.

You can have a hate on for MMR all you like. The matchmaker I’ve got here doesn’t explicitly use it. it can, in that it can use anything you can place in a vector.

Dude, there is no explicit part of the matchmaker using MMR. That is up to the people using the matchmaker, and specifically making an MMR or some other system on top of it.

LITERALLY the distant function could be a trained net for all I care, it could be (match) -> match[1] for all I care.

It isn’t important for the matchmaker. This is one of the things I am trying to get people to understand. There is a bunch of EXTREMELY fundamental parts.

You can even make it do the random in range thing, by giving it 0 time to optimize. You want it to act like a random selector? fine, you can do that. You can let it have the constraints, and not do optimization. So, it will find a starting location which works, and … your done.

Yes i did. But it’s still sub-optimal.

The MM i described uses a vector of “infinite” dimension.

That’s one of the things I’ve been trying to explain (for years now). I would have given up hope but thankfully there are like 3-4 CS grads that lurk these forums so at least some technical convo is possible.

It doesn’t matter what data you collect, what you write down, what you try to record and what you try to vectorize (fixed finite param). It won’t be the same as the inf/analog of “random around SR” in terms of 1shotting the classification of someone’s “ability to win”.

One of the things people want out of their matchmakers is “less stomps” - you don’t want that. Fine, you can do that.

Make your own project, your own game, and see why people moved away from randomly putting people in games.

I’m making the matchmaker which people spend a large amount of money on, when they are making games, and putting it out for free, because I think that is important.

You can do the same.

1 Like

You’d think they’d just give you like 50SR for a win, and like -5 SR for a loss.

That’s pretty generous of you.

Wonder what would be the best way to hand that over to Bliz. Assuming that’s your intent.

I simply want fairness and transparency in esports.

And I’m sure many gamers, investors, jurisdictions, authorities etc also want the same thing. Selling people (especially, kids) an SBMM/EOMM scam is fraudulent. You wanna go ahead and rig my kids? We have a special place for software people who predate on kids.

Manipulating the competition without any transparency, disclosure, accountability – is most certainly unfair.

I have shown you a system that doesn’t rig, is simple and less complex, is easy to understand and explain, and works for everyone, equally. The only catch is it feels rough, because the real world of competition is rough. Sorry they didn’t teach you that at Irvine or w/e u work.

1 Like

Nope, but they could it if they liked. It’s MIT license baby.

An opensource matchmaker does a lot for this.

People putting out the match spec would explain EXACTLY how they are doing matchmaking.

The ability for people to have their hands ON the matchmaker being used in their game, and experimenting to show strengths / weaknesses of it, is also pretty huge.

1 Like

This we agree on. Even a rigged MMR system that is open source at least gives people a chance to inspect how they’re being scored.

2 Likes

Well…

x.com
x.com
x.com
busdev@blizzard.com

2 Likes

How about I get the machinery around it working first eh?

The core of it being open source isn’t really a guarantee of integrity, it’s moreso a guarantee that it works correctly in given known situations. Using an open source crypto library to ultimately store passwords poorly is probably a good analogy. I can tell you I’m storing your password nice and safe with this cool 4m+ downloads a week lib but who cares if my private NDA code is trash ya know? lol. The only guarantee there is that the lib is encrypting my pwd to spec and not opening up some stupid attack like a rainbow table.

To tie that back to ranked matchmaking, the real guarantee that it’s fully transparent would come if there was a way to prove that there isn’t deviation from an open source implementations - from starting state to the final db write - which may or may not be impossible for the public to even determine depending on the feature set being used and what data is made public. With open source, you likely don’t have guarantees that the data will be made public at all. of course there’s always the moral answer “well then they have something to hide” but that doesn’t work very well lolz

Like for example, if you let me tamper with the matchmaker by injecting my own “MMR” (which is secretly just a malicious penalty against people over 16). Or if I just slap that penalty on afterwards =)

I still think it’s a cool project and 100% worth doing tho. It sounds like a fun build.

1 Like

Sounds like a plan :slight_smile:

All of this is true.

Open source also gives people a feel for the underlaying implementation. Good code looks good to people who have coded a lot.

Bad code, looks bad, you know? There is a least some ability for people to check the quality of the underlaying implementation, if only by feel, and others who know the area can check.

But yes, not only can they change the implementation, in this case, they are absolutely free to do so. (MIT license being what it is.)

Oh, in this case, since you can supply the distance functions from the outside, you can make weightings based on username easily enough without having to change the matchmakers code :slight_smile:

Or just change their matchmaking ratings before it even hits the matchmaker.

Yeah, all of these things are possible :slight_smile:

I can’t make a system which is resistant to the game developers wanting to make unfair matches.

I can make it so it is easy for the developers to get the kind of unfair matches they want though :slight_smile:

I think a good analogy is now certain companies will literally abstract auth away from developers entirely. Like, I think firebase is a half decent example. They’ll handle the pwd storage and validation and all that stuff, and if you want it to work different, they say “screw you - build it ALL yourself.”

Then there are also some companies that take it a step further and do the login forms for you too so your devs don’t screw up the scripts. Payments also do this…

Perhaps somebody will take your open source matchmaker, and create a “matchmaker as a service” that guarantees all of this out of the box :grin:

Firebase is a perfect example :). It is good at what it is good at, and people use it for… a lot of what it isn’t.

Sure, I may even be that person, I can devops. you just watch me :slight_smile:

Most of the project by weight is instrumentation. It isn’t even the matchmaker, it is the code so you can see into it’s crazy head and make config tweaks based on what it is doing.

And make no mistake, it’s head is crazy.

But I think it is useful to know what is contributing to the cost function, in the players you have.

So, like, if queue times is basically overriding everything else, and it is giving garbage games just to make sure people don’t wait too long. As a game designer, you want to know that.

1 Like

Tbh, they keep smaller seasons and placement matches to try minimize the deviation that always would happen between the 2.

The most noise happens to be from the how the player plays the game. The MMR system were built to handle the player performance, they “adapted” to role performance. That change already makes a ton of noise. Because prior to it, the player could actually do something useful to improve the odds or just straight up throw it, with role locks you actually have less options at your disposal and less potential of affect the outcome of the match.

QP matches often are more balanced than Comp counterparts, aside from Smurfing. Because while they have some MMR in works they have more flexibility on it, both on “value” but also because aren’t also limited from SR, like comp does. Surprisingly QP Classic aside of “oddball compositions” often have more balanced matches in terms of individual player skills.

Considering they done the game as casual and later added competitive aspect of it, makes sense why the system can be a bit noisy. The SR tries to follow MMR but takes time and the entrophy to kick in. Having RQ just mess everything up. In a RQ system would be more adequate to consider SR from individual hero not role, but that would need to be selected prior to queue. MMR system wouldn’t work well on RQ system if the player only pick a single hero either.

They created a problem with poorly planned decisions post launch. Having ability to swap on the go were fine with their MMR system. While prior RQ they implemented Competitive matches those matches were inherently less balanced than actually QP matches. While would funnel SR, not always SR would be near to the MMR value, which wasn’t a bigger problem in the past because folks simply could pick any role they wanted if needed, counterbalancing the issue.

With RQ and locking 2-2-2, they improved the learning curve but also made more folks stick to 1 char or one way to play. You can’t balance the player in a role if he only plays with a single hero. That’s why RQ would never have a good MMR matchmaking if you don’t actually select hero prior to it and even if you do you would need to lock the hero swap to rely on that. RQ would work on SR range tho, because could enable the player to select “nearby” SR on their other heroes while locking the outside ones, while they could also do it on MMR, but because the instability of performance of each hero the MMR would be all over the place while SR would be a easy metric based on win/loss.

I agree that mixing both can be problematic, but I would argue that only became really problematic because they restricted the options from the player’s perspective without actually filtering it. They know the performance of the player on each hero and know what players would likely select but don’t use that data to actually make their MMR and SR system be more consistent, because if they used, they would force the player to select what kind of hero he would play and based on the selection would have others within the same range at his disposal during the match.

OW1 was made without both competitive and RQ in mind, they forced it without major revision on it’s behavior and the consequences about locking stuff up without effectively using the “player prefference” instead of the RNG lock. A player who one trick cassidy could be a really bad soldier and neither current SR or MMR would know that until the player actually pick it during the match.

That’s my stance about the actually problem on their system, MMR or SR could work as different stuff or even work together if the game didn’t had much restraints without forcing the user actually direct what kind of behavior he would do, but the moment you put limits on each you need to actually force the user to use what they want and account for that not from some RNG inside of the match which messes the Rank from most One tricks and mains generating a lot of noise in the system.

Comendable initiative about the Open Source project, if you can share more details afterwards I would like to see.

2 Likes

The problem with the mmr is that it is hidden.

You may be high sr and have matches that other may consider the easiests ever or the other way around.

This is also why some people have different perception for how hard a rank is.

The game does not care about your SR when matching you up. It only looks at your MMR. The only things SR is used for are: leaderboards, an approximation of what your MMR is (but for reasons stated and others it might not be exact) and to control who you can group with (though again there are limitations in this as well).

As an aside we have known the system does not care about your SR when matching you up for years. We have known it since back when SR decay was a thing and we knew that decaying over 1000 SR did not change who you were matched with. We know it now from the fact that if you finish the season 4400 you will place 3900 but still play with other 4400 people and not other 3900 people.

In summary the matchmaker does NOT use SR for anything. It is simply not a factor when forming a team.

Good luck with that!
I am always happy to see new open source projects in this field.
However, I have to express my concerns about the size and complexity of such a project.

Matchmaking is so much bigger than what you were talking about,
when we talk about it in the forum, many aspects are completely ignored.

I recommend you take a look at OpenMatch and get an idea of how big such a system needs to be in order to be used in a real-world application.
What you describe here is not even a small part of what is necessary for a matchmaker.

https://open-match.dev/site/docs/

1 Like

It limits the range of players in a match. There is a HARD limit on how far away you can be in SR.

I think is bad, either you should MMR or you should SR, mixing the two leads to some pretty pathological outcomes.

At least in testing it does.

ALWAYS happy to see what other people are doing, and seeing the descriptions of what they are doing.

always!

It is the core of the matchmaker. When I said there is a lot of machinery needed around it, this is very much the kind of thing I am talking about.

I may see if I can make this be able to be a drop in component for open-match. - that would save me having to write a bunch of the extra stuff.

1 Like

It does NOT limit the range of players in a match. When there was SR decay there were players who decayed to 3k in games with 43-4400 players because the system did not care about your SR. It DOES limit the range of players you can group with but it does limit the range of players in your game. It is actually not that uncommon, as you climb, to not be able to group with most of your lobby, but they are still in your lobby, either on your team or the other.

The system does not look or care about your SR when making a match. There is no other way to put it. It affects who you can group with and it affects the leaderboards but the matchmaker is only looking at your hidden MMR when making a match.