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

    Posted 6 years, 9 months ago (Source)

    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

    Posted 6 years, 9 months ago (Source)

    Are the tuning changes aimed at impacting game time exclusively or are you hoping to reduce the increased "snowball" nature of games since the 2018 changes? Or is the increased "snowball" issue one of player perception not backed up by data?

    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.




Tweet