Greedy Goblin

Thursday, November 24, 2016

Can we swap? Sure! (Rigged!!!)

I've found another sign of rigging, this time in the matchmaker itself. The evidence is that people in the lobby say "can I swap to lane X" and they are sometimes replied "sure". That could not possibly happen with a fair matchmaker. What am I talking about?

You select a primary and a secondary role. Sometimes you get overruled and get autofilled. So far so good, unless every role is equally wanted, some people can't get what they want. So Adam being support despite wanting mid is completely OK. However when Adam asks "can I go mid instead", Betty should always say no, since Betty is mid because Betty wanted mid. OK, Betty might wanted top first and mid second, but surely she didn't want Support, otherwise she'd pick that.

However Betty sometimes say "yes". Hell, I was Betty sometimes. And I was Adam too. Adam and Betty preferring each other's lanes mean that the matchmaker purposefully placed both of them to the wrong lane. After all if Betty preferred Support and Adam preferred mid, the matchmaker could easily place Betty support and Adam mid.

My theory: when Riot wants your team to lose (because the other team has paying players), it purposefully not places the members to their preferred lanes. Usually it works. I mean:
  • Adam: mid / top (queues as mid/top, gets top)
  • Betty: jungler / ADC
  • Cindy: mid / jungler
  • Dave: ADC / mid
  • Eric: mid / top Autofilled support
Everyone is in wrong role and they can't swap it right. Or at least not with single swaps (Dave offers to switch, but Betty isn't interested while Cindy is not aware that she could solve the situation). No need to say that this team is smashed by the Adam mid, Betty jungler, Dave ADC, Eric top, Cindy support team.

The successful swaps are errors in the system, when players are mis-casted in pairs (Adam wants Betty's lane and Betty wants Adam's). Again, such successful swaps are proofs of the rigging as the system has no reason to not place both Adam and Betty to their favorite lane at the first place.

Another evidence is when a mid player asks for swap, even if no one is interested. Mid is the longest queue, it has a red plus sign all the time. So there is absolutely no reason to place a second preference mid to mid. A jungle / mid should always jungle (or autofilled support). "Smart" people figured this out so they queue X / mid to be sure that they are always X, just to panic when they are cast mid without having a single mid champion.

The pure existence of forced fill is suspicious. The industry found the solution for bad queue balance: rewards for choosing the unpopular position. Blizzard is giving out goody bags for those who queue as tank as there is a tank shortage. Yet Riot (whose top dev is from Blizzard) is somehow missing this groundbreaking idea to toss a few IP and a low chance of a skin shard to those who select "fill". I can't see any other reason for forced fill than the ability to create horribly broken teams, ones where the support role is filled by a player with no affinity, champions or experience for it.

One more thing: Flex and solo/duo queue are not the same. Yet I've never seen different Autofill status for the both, despite teams often have supports with them and want to support, due to Bot and Supp being on voice chat. Possibly Autofill is activated most of the time just to allow more rigging. Oh wait: the idea of separating Bot and Supp teams in itself is a good way to decrease their efficiency.

Solution: if anyone is complaining about his role or begging for swap, consider it a good sign to leave champion selection. Sure, you can still win if the team is otherwise great (Riot has no power over champion selection), but make sure it's "great" and not just "good". People complaining about their roles is a sign of Riot setting your team up for defeat.


maxim said...

Erm. Need clarification. Does the choice of lane at selection actually limit the player's ability to pick lanes in actual game?
I expect laning choice process during char selection is only there to just give players a space to coordinate before the game and is not influenced by mmr in any real way.

maxim said...

I would agree that this situation constitutes a rigging opportunity. You still require weapon (aka means) and motive.

Financial motive doesn't fly because it is not in Riot's financial interests to keep good players - potential whales and pro athletes - down.

The question of means is more complex and basically assumes that Riot do actually have the kind of matchmaking control you are ascribing them. That is they are both capable of making a better system and choose to make the one with laning mistakes instead.
The question of good group MMR is already a daunting problem on a theoretical level. Adding yet one more dimension to it with lanes could easily push it into unsolvable territory (as is often the case with 3d equivalents of 2d problems).

So you just might be accusing Riot of both choosing not to do the impossible and making the best out of what they have.

As often is the case with you tackling game design questions, you continually opt to not do enough researth and write click bait instead. You even adopted the click bait staple title format, parentheses and exclamation marks.

Everyone needs a hobby I guess.

Gevlon said...

You select a primary and secondary lane preference. Then in the pre-game you are assigned to a lane. It's reportable griefing to not playing it in game (unless other player agrees to swap)

Creating a "good" system is maybe mathematically impossible. Creating a system where no swaps improve the situation is trivial: you form the group based on MMR and then assign the members of the group to lanes according to maximum preference (you can place 5 players to 5 lanes 120 ways, you calculate all of them by giving 2 if player is placed first pref, 1 if second, zero if autofilled, highest point combination is the lane assignment).

