Algorithmic Handicapping (MMR) is Wrong for Overwatch

It’s not a patent for Call of Duty. It doesn’t even mention Call of Duty. It’s a patent for the Matchmaker, titled “Matchmaking System and Method for Multiplayer Video Games.” Different versions of the same Matchmaker have been implemented in both CoD and Overwatch, which are both owned and operated by Activision Publishing Incorporated, now Microsoft.

It’s a patent describing the Call of Duty nactmaker, created by people from the Call of Duty team in 2015. Check the attributed inventors. Read the actual description within the patent itself. It is describing a Call of Duty game.

In a fit of confirmation bias, you have decided that this parent applies to Overwatch even though the only link is that Activision-Blizzard also owns Overwatch. You are simply speculating.

Also, Microsoft does not yet own Activision - the purchase is still pending regulatory approval, with the sale expected to be finalised sometime in 2023.

4 Likes

Where are you getting that from??? Call of Duty is not mentioned a single time in the patent description. The details of invention are applicable to both Overwatch and Call of Duty. Both games belonged to Activision when Overwatch was published.

2 Likes

I’m just a software dev who has built matchmakers as a job, it was in other game dev stuff as well. I used to be in fintech before that, and these days I’m building tools for data scientists, after taking a dip into the energy industry (electrical).

Weirdly enough, they all use solvers :slight_smile: - or maybe I just see problems which are easier to use a solvers on.

But matchmaking was interesting, along with other problems in game development. I ended up obsessing over it for a bunch of years.

I think the patents are interesting, but in most places I’ve been a lot of them file patents a lot, but don’t for instance often use the patents they file.

They see them as “value” to the company, which will help in buyouts etc. I would worry less about the patents, and more about weird stuff we see from the matchmaker.

I personally think that the game itself pushes for steamrolls with how it does ults etc is a bigger problem.

Or that Blizzard practically encourages people to throw / smurf / etc.

4 Likes

lol can you tell me who care about MM with ppl smurf here and there

1 Like

The reason I hold up the patents is because of the 2016 statement from Principal Overwatch Designer Scott Mercer (cited in the OP). Every point of Scott’s description of MMR/SR/PBSR is mirrored in the details of invention, for Microsoft/Activision/Blizzard’s 2015 Matchmaker patent. I think is more than reasonable that Overwatch’s Matchmaker resembles the Activision’s prototypical Matchmaker in other ways, and is in fact an implemented version of the same invention.

I respect your qualifications and appreciate your input on this subject.

I’m trying to understand this better, from Wikipedia:

“A solver is a piece of mathematical software, possibly in the form of a stand-alone computer program or as a software library, that ‘solves’ a mathematical problem. A solver takes problem descriptions in some sort of generic form and calculates their solution. In a solver, the emphasis is on creating a program or library that can easily be applied to other problems of similar type.”

So does that mean that the Matchmaker is the solver? And the solution it’s calculating is matches with 40%-%60 odds for players on either team, from a pool of waiting players and groups within the target SR range?

this is entirely irrelevant since you give nothing about how MMR is updated and how MMR uncertainty is updated and that is probably the only thing that matters along with the fact does the game take a moving average of your winrate as a parameter when it maches teams (open question that would suggest that some rigging is taking place)

so you wrote a whole big lot of nothing when it comes to relevancy to this thread

oh, you want to show that you can minimize an optimization problem? great, that is totally relevant to this thread and its topic

but if your overbloated ego didn’t blind you to that then you probably would think 1 step ahead and realize yourself that it doesn’t have anything to do with what OP is saying

the idea that this game doesn’t have something that tries to maximize people playing games is absurd because likely all big MM games have it

here:

https://www.researchgate.net/publication/315849420_EOMM_An_Engagement_Optimized_Matchmaking_Framework

also for other similar games:

https://answers.ea.com/t5/General-Discussion/Matches-are-rigged-you-can-t-change-my-mind/td-p/10363436
https://www.reddit.com/r/apexlegends/comments/iz3qm8/respawn_exposed_sbmm_is_a_rigged_system_proof/
https://www.reddit.com/r/apexlegends/comments/n73mo6/matchmaking_is_rigged/
https://bit.ly/3ofhk61
https://www.reddit.com/r/apexlegends/comments/cw5zpm/the_ranked_mode_of_this_game_is_rigged/
https://www.reddit.com/r/apexlegends/comments/m3y97n/why_is_matchmaking_so_awful/

gee, I wonder, why would a multi-billion stock oriented company try to maximize the playtime of their user even if it involves unethical algorithms…

