I’ve been sitting on some data I collected a while ago, and it’s finally time I do some analysis of it.
World of Warcraft was, and to a lesser degree still is, a popular online role playing game. Other the years I’ve sunk more hours into it than I care to admit. One of the things that always fascinates me about these games is their economies. Entire academic papers have been written about them. Seriously. When I played WoW back during it’s heyday, I found the rush at the beginning of an expansion or launch of a new server interesting. All the players rushed to be the first one to reach max level, get rare crafting items and kill the toughest bosses. But I always wondered what that looked like economically.
In 2016 I had the opportunity to find out. You see, the game has changed considerably over the years but players still like to go back and experience the good old days. Unfortunately, this is difficult for an online game. Blizzard, the company that first made the game, are are finally considering launching servers to let players play the way things used to be, but for now the only way to do it is through 3rd party private servers. Blizzard shut down the largest of these in 2016, which made players scramble to several other smaller servers. One of these, Kronos, decided to open up another server to accommodate the new people. I saw the news articles about the shutdown and in a burst of nostalgia decided to play on this newly created server. This is a “vanilla” server, which means that it is the original version of the game before any expansions came out.
So here I was on a fresh server with all my previous knowledge about the game. Like all online games, WoW has an in-game auction house where players can buy and sell items for gold. The game also has a wide variety of 3rd party user interface add-ons, including one that allows you to scan all the items currently posted on the auction house. Over time this allows players to determine what a fair price is for a certain item to help with their trading. I installed this add-ons and poked around in the files. Turns out the data for the latest snapshot is stored in a Lua file. So I whipped up a simple Python file that would further condense the data and save it off to another folder. As I played the game and the server aged, I collected a history of the server’s economy.
An example of the auction house user interface and the add-on with additional information. The data is a little weird. Players can list auctions with a starting price and allow others to bid until it expires. They can also list a buyout price, which is what most buyers end up paying since they don’t want to wait a day to get an item. This effectively means that the only available data is what sellers are asking for the item, not what people actually pay. Someone can list an item for a unrealistic price and even though nobody actually buys it, it’s included in the data.
The interesting thing about the economy of a new server is how it changes over time. Prices are obviously determined by supply and demand, but these are not constant. Some items can only be found by killing high-level or low-level enemies. This means that rare items should start off expensive, but get cheaper over time as more players are able to acquire them. It also means that once players move on from lower-level enemies there is a lower supply of those items, so they might increase in price.
At the same time, the economy experiences inflation. Players receive money through killing enemies and completing quests, and when this happens money is added to the economy. There are several “sinks” like repairing armor or buying mounts from a non-player characters that reduce the money supply, but in general it increases over time.
So it is important to know what players are doing to understand how that relates to the economy. Luckily, there is another add-on for this. The Census add-on allows you to use the game’s player search feature to do a scan of everyone who is currently playing. After several scans at different times of day, you can get a pretty decent picture of how many people are playing and what their levels are. On a vanilla server, players have a maximum level of 60. So over time we would expect the population to drift to this max level, and then eventually see the majority of the population stay there.
The server launched in mid May, most players reached 60 by July, and I stopped taking regular auction house snapshots around early September. Let’s compare the population distribution by level at the beginning and end of when most people are leveling.
In the first screenshot, most people are still at low levels. The median is somewhere around level 25 and it tapers off quickly the higher you get. In the second screenshot, 882 people have hit 60 while some stragglers are still leveling, or are leveling new characters. The distribution of people leveling is roughly the same, but with fewer people. So starting in July, we can expect the economy to mostly stabilize since most people are able to get high-level items.
I know this post has been verbose, but this background is important to understanding my analysis. In my next post I will go into more detail about my analysis of the data and some conclusions about this economy.