Giving out vanity rewards to choose fill is trivial too.

Caldazar said...

I regularly swap as well.
I primary pick jungle, but don't mind support, top or adc (just no mid). So if I do not have jungle and the support/top or adc wants whatever role I have, I accept.

Also: +1 to what maxim said about the clickbait titles.

Tal said...

Your argument seems to assume that if Betty agrees to the trade it means that she was also misplaced (auto-filled or got second pick). It fails to account for cases where Betty did get her first pick, but doesn't have such a big preference for it over the second pick (or even when she doesn't mind playing that role despite not selecting it - which could happen if she picked X/mid). The thing is, when Adam asks to switch role, it could be that he simply doesn't want to play it, but it could also mean that he's *really* bad at it. In such a case, even if Betty got one of her 2 picks, she may still think "well, I'm at least a decent support, so we'd have more chance of winning if I agree to switch".

Anonymous said...

Still no evidence of rigging here. You need to show that the team with paying players gets the right lanes correctly more times than non paying. Otherwise your team having to swap is countered by the equal times the enemy having to swap.

Finally people switching might be out of politeness or fear of trolls. Suppose 4 players on the team get their preferred pick. One gets their secondary pick. The secondary pick guy says "hey can I have mid?". Now the mid guy just wants to be nice and swaps. Or he goes of shit, that guy is going to feed if I don't swap. I better swap even if I get the wrong role or troll is going to ruin the whole game.

Anonymous said...

Mid-only player (gets secondary due to beeing the only one having that)
Not-support player
A first and non-support second (gets non-support due to A already taken by longer queue time player)

Ends with logical swaps. Also clickbait OP and "proof" even colloquialy used wrong.

Furthermore riot has a stronger history of technical incompetence (p.ex. session expired in the shop) than you do of tinfoil.

Anonymous said...

so, isn't someone like me with pref sup > adc a valid counter example? i always get sup if i put it in as first preference.

if what you write is true, i should also be put into adc or autofill. but no, this literally never happens. and thus your theory if not valid.

Andi Y said...

just try it out. make several alt accounts. you can even buy them in ebay (lvl30).

i dont think the games are manipulated in silver etc.
even if you dont pay, people can easily archive high winrates. you just need be good.

another thing is.
your team has only 4 other variables. the opponent 5. if yourself is not feeding or afking, the enemy team has higher chance of having someone do it.

with 4 accounts and playing long time. i dont feel like riot manipulates anything.
if you are good, you climb. if you are bad, you dont climb.
as long as there is no evidence, you are not right nor wrong. but right now, they dont influence it that way, that you can only have 50% winrate. they are even people out there with 80-90% winrates.
maybe people (M&S) use these arguments, to say, wait i cant climb, because "riot". or maybe they are just too bad and dont improve.

Anonymous said...

You are forgetting that this type of queueing is relatively new; before, everyone just queued without declaring their desired spot. The new system is not perfect, but it helped to curb several disadvantages of the previous one. It seems far-fetched to suppose, that the new system served first and foremost to rig the system.

Regarding new queue system, there are way more players being queued than just 5, all with their preferences and ELO. Nobody wants to wait dozens of minutes for a game, that's where weird outcomes and fill in comes from.

Slawomir Chmielewski said...

There exist people who don't mind playing either role. They will always agree to swap. Or maybe they pick mid when they actually prefer tank, just because they got bored. Now if tank asks to swap they will do it no problem.
I know I didn't mind playing support or tank in my times of dota. I really didn't care.
Why people queue for mid and suffer the queue if they don't mind either lane? Cause they want to play mid *sometimes*.

Gevlon said...

@Tal, Slawomir: if Betty doesn't have a strong preference, she should select "fill" which gives her an instant game.

@Anon: this is borderline trolling. It's impossible to prove that they rig for paying players without internal info as I can't see who's paying and who's not. However proving that the system is pointlessly hurting some players is enough. Why else would you hurt your players if not for helping paying players?!

@Andy Y: that SHOULD be the case, and it's not. I see much more AFK in my team than in the opposite. I surely started /remake dozen times and remember 3 remakes done by opponents.

@Anon: the cost a defeat is over 10 hours (if your winrate is 55%, it takes 10 games to have +1 win). So people would gladly wait 10-20 minutes for a fair game instead of being placed into an unwinnable one. When you queue dodge, you willingly wait 30+ minutes for the next game.

Anonymous said...

I always accept swaps like that with a "sure", because it avoids potential drama and I'm acceptable at every role.

Not sure I buy this as any kind of "proof".

Skeddar said...

