30 November 2013

WoW subscribers and Blizzard's strategy

I found this graph of WoW subscribers from launch until end of 2013, but could not track any of its sources. So here's my version of the graph, with the sources below.

The most interesting part of the graph is that Mists of Pandaria (MoP) is the first reported expansion to suffer from churn a few months before release. Blizzard's CEO says that have become much better and much faster at consuming content, and so they would leave when they're done. Have players changed, or has the game changed? Probably both.

The game has fundamentally changed, and this is a result of Blizzard's design approach of depth first and accessibility later. But as the game becomes more accessible, new content is consumed faster. Veteran players agree.

Have players changed? Probably. When WoW launched in 2004, mobile and social games did not exist. Blizzard has always targeted PC gamers. That segment was growing in the early 2000s, but has probably started shrinking in the last 3-4 years. Free-to-play PC games have also bloomed since the late 2000s, and lots of PC gamers would rather play for free than for $15 per month. WoW remains subscription-based because, according to Blizzard's CEO, it was not designed as a free to play game and would not transition to F2P. Keeping WoW subscription-based is a very conservative and obstinate stance, but Blizzard probably lost faith in F2P after the Diablo 3 real-money auction house failure.

Blizzard is conservatively milking its existing games. But I don't see the pay-to-play PC-gamer segment increasing. So Blizzard will have to adapt their game design or die.

date millions of subscribers
23-Nov-04 0 (launch)
17-Mar-05 1.5
14-Jun-05 2
21-Jul-05 3.5
9-Nov-05 4.5
19-Dec-05 5
1-Mar-06 6
11-Jan-07 8
24-Jul-07 9
22-Jan-08 10
31-Jul-08 10.9
28-Oct-08 11
23-Dec-08 11.5
11-Feb-09 11.5
7-Jul-09 6
10-Feb-10 11.5
5-Aug-10 11.5
1-Oct-10 12
4-Nov-10 12
31-Mar-11 11.4
1-Sep-11 11.1
8-Nov-11 10.3
9-Feb-12 10.2
31-Mar-12 10.2
4-Oct-12 10
31-Dec-12 9.6
31-Dec-12 9.6
31-Mar-13 8.3
30-Jun-13 7.7
30-Sep-13 7.6

25 October 2013

Blizzard's Hadoop platform

Talk given by Brian Griffith and Amanda Gerdes at the OC Hadoop user group meeting in October 2013.

Blizzard uses the same Hadoop platform for Diablo 3, Starcraft 2, WoW, and Hearthstone. This platform went live in March 2013. Before this platform, game developers would log game events in log files, and use custom scripts to ETL these log files into relational databases for analysis. Problem: cumbersome, hard to maintain, low performance.

Solution: game developers, on their own, decide what to track in their game, and send that data to the platform. Instead of a log file, the game developers send protobuf objects. The 20 nodes in the Hadoop cluster receive and deserialize around a billion objects per day. The message's headers determine where to store each protobuf object within Hadoop. Blizzard also uses Hadoop as an operational data store. The cluster runs map-reduce jobs to filter and aggregate the stored protobuf objects. Currently, the 20 nodes store 60TB, but now that Blizzard realizes what they can do with Hadoop, they plan a 100-node cluster storing 1PB. Current bottleneck: CPU for deserialization. They rarely hit the disk for data so no IO waiting bottleneck.

For the messaging, they use a federation of machines running RabbitMQ. 50 producers worldwide (China, Europe, US, etc.) and 8 consumers (most likely in the Blizzard headquarters in California). When an Internet cable got cut with China, some messages were queued for 40 hours.

The analysts were using Greenplum for processing game data in parallel and ETL. Now that Hadoop is in place, they could start using Pig for ETL. But sales and customer data still come from relational databases, and the Greenplum is great at ETL. So there is no reason to force analysts into Hadoop. Solution: ETL jobs pull data from Hadoop and store it into Greenplum for warehousing. Greenplum is still in charge of its own ETL jobs.

Some data (such as a character's level or class in WoW) stay interesting across patches, but others (such as transmogrification usage) are only interesting when the feature launches. So the platform allows to build KPIs daily (e.g. activity aggregated per character level) and dive deep on demand.

Use case: WoW economy. Every gold transaction is sent to Hadoop. Reduce step aggregates by NPC id, item id, or player id. Makes it possible to:

  • Check if the gold sinks follow designers' expectations.
  • Detect networks of gold farmers.
  • Keep an eye on auction house prices.
  • More ...