Thursday, 20 March 2014

A few updates


  • The tank top wasn't updating for a while due to disk space issues. Now the server has been upgraded to a larger database, so I'm expecting the tank top to update again on a weekly basis. I've just launched a new re-calculation process, but it will take some time to complete.
  • Replays from WoT 8.11 are having issues. It seems like WG has changed the file format, or the library I use to parse it isn't compatible with something that they use. If anyone has ideas as to why, please let me know.
  • My friend Garrett has posted some interesting World of Tanks related graphs here, based on replay data from NoobMeter. If you have suggestions what to add, let me know and I will convey them.
  • Another of my friends, James, has launched Imagoid, which is a nice way to view tank image galleries on Reddit, including as a slide-show; a few examples:

Saturday, 1 February 2014

WN8 player & clan tops now supported

WN8 rating is now available for player & clan tops.

I've written before about WN8 and consider it a very good rating - thanks to everyone involved for creating it.

Also, if you got an account re-roll (battle history cleared) from WG, you should now be able to clear the NoobMeter profile as well.

Monday, 7 October 2013

WN8 Rating alpha testing

Some of you will have noticed that player pages now include a "WN8 Rating (alpha-test)" in place of "WN6 Rating".

This is an early testing version of the WN8 Rating being developed by Praetor77, bjshnog, and many others (this is not an exhaustive list).


Brief FAQ follows, subject to be updated later:

Q. Is it the final WN8 rating?

A. No. The rating is only in testing stage, and subject to changes by the authors.


Q. How does it work?

A. It uses the same kind of "expected stat" calculation, and comparison with the actual attained stats as NoobMeter's Performance Rating uses for damage, but it applies it not only to damage, but also to spots, frags, defense points, and win rate.

It then applies a number of caps and weights to the resulting values to attain the final rating.

The exact formulas are:

rDAMAGE = avgDmg / expDmg
rSPOT = avgSpot / expSpot 
rFRAG = avgFrag / expFrag 
rDEF = avgDef / expDef 
rWIN = avgWinRate / expWinRate

rWINc = max(0, (rWIN - 0.71) / (1- 0.71))
rDAMAGEc= max(0, (rDAMAGE-0.22) / (1-0.22))
rFRAGc = min(rDAMAGEc+0.2 , max(0, (rFRAG-0.12) / (1-0.12)))
rSPOTc = min (rDAMAGEc+0.1 ,  max(0, (rSPOT-0.38) / (1-0.38)))
rDEFc = min (rDAMAGEc+0.1 , max(0, (rDEF-0.10) / (1-0.10)))

WN8 = 980*rDAMAGEc + 210*rDAMAGEc*rFRAGc + 155*rFRAGc*rSPOTc + 75*rDEFc*rFRAGc + 145*min(1.8,rWINc)

The coefficients for tanks used to calculate all the exp* ratings in case of WN8 are published here:
http://www.noobmeter.com/tankList

Edit - formula updated to version from 10th of October

Q. Is it in your opinion a good rating?

A. Yes.

While some of the parameters may still need tweaking, the ideas are extremely sound, because, same as NoobMeter Performance Rating, it considers individual tank performance.


Q. Is this rating developed by NoobMeter?

A. No. The rating is developed by the authors as listed above.

NoobMeter is likely the first (and so far only) site supporting the rating, and thus helps in the testing of the rating, but, like the WN7 and WN6 ratings before this, it is not a NoobMeter rating. Only the Performance Rating is a NoobMeter rating at the moment.


Q. Why did you remove WN6? It is still used by XVM!

A. Each rating I use takes up database space (most importantly index space, which needs to be kept in operating memory). Therefore, NoobMeter can only support a limited number of ratings without needing to upgrade to a more powerful database server (which involves additional costs).

Also, WN6 is in practice extremely similar to WN7, so I suggest everyone just uses WN7 instead.

Overall, WN8 is a significant improvement over WN6, so it is time to move on.

Q. What is the scale?

A. Expanded compared to WN7 in both directions, but with the same average. Bad players get lower ratings than they did for WN7, good players get higher ratings than they did for WN7.

Please refer to the following for how NoobMeter assigns player ranks to different WN8 values:
http://www.noobmeter.com/calculatorDescriptions

Q. I have comments / objections / etc. about the rating!

A. You can post questions about the rating's implementation in NoobMeter here, but for anything related to the actual rating, please contact the authors of the rating in the official WN8 rating thread. Thanks.

Wednesday, 25 September 2013

Another tank damage value rebalance

Another WoT nominal damage value rebalance has been performed to better (re-)balance tanks, taking into consideration the changes made by WarGaming in the latest patches.

As before, the damage values can be found at http://www.noobmeter.com/tankList.

Thanks go out to crux_tm, ufoncz and others for their help on this.

Edit - on average, expected average damages have been raised by 2.6%, so in many cases your PR rating will go slightly down - but that applies to everyone.

Edit - adjustment to PR formula made so that average damages for tanks remain the same, so the rebalance should lower some ratings and raise others, depending on the mix of tanks played.

Sunday, 11 August 2013

Moving to a faster DB server

Down-time was experienced today due to moving to a faster database server. I'm hoping this will help the performance of NoobMeter, as the number of people using it and thus the database size seem to continuously increase.

Please let me know in the comments if you think performance is an issue or not, and on which functions in particular.

If I don't hear from you, I will focus more on new features rather than performance optimization.

Sunday, 28 July 2013

NoobMeter Performance Rating algorithm description

Introduction

NoobMeter Performance Rating is rating players primarily on win rate and damage.