Actually many people pick mid as their second role to increase their chances to get their primary role. As you stated there are a lot of people choosing mid lane, so the chance of actually getting mid in a game is rather slim.
Since mid IS a rather important carry position it's not that surprising to see a main jungler (who isn't good in lasthitting lane minions) who got mid attempt to swap with the support player, as he only chose mid to increase his chances to get jungle. If he picked support as secondary role he would have to play support for 90% of his games.

As maxim stated, I find it a bit worrying how you start to cry 'rigged' every time you find a rigging possibility. You are a 'data blogger', no need to try to be a newspaper with lurid headlines. Your WoT analysis was awesome, always saying 'I can't proof it, but after considering X, Y and Z the only explanation I have is they mess with that'.
Yeh, maybe Riot IS rigging the matchmaking, but just writing 'rigged!!!' makes it seem a little unprofessional.

Gevlon said...

@Skeddar: my WoT analyis is a permanent page, a kind of "book". This is a blog post which is a debate paper asking for feedback.

There is nothing stopping Riot from banning Mid (or whichever role is longest) from available as second pick.

Skeddar said...

"There is nothing stopping Riot from banning Mid (or whichever role is longest) from available as second pick."

Hm, I hadn't thought of that possibility. I wonder if most people then would just pick Mid as primary position and their favourite position as secondary. I am a Support main, so I don't have enough data, but I am kinda sure Riot's algorithm is pretty much considering the two chosen positions equally important when looking for a match and gives players the position that is needed the most (assuming there is no rigging like the one you described in your post).

Matchmaking is a pretty complex topic itself, adding positions to it just makes it even harder. Which is, according to your current mindest, the perfect situation for rigging I suppose.

Darkgold said...

There's an easy way to find out if you're right- queue support and, whenever you get your secondary role, ask if the person who got support had it selected as a primary or secondary. I suspect that this will happen extremely rarely if at all. People agree to switch because they aren't smart enough to main one or two roles, and just play "whatever feels fun", which is of course subject to change once you actually join the lobby.

Smokeman said...

There is another possibility, it's still rigging, though... but doesn't have to do with who is a paying customer, rather attempting to position everyone as a paying customer.

They want to assign you to random lanes. If different champions are strong on different lanes, a system that randomly places you increases your need for more champions.

It appears that it used to be this way, you got what lane you got. But people wanted to choose, so the current system was thought up, but twisted to retain some randomness.

Also, is it an accident that the play style that requires you to have the most champions and be good at all of them, fill / fill, is the highest rewarded? (quickest queue times.)

The business model is selling champions and skins. Always follow the money.

Anonymous said...

Im a support and sometimes people ask me to trade because they we get a counter when they choose first. But your theory is solid.

Anonymous said...

@gevlon - There are a series of priorities in matchmaking algorithms.

1). Making matches Happen.
2). Making a match fairly even.
3). Making sure a player gets a role they want.

The algorithm is programmed based on those priorities, in that exact order.

You'd need three objects to make a match happen.
1). The player Representative object
2). The queue
3). The matchmaker itself.

The player representative is just a couple of strings generated when you queue up. An ID to represent you and your MMR would be the bare minimum this object needs to work.

The queue is not just one queue. There would be a queue for every single role plus an Autofill queue, and there would be at least one set of these queues for every MMR bracket. When you queue up, the player representative object would be placed into three of these queues: Your primary and secondary roles, plus an autofill. The role you get would be determined by which one of these queues you get to the front of first.

The matchmaker itself would operate sequentially. The roles are filled by the matchmaker in a certain order, unless the queue for that role is empty. Let's say Bob queued for Support Primary, and Mid secondary. If Bob is at the front of both support and mid queues, bob would be placed in whatever slot is pulled first, then immediately pulled out from the front of the other other queue regardless of his preference. If Mid gets to pull from the queue first, Bob gets Mid.

The problem you've noticed is not rigging, but a computer science issue. It's even got a name: The Stable Marriage problem. The company's priority in matchmaking is to make sure that their customers get into a somewhat fair game as quickly as possible. To that end, their solution to the stable marriage problem is that "no one is left unmarried". Your preference for roles has no weight beyond what roles you are specifically queued for, and your preference can be ignored by the autofill entirely if it gets you into a match/makes matches happen.

As you've noticed, Another solution to the problem is demonstrated by World of Warcraft's Dungeon Queue system. It allows you to select all roles your character can play, or you could just select your one preferred role. There is no autofill queue: You only get what you agree to play. DPS queues are notoriously slow, sometimes taking forty minutes to an hour just to get into a dungeon, while tank and healer queues are pretty much instant. In a game where you can go do other things, this system makes sense.