gee, I wonder because they obviously care so much about us… because a plenty of forum people seem to think that, but it isn’t true in the slightest

if anyone needs any proof of it, just watch unranked to GM of top 500 players and see how many times they get unwinnable games when even below 3.5k, in reality, it should happen never but yet, it happens 2 or 3 or 4 times which means that the game is actively trying to hamper you down

2 Likes

You link to a bunch of people on reddit upset that they don’t like playing against people of higher skill, once they have shown they are skilled.

ApexLegends did put in matchmaking like overwatch did, You get put in games with / against people of the same skill level as you, now you can’t roll games all the time…

So they get upset.

But that is what makermakers are for. To give people “fair matches” - you play with / against people of the same level of skill.

Really? You think you randomly sample people some of them will be on heroes they are not good at, some will be having a bad day, they will get some throwers etc.

Even if the matchmaker was perfect it can’t stop those effects.

3 Likes

I totally get your point that these types of Matchmaker have become industry standard. We know this to be true from the publishing company patents and development company statements of Microsoft, Treyarch, Activision, Tencent, and others.

But you seem to be suggesting that the widespread implementation of algorithmic handicapping is reason enough to accept it. I actually think the pervasiveness of this game operation practice, and consumers’ unawareness of it, warrants alarm.

Do they get upset? Because I don’t think that most players are even aware of what is happening. MMR is hidden, so we don’t know how or when it is affecting us.

That is certainly the case, and I thank you for confirming the truth of the matter. Can you tell me more about solvers? I posted some questions above, don’t know if you saw them.

Is it handicapping to be playing against people who are as good as you?

We don’t think of martial arts tournaments as handicapping people by getting them to fight against people of their same belt right?

The shift of how hard games are for people who play it a lot has certainly made some of them upset. They don’t get to stop the newbies.

Ok, base line on what a solver is.

They are for solving stuff like this https://en.wikipedia.org/wiki/Mathematical_optimization - which isn’t very useful as an explanation I know.

Lets see if I can do a better one.

Say, we were after the most cost effective dinner we can make with some constraints on calories, and some other values like how much protein, fat, sodium it has.

So what we do, is we load all of the foods we have access to.

name cost calories protein fat sodium
“hamburger” 2.49 410 24 26 730
“chicken” 2.89 420 32 10 1190
“hot dog” 1.50 560 20 32 1800
“fries” 1.89 380 4 19 270
“macaroni” 2.09 320 12 10 930
“pizza” 1.99 320 15 12 820
“salad” 2.49 320 31 12 1230
“milk” 0.89 100 8 2 .5 125
“ice cream” 1.59 330 8 10 180

in code it looks like…

foods = DataFrames.DataFrame(
    [
        "hamburger" 2.49 410 24 26 730
        "chicken" 2.89 420 32 10 1190
        "hot dog" 1.50 560 20 32 1800
        "fries" 1.89 380 4 19 270
        "macaroni" 2.09 320 12 10 930
        "pizza" 1.99 320 15 12 820
        "salad" 2.49 320 31 12 1230
        "milk" 0.89 100 8 2.5 125
        "ice cream" 1.59 330 8 10 180
    ],
    ["name", "cost", "calories", "protein", "fat", "sodium"],
)

Good stuff, Ice cream costs $1.59 for 330 calories worth of it, 8 grams of protein, 10 grams of fat, 180 grams of sodium.
(there are toy numbers I do NOT recommend you use this as dietary advice)

so, we set up our model. (basically saying to the compiler, we are going to do an optimizer problem.)

model = Model(GLPK.Optimizer)

We want to tell it, that you can’t have negative food. The amounts of food must be greater to or equal zero.

@variable(model, x[foods.name] >= 0)

easy! we now have a set of variables, which have food names, which can’t be negative.

Now we want to tell it what we want it to do… which is minimize the total cost of purchasing food.

@objective(
    model,
    Min,
    sum(food["cost"] * x[food["name"]] for food in eachrow(foods)),
)

There are nicer ways of writing that, but, it basically says, each line of food, we want you to sum up the cost*amount of food, and we have asked it to minimize it.

It will, if we run it at this point give us a list of foods, with 0 amounts. Since the cheapest food you can buy is “none of it”

So we need to tell it there is a constrain, that we expect a certain number of calories, and the amount of sodium isn’t too high etc.

And we want to set limits on calories, protein, fat, sodium.

name min max
calories 1800 2200
protein 91 Inf
fat 0 65
sodium 0 1779

in code, it would look like…

