Android25

Mathematics Contributor
  • Content count

    1,221
  • Joined

  • Last visited

3 Followers

About Android25

  • Rank
    [email protected] and shit
  • Birthday 06/02/1994

Profile Information

  • Gender
    Male
  • Location
    Wisconsin
  • Interests
    Computer Programming/Building, Gaming, Working on Computer Science bachelor's degree at UW Milwaukee..
  • Server
    NA

Recent Profile Visitors

14,208 profile views
  1. Unfortunately there's nothing in the API that can give you this type of data, you're limited to games you play, or that people share or upload. You might be able to look at an uploading website, but data would be skewed towards people who actually want to upload their replay.
  2. My biggest fear with this is that they might see that as me trying to circumvent the "max requests per second" rule, which is 20/second for a server. At the moment I'm not even remotely breaking any of the API rules, even though I'm making over 8 million requests in a span of about 10 days. I could make the program go slightly faster by increasing the number of threads, as I calculate I'm only making about 12.5 requests per second at any given time. However, initially my server will only have 8 logical cores, so overloading on threads (especially because they all need to complete before any can start again) would quickly lead to diminishing returns. From what I've seen, I can pull the entire active playerbase in less than 12 days, so I could even run recents every 15 days instead of every 30.
  3. Besides the fact that his sample size is far too small (150 games for HT's and 90 games for TD's wtf is that), I think he's drawing the wrong reasoning for the conclusion of the data. He claims that all tanks should have a 20% chance of being top tier, which would make sense in a perfect system as 3/15 is 20%. However, we know that tier 10 and tier 8 are the most heavily played tiers in the game at any given time. I think you would be very hard pressed to find any given time where the proportion of tier 6 tanks was 2.33x that of tier 8 tanks, or even the proportion of tier 7 tanks 1.4x that of tier 8 tanks. According to what WG has claimed, the system attempts to make 3/5/7 games as often as it possibly can, unless it is unable to produce this scenario, in which case it will start creating 5/10 games and then just whatever it can throw together that follows the tank MM rules in order to find you a game quickly. The simple fact is that there aren't enough tier 6's or 7's playing the game for the system to make as many 3/5/7 games with tier 8 on the top as it can with tier 9 or 10 on the top. Because tier 8 is one of the most played tiers and unlike tier 10, can be bottom tier, it just makes sense statistically that tier 8 in general would have a higher probability of being the majority of the team, and with the mm's current attempt to make the majority of the tanks lower tier, tier 8 tanks tend to not be top tier. The other conclusion he draws is that HT's are being treated differently than TD's because, based on his data, it's obvious that TD's appear as the top tier more often. I think that this also has to do with uneven distributions within the MM itself rather than WG specifically punishing heavy tanks. Just as more players tend to play tier 10 and tier 8 than other tiers, more players tend to play HT's than they do TD's. The patch notes specifically state that "The matchmaker considers the number of light tanks and tank destroyers." That generally means that the number of TD's on either side should be +/- 1 of each other but tier usually isn't accounted, and that would be where most of the skewing is going on. Any TD that gets on one side is almost guaranteed to pull another TD into the match to put onto the other side. I think it's likely that TD's tend to get into the more prime 3/5/7 (Which initially would be pretty evenly distributed until the MM runs out of tier 6 and 7 tanks) games because there are fewer of them than the flood of HT's, and then once all the prime spots are taken, they still have a better chance of getting into the 5/10 MM (which would favor tier 9 and tier 8 vs tier 8 and tier 7 based on tier distribution, especially later when all the tier 7 tanks are used up) before all the rest of the HT's and just a few TD's are simply dumped into whatever the MM can come up with (Which is why in his data HT's got single tier MM more than twice as often as TD's did per game). TLDR: Tier 8 HT's get shafted more often than Tier 8 TD's not because WG did something to specifically punish tier 8 HT's, but because there are generally more of them than any other specific class/tier in the MM queue at any given time and so they tend to get thrown into whatever the MM can come up with rather than WG's "fair distribution".
  4. When people say "But you don't need 32GB of ram"

    XVOgjoM.png

    1. Show previous comments  4 more
    2. ZXrage

      ZXrage

      What about EU, though...

    3. BlackAdder

      BlackAdder

      People are stupid. Modern OS is smart enough to use RAM for cache even if you not using whole RAM. 

      32GB FTW

    4. Android25

      Android25

      @ZXrage EU won't fit either, excel max rows are in the lower one millions. Data from all servers will work fine once the data goes into a database. When I worked with EU data in excel years ago I had to spread it out across multiple sheets to make it fit.

  5. What exactly do you consider "comprehensive data across all clusters"? Because for WNR I'm pulling all tank data from all servers of all players who have played in the last 60 days. That's a little over 8.7 million players, 6.2 million of which are coming from the RU server. The mining has been pulling (optimally) 12.5 accounts per second for the past 7 days (with only a few spots of downtime to fix some program errors) and I've got about 2.7 million accounts left to pull. The expected optimum time to pull all the data was about 8 days, but the RU server is under very heavy load around 4am eastern and the collection average goes down to almost half of optimal during that time due to the number of retries for 504 errors. If I actually tried to pull account data from every player who has account data, that would be 46.2 million accounts and my optimal expected mining time would be about 43 days, which isn't practical.
  6. A VPN would help only assuming that you can connect to it before your ISP routes you the same way. Usually this only happens when a node (or several) owned by the ISP is down. It's cheaper to route traffic to other nodes it controls or someone they have a deal with, than it is to try to go through another providers node. Usually a call to the ISP can at least give you info on why your connection is going everywhere. They are almost certainly aware of the routing. Your connection is controlled wholly by your ISP until it connects to a new network (like a VPN), so you have to be able to get from your computer through your ISP to the VPN without getting routed all over the map or it won't make any difference. The problem is you don't really know where your ISP's node is down or backed up. It would be better to try a free VPN that offers to route through the same location as a paid VPN, before going straight to a paid VPN. Also, many paid VPN's offer connection tests before you have to pay for them.
  7. It's in Java for now. I haven't even truly compiled it, just running it through eclipse until I get all the bugs worked out... I'm shocked that the API can return so many unexpected results but I think I have them all handled now. I should be writing it in one of the C languages because I'll be running it on a Windows server but Java is just so easy.
  8. All tank data on NA, EU, and SEA from players that played a game in the last 60 days (as of about 2 weeks ago) has been pulled. The file sizes are 877MB, 4.203GB, and 580MB respectively. I started pulling RU data 12 minutes ago and assume the file size will be about 3.2 times larger than EU... so about 13.4GB. Edit: RU api seems considerably slower. Same program that took 1:05 to collect 800 players tank data on NA is taking 1:45 on RU.
  9. Could someone on EU do me a favor and in-game look at the service record of Amphibiios

    It's the only account I've found while doing API stuff that has battles but no tanks. It was breaking my program until I added an exception for it.

    A screenshot of the main service record and then one of their tank list (even if it's empty) would be most helpful.

    1. Epic
    2. Android25

      Android25

      Thank you much!

      Strange that it is showing tanks in game but not on the website or through the API...

  10. No, I agree, unicums tend to be able to abuse just about everything in the game... including light tanks with incorrect WN8 values ;)
  11. @canadiantrex @SchnitzelTruck I tried to all-encompass the unicum group in a single block that would give a general understanding of how they play better. I should have mentioned that it wasn't all or nothing, lots of people can play purple (and pull the WR for it) while utilizing lots of different playstyles. When I was writing it I was thinking more of unicums I've seen in batchats and the like that tend to abuse vision early and then use speed, timing and several other skills to take other opponents out when the time is right. I agree that the ability to abuse terrain and understand your tank enough to do so, as well as the ability to abuse armor and quite possibly other players lack of understanding of it, are all traits of different styles of unicum that aren't mutually exclusive.
  12. The lowest 20% of the server (WN8 < 450) are either using a bot to play, are playing only for the fun of driving and shooting a tank(this is a big one), or have a disability hindering their performance. The 20% to 50% band (450 < WN8 < 750) are just learning where to pen tanks, what to NEVER do, and what the rolls of each class are. The 50 to 65% band (750 < WN8 < 900) understand the basic mechanics, understand the important parts of the map (but not usually where their tank would be best suited based on the enemy team), and generally know which tanks they should attack and which they should avoid if they can. The 65% to 85% band (900 < WN8 < 1250) are very similar to the above band but are starting to gain more map awareness and understand some of the more obscure mechanics. They generally know the armor layout of most tanks, and are starting to get an idea of where and how to position their tanks to be more effective. The 85% to 95% band (1250 < WN8 < 1600) are beginning to understand when they should pull back from a flank before it's too late, know some of the more optimal locations to position their tank, have a good understanding of the spotting and vision mechanics through experience more than just reading the wiki. Are starting to notice more opportunities to push or take a shot that lower skill levels would have been oblivious to. 95% to 99% band (1600 < WN8 < 2000) Starts to become obvious that players know not only how vision mechanics work but how to use them to their advantage. They identify opportunities to push and are starting to be able to effectively flex to different flanks depending on their tank. Starting to pick up simple but effective skills that keep other players from hitting them, like wiggling or hugging with certain tanks. 99% to 99.9% band (2000 < WN8 < 2450) Starting to be able to abuse vision mechanics on major flanks and across open areas. Begins to be able to expect what other players will do based on their tank type and location. Starts to understand not only true strengths and weakness of each tank they encounter, but exactly where that tank would be best located and is able to take advantage of the poor positioning of other players. Is far more map aware and can usually effectively flex to another major flank depending on the tank. Are able to focus on shooting while the driving and armor positioning of their own tank is done more through muscle memory. Upper levels 99.9%+ (WN8 > 2450) Not only are able to abuse vision mechanics on major flanks, but can usually do so from any point during transition to another flank. Greatly understand what damage trades are good trades and which they should avoid. Fully understand exactly where each tank on the enemy team should go and can easily take advantage of those not using their tank to its full potential. Are able to understand what a team will likely do based on their known positions and their own teams positions and can set up in unusual but strong locations based on that assumption. Are almost never just waiting for something to happen. If tanks are dark they're either getting themselves to a better position or actively finding the enemy. Understands how to keep calm in total loss situations and can slowly pick off the other team, even in some cases winning the game alone against what would otherwise be a loss. EDIT: I tried to all-encompass the unicum group in a single block that would give a general understanding of how they play better. I should have mentioned that it wasn't all or nothing, lots of people can play purple (and pull the WR for it) while utilizing lots of different playstyles. When I was writing it I was thinking more of unicums I've seen in batchats and the like that tend to abuse vision early and then use speed, timing and several other skills to take other opponents out when the time is right. I agree that the ability to abuse terrain and understand your tank enough to do so, as well as the ability to abuse armor and quite possibly other players lack of understanding of it, are all traits of different styles of unicum that aren't mutually exclusive.
  13. There's no such thing as a 10% WR player. After somewhere between 40% and 45% your skill level has nothing to do with your WR. The biggest problem with this type of analysis is that differences between players lower than about 95% of the server are a lot more difficult to see on any given game or even discern largely from data. The quality of players in the last 5% differ more widely than the players in the lower 95% by a significant amount.
  14. The biggest problem with running any statistical analysis on cap data is that you get to keep your cap points if you win regardless of whether you won by capping or not. If the system treated it like it does capping when losing (ie. not recording them at all), then it would be easy to both use cap data in stats, as it would be far more valuable, and compare cap data against wins. Because there tends to be a lot of cap points given to players who don't need to cap though (it becomes especially farmed when cap data is used in a stat), a large portion of cap points tend to be meaningless to winning but recorded anyway. The experience you can earn from capping is 100, plus the 50% bonus for winning. So say every game you can get an extra 150 experience if you fastcap. You have to look at what other sources of xp are available to you and determine if they're worth more than 150 experience to you and if you can end the game in less than however long the cap timer is. I would say that if there's one or two tanks left with low health, farming cap points would very likely gain you more xp for your time (especially in low tiers where there isn't a lot of hp to begin with), but if there are more than a few thousand hp on the other team then I think you would gain more from killing them regardless of the time it takes.
  15. I ran into some issues collecting my data and decided to get a proper JSON parser as well as clean up the code a little. As long as I was modifying code I decided I may as well write the multithreading as well. I went with 8 threads and switched my API application over to a server instead of mobile (allowing for 20 calls per second instead of 10). At 8 threads the program pulls 800 accounts every ~1:05 minutes, or about 12.5 accounts per second. Now instead of 64 days the entire 4 server active player pull will take between 7 and 8 days. I could up the thread count but the program already pulls a constant 350KB/s of my internet, so i'd rather not; plus returns start to diminish once you go over the logical cores on the server and my server only has 8. The really sad thing is that only 11% of the return information for the API tank calls is actually tank data. The rest is formatting. Now of course you need formatting, so assuming they keep JSON (for some reason), that's 24% of the return information. Which means that their horrendously long JSON tags take up 65% of the return data... They could likely cut their total API bandwidth in half if they had just picked much shorter tag names with documentation of what each of them means. Some examples of way overly long JSON tag names: "battles_on_stunning_vehicles" "dropped_capture_points" "stun_assisted_damage"