More than a year ago I wrote a pair of posts that World of Tanks, one of the most popular online games cheats its customers. The posts themselves aren't really good, they contain anecdotal and circumstantial evidence. Yet, these posts are my most visited ones even a year later. I mean they get on top of the direct page hits (when someone look for a specific page instead of the blog top page) every new month. I think they resonate with something my readers found themselves.
Since my main focus is EVE, I learned how the Incarna riots changed CCP for the better. I abandoned World of Tanks back then with no hope for it. Now I believe that players can force the developer to fix its messed up game. If EVE could be fixed after it tried to exploit its customers via pay-to-win, WoT can be too. So I thought it's time to revisit that game, this time properly collecting data. So with my girlfirend we started a pair of accounts and started playing. We picked the newly introduced British TDs, because the newly introduced tanks are usually overpowered, so the results will be more obvious. The results indeed came, and they came in such numbers that they way exceeded my original plans. Instead of a revisit post, it will get a 5-pieces series, each focusing on one-one aspect of the cheat, with lot of data and experiments.
Matchmaking must be totally random if there is no official rating and your winrate must only be affected by your performance (after enough matches). Matchmaking should be according to the rules of a tested rating system if there is an official rating ladder to guarantee that your rating represents your performance. An individual shot by your tank must only be determined by stats of your tank, the enemy tank, the terrain and an unbiased RNG. Important note: having a rating system without official rating ladder (hidden rating) is a severe case of cheating, as one player must play much better to win the next battle, but it is considered equal by participants and spectators. Winning at 2300 rating is much bigger task - therefore bigger feat - than winning at 800 rating. Hiding the rating will equalize the two - very unequal - performances.
While it should be obvious, I write it down: cheating in a game is bad, as it takes away the chance to experience flow by destroying one of its necessary elements: "a sense of personal control or agency over the situation or activity". A game against a cheater is frustrating and no one wants to do that. Cheating is grounds to be banned from the game in practically any games. Cheating in a game where the reward is real world money (like poker in a casino) is considered a crime in several countries. Finally, while the game provider is free to set any rules in its own game, they must be made publicly so the players can choose to not play that game. If the rules are hidden, especially if they are against commonly accepted norms of gaming, they are cheats and must be treated accordingly. One can create a roulette machine that never gives black. But one can't place it to a casino without explicitly informing the players as they would play under the commonly accepted custom of black having 50% chance.
I believe no one would give money to play World of Tanks if the game provider was upfront with matchmaking and individual shot rules. The game provider gets its huge amount of income by making the players believe that they participate in fair games where the teammates and opponents are randomly chosen and in case of two identical tanks battling, the outcome only depends on player skill.
What is my aim? Not simply to incite an Incarna riot in World of Tanks. CCP did not cheat, they changed their game openly, giving the players only two choices: take it or leave it. Incarna riots were players choosing "leave it". World of Tanks is cheated, giving a third option: exploit the hell out of it. After identifying how the cheats work and more importantly "why", I designed how can they be exploited to provide players extreme influx of credits and XP at the cost of making the game unplayable to everyone else, without breaking any written rules. This is the beauty of cheating: they can't say "we didn't mean this back-door to be used by you, we placed it for someone else". After reading this series, you'll either uninstall the game, massacre newbies in pimped lowbie tanks for fun or use the exploit to get credits for gold ammo and tier 10 tanks for your clan matches. This will force the developer to change the game to the only unexploitable way: fair.
Today I start with the weakest proof: trends. If the matches are unbiased and you have X winrate, the chance of the next match being won is exactly X. On the other hand every player experiences suspicious winning or losing streaks. This is a weak argument because the chance of 10 heads on 10 coinflips in a row - while very low, 1/1024 - is not at all impossible. If you throw group of 10 coins 1000 times, the chance of not having a group with all on heads is (1023/1024)^1000 = 37%. So I initially wanted to ignore trends, but found a strange pattern repeating itself again and again, so later I started collecting such data and discuss them.
These data are win rate snapshots with the Tier 6 tank AT8. From the account page you can add the recent: 484 battles, 300 wins. Using this data, let's calculate the winrates of the various periods:
- First 29 battles: 24%
- Next 71 battles: 65%
- Next 86 battles:57%
- 198 most recent battles: 66%
Now let's consider the alternative, that the game tries to make every player "average", in order to make no one quit over "too hard" or "too easy". In this case the game estimates your skill and gives help to the bad players and handicap to the good ones. An ordinary player plays with various tanks, giving large sample to the game to calculate with. We only played with a few tanks. Before we started playing AT8, we played 116 matches with only one tank, its predecessor, the AT2. AT2 is a shamelessly overpowered tank. Whoever designed and OK-ed a tier 5 tank with 200mm front armor (as strong as the tier 10 heavies) have no place in gaming design. We made a killing with that tank, making the algorithm believe that we're some kind of super-gamers. So it gave us serious handicaps. Combine that handicap with a new stock tank and you get horrible winrate. When our poor results with AT8 got into the dataset, the algorithm overcompensated, providing 66% winrate which is World top 1000. With these data added to the set, it finally got our "proper" value and we got our place with 57%. Then we left AT8 for the next tanks. Tier 8 enemies are harder than Tier 6, our results with AT15 were worse than with AT8, it's normal. But when we returned to AT8 to farm credits to buy the Tier 9, the algorithm used our AT15 results to calculate handicap, giving once again 66% winrate. The effect was further doubled by two players in the platoon having the same unbalance.
The most recent data from the site is 260/471, let's calculate the winrates of the consecutive periods for the tier 8 AT15:
- First 20 battles: 25%
- Next 28 battles: 57%
- Next 18 battles: 48%
- Next 84 battles: 58%
- 320 most recent battles: 57%
Preparing this to happen again, I wrote down every individual result with the tier 9 Tortoise tank. Remember that I wrote we returned to AT8 to farm credits for Tortoise? So the last data the algorithm got was our 66% winrate when we started playing Tortoise:The graph shows the average winrate up to that match, so the "30" point is the average of the first 30 matches, the "50" is the average of the first 50 matches. Same pattern: terrible start, overcompensation, recompensation. Of course 40% can't be the final result and it would have been interesting to see how the Tortoise runs up to a couple hundred matches, but we ran out of credits and didn't want to pay a cent to the company to get more credits. Farming with other tank would have broken the results, so this is it.
What does the above tell: that the match outcome is pretty surely manipulated, there is an algorithm calculating your strength and then rig the matches to level you to the average. Tomorrow we'll discuss one way of messing with the match: messing with your shots.
PS: If you'd think we purposefully lost to fabricate these results, please wait until Friday before commenting. You'll see that it's impossible to fabricate such data.