limits = DataFrames.DataFrame(
    [
        "calories" 1800 2200
        "protein" 91 Inf
        "fat" 0 65
        "sodium" 0 1779
    ],
    ["name", "min", "max"],
)

and now we tell it that these limits exist.

for limit in eachrow(limits)
    intake = @expression(
        model,
        sum(food[limit["name"]] * x[food["name"]] for food in eachrow(foods)),
    )
    @constraint(model, limit.min <= intake <= limit.max)
end

good stuff. It can be a little hard to read, but the important line is
@constraint(model, limit.min <= intake <= limit.max)

What the solver has been told is…

Min 2.49 x[hamburger] + 2.89 x[chicken] + 1.5 x[hot dog] + 1.89 x[fries] + 2.09 x[macaroni] + 1.99 x[pizza] + 2.49 x[salad] + 0.89 x[milk] + 1.59 x[ice cream]
Subject to
 410 x[hamburger] + 420 x[chicken] + 560 x[hot dog] + 380 x[fries] + 320 x[macaroni] + 320 x[pizza] + 320 x[salad] + 100 x[milk] + 330 x[ice cream] ∈ [1800.0, 2200.0]
 24 x[hamburger] + 32 x[chicken] + 20 x[hot dog] + 4 x[fries] + 12 x[macaroni] + 15 x[pizza] + 31 x[salad] + 8 x[milk] + 8 x[ice cream] ∈ [91.0, Inf]
 26 x[hamburger] + 10 x[chicken] + 32 x[hot dog] + 19 x[fries] + 10 x[macaroni] + 12 x[pizza] + 12 x[salad] + 2.5 x[milk] + 10 x[ice cream] ∈ [0.0, 65.0]
 730 x[hamburger] + 1190 x[chicken] + 1800 x[hot dog] + 270 x[fries] + 930 x[macaroni] + 820 x[pizza] + 1230 x[salad] + 125 x[milk] + 180 x[ice cream] ∈ [0.0, 1779.0]
 x[hamburger] ≥ 0.0
 x[chicken] ≥ 0.0
 x[hot dog] ≥ 0.0
 x[fries] ≥ 0.0
 x[macaroni] ≥ 0.0
 x[pizza] ≥ 0.0
 x[salad] ≥ 0.0
 x[milk] ≥ 0.0
 x[ice cream] ≥ 0.0

And it will happily tell us…

hamburger = 0.6045138888888888
chicken = 0.0
hot dog = 0.0
fries = 0.0
macaroni = 0.0
pizza = 0.0
salad = 0.0
milk = 6.9701388888888935
ice cream = 2.591319444444441

Is the optimal set. ANY other numbers which you can put in there would increase the cost, OR break one of the constraints.

We can modify it.

@constraint(model, x["milk"] + x["ice cream"] <= 6)

And then have the model tell us there isn’t a solution at all, there is no set of foods which you have told it that it has that it can get an answer.

So what solvers do for you, is you tell it what outcomes you want, and what limits it has to work in, and it will tell you what inputs you should give it.

Like, I want the most fair match I can get out of the players waiting in the queue, where no player has to wait too long. - which is ultimately what matchmakers are all about.

4 Likes

You are getting to the heart of the subject matter and posing some very good questions.

I will need some time to read, think and respond. Thanks RobotWizard!

My man Cuthbert, you really should make a Gab account and post this information there.

You’ll get proper feedback and there’s also Gabtv in which you can upload your video.

Take it easy!

1 Like

I appreciate the recommendation, but I am trying to reach a wider audience. Is Gab an alt-right platform? The top videos that I can find on GabTV only have a few hundred views. Also, I am seeing a lot of anti vax and conspiracy content on GabTV, which appears to have a whole video category devoted to ‘Q.’

I don’t think this audience will favor my pro-regulation message about corporate malfeasance and antitrust law.

I’m not reading this dude…

These tin foil hats need to come off for this subject. Also, Microsoft doesn’t even have control over Activision Blizzard until like next year or something due to a contract.

4 Likes

You don’t have to read, I made a video.

I understand this. I make the connection between Microsoft and Activision/Blizzard not because of their current ownership, but because of their related history of Matchmaking invention over the last two decades.

Do you have any real criticism to offer? You strike me as an opinionated person.

Nope. We’re just looking too deep into this.

3 Likes

I don’t think you know the first thing about it.

Okay.

3 Likes

If MMR and handicapping would not exist, these smurfs would climb faster

1 Like

This:

That is certainly true. In fact, without MMR players would have no reason to purchase Smurf accounts, since most players are smurfing to circumvent MMR in the first place. A commenter on my video called this “playing the SR lottery,” which I think is an apt description.