Win rate, because winning is what in my opinion matters the most. I think a lot of the other parameters are easily manipulated, such as by suicide scouting, only shooting at near-dead enemies to boost kills, capping when there is no need for it, or even camping near base and farming defense points - in all of the cases not helping the team that much, but having a chance to boost some parameters for some of the ratings.

I think where this spotting, killing capping, defending is productive and helpful, it will be reflected at win rate.

So why not stop at win rate? Because it can be farmed by CW, tank companies or good platoons. However, when doing this it becomes difficult to achieve good damage, as clan or platoon mates will also play well and compete for doing the damage.

Damage is also somewhat hard to boost, especially if you want to do it in conjunction with win rate.

Therefore, a combination of both is a set of parameters that you cannot boost without helping the team. So the best way to boost NoobMeter Performance Rating is by playing the game well, and trying to help the team win.


Win rate component

Win rate part is easy - we linearly give more points for winrates higher than the average ones, and less points for winrates lower than average ones.

winrateRatio = playerWinrate / expectedWinrate
expectedWinrate = 0.4856
winrateWeight = 500
winrateComponent = winrateRatio * winrateWeight


Damage component

Damage part calculates the expected damage that the player should have done, based on the tanks he has played. Tank nominal damage is specified per each tank separately, but usually the differences between tank tier-type combinations are small or often non-existent, for example, t10 meds have ~2100 damage, t10 TDs ~2600, t8 heavies ~1400, and so forth. The list is available at http://tanks.noobmeter.com/tankList.

These values are what a good (not average, but better than average!) player should do in a particular tank, and are based primarily on representative data collected from player game profiles (which include the damage information) and other sources.

expectedDamage = sum of all individual tank expected damages
 expectedDamageAdjustment = 0.975 // introduced on 25-Sep-2013
individual tank expected damage = battles * tankNominalDamage
damageRatio = playerDamage / (expectedDamage * expectedDamageAdjustment)
damageWeight = 1000
damageComponent = damageRatio * damageWeight


Tying it together

We simply add the winrate and damage parts of the rating together, but then apply low-tier and low-battle penalties in case the rating is excessively high for low-battle or low-average-tier players.

beforePenalties = winrateComponent + damageComponent
performanceRating = beforePenalties with "seal-clubbing" penalties applied


Low-tier and low-battle penalties for high-rating players only

First penalty threshold:
clearedFromPenalties1 = 1500 
expectedMinBattles1 = 500
expectedMinAvgTier1 = 6

Second penalty threshold:
clearedFromPenalties2 = 1900 
expectedMinBattles2 = 2000
expectedMinAvgTier2 = 7

Penalties only apply if beforePenalties rating is above the penalty thresholds, and it only applies to the portion of the rating which is above it. They only apply if either battle count or average tier is below the threshold values, in which case they slightly lower the part of the rating which is above the threshold.

Here is the penalties logic (applied twice for each of the two sets of penalty parameters):
subjectToPenalties = beforePenalties - clearedFromPenalties;
lowTierPenalty = max(0, 1 - (avgTier / expectedMinAvgTier)); 
lowBattlePenalty = max(0,  1 - (battles / expectedMinBattles)); 
whichPenalty = max(lowTierPenalty, lowBattlePenalty);
totalPenalty = min(pow(whichPenalty, 0.5), 1);
afterPenalties = subjectToPenalties * (1 - totalPenalty);
result = (clearedFromPenalties + afterPenalties);


Other aspects

The algorithm also notices missing battles from WG and attempts to make up for them in the expected damage.

I haven't fully described VK3601H malus application as it applies for extremely rare players. It basically boosts VK3601H expected damage in cases where a player has significantly better stats in it than other tanks. I'm tempted to just remove this logic altogether, as VK3601H hasn't been OP in a long time; maybe apply special processing to the few players who have mostly played VK3601H when it was OP and haven't played tanks much since.

Edit: September 1, 2013 - OP tank (VK3601H) handling has now been removed from the rating.

Final notes

I'm sure there will be plenty of people saying parameter X is too big, and others saying same parameter X is too small.

In practice, the NoobMeter Performance Rating works very well for ranking players, so as before, for me to seriously consider any changes they need to be accompanied by examples of where players are ranked incorrectly.

That being said, I'm as usual open and looking forward to constructive feedback on the website and the rating.

Thursday, 20 June 2013

"Why have my ratings changed!?"

I'm getting quite a few questions about changes to rating values, mostly in the form of "why have my ratings changed?"

The short answer is - ratings have changed because 0.8.6 did a big artillery reshuffle.

Basically, most of the high-tier arties got raised a level or two in 0.8.6, so for people who played these SPGs their average tier went up. And because all the ratings use average tier information (some directly, some less directly), the ratings change from that (most by quite small values).

I have already adjusted Performance Rating a bit to compensate for that (for example, I removed the "average tier adjustment" of +2 tiers for SPGs that was there). Still I will check later on if  more tweaks are needed.

For WN7 and ER I don't control these formulas so I will wait until their creators decide to change them (or decide to leave them as they are).

But in any case - these changes apply consistently to everyone, and I retro-fitted them to previous snapshots to avoid any strange "ratings jumps", so hopefully they don't cause much disruption.

P.S. Also, the biggest confusion is for servers where 0.8.6 is not applied yet, so they will see their t8 arties as t10 arties already in NoobMeter. Hopefully they get 0.8.6 soon and all is well again.

P.P.S. Creators of ER rating have declared they will not adjust the ER formula, but will adjust the way it is interpreted.