Bluetracker
Tracks Blizzard employees across various accounts.
Average game length has been reduced by 1:44 since the gameplay update
I know Blizzard intended to make the earlier game more important. And they seem to have succeeded in that effort. But did they intend to cut the average game time by 8.5%?
TL;DR: The average game uploaded to HotsAPI ends 1:44 quicker than they did before the gameplay update. For the days between December 3rd and December 12th the average game time was 20:26. For the days between December 18th and December 27th the average game time was 18:42.
There has been a lot of posts recently on how the the 2018 game changes have made the game easier to snowball. People have also been complaining about very quick games. While they are technically different, heavily snowballed games should result in a faster average game time. I decided to run some queries against HotsAPI.net to see how the average game length has changed since the patch. As far as I know, neither Hotslogs or any of the sites that use HotsAPI have any way to see average game length over for all games. If I had more patience to use this API I'd try to do something similar with finding the average level difference in games and how that's changed since the gameplay changes.
I had some limitations in gathering data. I used Google sheets and scripting to pull the data. Maybe someone better than me can pull some better data, but I started to get frustrated. The documentation on what/how you can pull info and the limitations kinda sucked. I could only get 100 replays when pulling from Replays, and paged replies are limited to 100 per page also. So I pulled as many pages as I could before the API would crap out. I didn't do any error checking so I don't know if I was running out of data and screwing my shit up or if HotsAPI was telling me to fuck off every now and then, but it would crap out often. Here is the data I grabbed.
Day Avg. Game Length Pages queried 12-3 1231.2335 20 12-4 1230.9915 20 12-5 1230.1695 20 12-6 1218.564 20 12-7 1226.5305 20 12-8 1228.588 20 12-9 1209.122 15 12-10 1227.879 20 12-11 1227.879 20 12-12 1225.396 20 Avg 1225.6353 19500 games 12-18 1140.911 10 12-19 1113.288 10 12-20 1120.749333 15 12-21 1117.954 15 12-22 1115.3825 8 12-23 1130.171333 15 12-24 1120.783333 15 12-25 1116.84 15 12-26 1125.86 20 12-27 1121.989333 15 Avg 1122.392883 13800 games Here is the code.gs
// Function Game Length // Parameters are Start Date, End Date, and Number of pages you want to pull. There are 100 results per page. If enter in more pages than there are results then it'll Error, smile clap // Have to use the paged api because replays will only give you 100 replays. with paged we can just iterate through the pages and add everything up // Disclamer: I don't write code. I haven't written code since college. I just kind of understand this stuff and wrote this up in a few hours after work. // Hopefully HotsStat.us or hotslogs implements this better so we can see how changes affect game time in the future function gameLength(start, end, pages) { //lets get some variables started. var gamelengthSum=0; //gonna use this later to add up all the game lengths (in seconds) var dataAll; //gonna use this to parse the JSON reply var response; //gonna use this to pull data from the API var total=0; //this will be the total number of replays we get throughout the pages, in case the last page doesn't have 100 entries //lets set the fetch options to get, header content type, and to shut up the exceptions var options = { method: "get", headers: { 'Content-Type': 'application/json' }, muteHttpExceptions: true, } //The meat //start at page 1, add up the game time from the 100 games, go to the next page and do it again for (var k=1;k<=pages;k++){ response = UrlFetchApp.fetch("http://hotsapi.net/api/v1/replays/paged?page="+k+"&start_date="+start+"&end_date="+end, options); //response = UrlFetchApp.fetch("http://hotsapi.net/api/v1/replays/paged?page="+k+"&start_date=2017-12-14", options); dataAll = Utilities.jsonParse(response.getContentText()); Logger.log(dataAll); for (var i=0;i<100;i++){ gamelengthSum = gamelengthSum + dataAll.replays[i].game_length; total++; } Logger.log(gamelengthSum); } //calculate the average game length from the sum of all the game times and total replays we got var avgGameLength = gamelengthSum / total; Logger.log(avgGameLength); return avgGameLength; }
BlizzTravis
Game times are running a bit faster than we'd like now, particularly in high MMR bands. There are some tuning changes coming soon to help out with that.
BlizzTravis
They're tied together. The shorter game times are largely driven by the strength of push, particularly with mercenaries, allowing the leading team to take structures and end before the other team has time to come back.
Increasing the strength of pushing with mercs is intended, but its likely a bit too strong right now.