Riot's entire game are the matches. You can't just go play the AH, Duel somebody or farm while waiting for the queue to pop: If you're in a queue, you're not playing the game. It's also not just your needs that they have to think about when making a match: There are 9 other players to think about. You might be willing to wait for your ideal role, but are the other 9 players willing to wait? Do they want to sit in a queue or do they want to play the game? The answer to that for most players would be "I wonder what the queues are like in that competing game".

Riot's interest is in making sure matches are being put together, not making sure a player is always getting their ideal match. To make sure matches are happening, they throw players into roles they don't want.

Smokeman said...

Anonymous at 25 November, 2016 05:02:

"The company's priority in matchmaking..."

No. The company's priority is selling champions and skins. Matchmaking is just what they do to fulfill their main priority.

If MATCHMAKING was the goal, they would just make the roles and champions interchangeable. Boom. Done. Zero queue times.

But... oops... no one would need more champions.

Follow the money.

maxim said...

Those "trivial" solutions won't solve the problem. They will, however, make it even more complicated, factoring in stuff like people choosing wrong lanes for rewards.

Anonymous said...

@smokeman -

Try as we might, nobody has yet figured out a way to get people to buy things for a game they aren't able to play.

The prevailing theory in gaming is that keeping the player playing is what drives profitability. If you are in a Casino, the house will comp you drinks, free nights at the hotel or anything else they can think of to keep you at their tables playing their game. Similarly, companies like riot operate on the idea that the more they keep you playing their game, the more likely you are to purchase their products.

Maximizing the player's access to play creates opportunity for sales while unavailability of play kills that opportunity. That's why the company's priority in matchmaking is making sure you get into a game, rather then making sure you get into your ideal game. No Match, No Sale.

Dàchéng said...

You seem to believe that anything that you can't immediately explain is evidence of matchrigging. Here's a more likely explanation.

Imagine that I am a junior programmer working on League of Legends. My boss gives me a task, which he estimates I can complete in one day. It is this: once a team has been selected, assign them to lanes, taking their stated preferences into account; and make sure it runs reasonably quickly. Have the code complete by this evening, as I have another task for you tomorrow.

Here's the algorithm I would implement:

Put the players in a list.

For each player in the list

..if his first preference is free, assign him to that lane,

..else if his second preference is free, assign him to that lane,

..else assign him the next free lane.

This meets requirements: assign everyone to a lane; take into account their preferences; code executes quickly. I can easily implement and test this code in a day as required. Why would I make things any harder for myself?

Anonymous said...

@dacheng - You forgot a lot of steps.

The matchmaker can't just go through a pool and pull a group of players. There has to be a queue that the matchmaker pulls from. If you have just one queue, most of the games would be completely autofilled because there's no way to guarantee that five people with the right set of roles are entering the queue in the right order, so there are multiple queue: One for each role and an autofill. You are entered into three of those queues, two roles and the autofill. The role you're assigned is determined by which queue you make it to the front of first.

The matchmaker would pull all the players it needs from this set of queues. Would that create a fair game though? Not really, you'd just pull whoever is in front. You need to have multiple sets of these queues, at least one for each bracket but probably more. The server would build a team from this queue then place that team in map of similar teams. It would do some calculations to find a fair match, then place both teams into a match together.

But wait, there's more: The server can't just do this indefinitely, they can only have so many matches going at once. It has to have a limit of how many matches it can make at once, it has to decide which bracket to make a match for and it has to be able to make matches for other brackets if a bracket doesn't have enough players to make a game. Do you want your game server to handle all of that and try to run matches? Hell no, so now you need the matchmaking server to communicate with the game server. How do you manage the player rankings? Well the player needs an account to track their rank, and you have to provide security for their account so now there's an authentication server in the mix. What if some asshole decides to bot or cheat? Now you've got to keep a record of who's participated in a match, and store all kinds of information.

Suddenly, your simple matchmaker takes a couple months to code, at which point it should go through a robust series of tests. Something stupid is inevitably going to go wrong with it, and you're going to have to fix it because you coded it wrong. By the time you're finally done with it, a year or more has gone by and your wife has left you because you've been working 15 hour days the entire time.

Since that's a lot of hassle, Riot probably just bought their matchmaking algorithm from a third party and tailored it to suit their game. Why pay a bunch of coders when you can save the time and just buy similar code from someone who already developed it?

A license for TrueSkill alone would shave months off that whole process.

Dàchéng said...

"Hmm...", say Junior Programmer Dàchéng's boss. "We can either follow Anonymous@26Nov's design, which he says will take a couple of months to a year to code and require us to write not just the lane-assignment code but to rewrite a whole bunch of our other matchmaking code; or buy a licence for somebody else's algorithm and spend months tailoring it to suit our game; or we can implement Dàchéng's quick and dirty lane-assignment algorithm that'll be done in a day. Let me see now. What's it to be? Dàchéng, you deserve a promotion!"