Hearthstone Ladder and Arena Simulator
One of my favourite games at the moment is Blizzard’s online card game Hearthstone.
This article is about my attempts to answer the following questions about the game:
Roughly how many games would I expect to have to play and win to reach Legendary rank in Ladder play?
How good a player would I need to be to make a profit (in in-game gold) playing Arena?
Read on for the answers.
There have been other attempts to answer these questions on the internet but they often seem to centre on the idea of a player’s “win rate”. That is, the percentage of his total number of games played that a player has won. I think this makes some sense for Arena play where opponents are relatively randomly matched. However, in constructed play one works one’s way up a ladder, hence will be playing more and more difficult opponents as one progresses. This means that a win rate calculated on the basis of play against weak opponents won’t be valid as your opponents improve.
To address this I created a relatively simple agent-based simulation where players are given an Elo Rating, with ratings randomly assigned from a Normal Distribution. Players are randomly matched to players with similar star ladder rankings, with the outcome of a simulated match being decided with a probability weight based on the players’ relative Elo ratings.
As expected, the better players reach Legendary status the fastest, with the best player (in one particular sim run) needing 177 games, of which he won 126, equating to a win rate of 71%. The next best players had win rates around 60% and needed 300-400 total games to reach Legendary.
The so-called average player, with Elo Rating exactly in the middle of the distribution needed around 2400 wins corresponding to a 50% win rate in order to hit Legendary.
I don’t think you can read too much into these results. They assume that Hearthstone is a game of skill, whereas I think chance plays a much higher role in the outcome of a given match than you might think. Skilled players do generally do well, but anyone who has played knows the frustrating of being dealt a bad opening hand and being powerless to deal with an opponent’s plays.
However, one thing you can safely assume - if you want to hit Legendary this season you’re going to have to put in a fair amount of time at the table.
While I was in a code-writing mood, I also put together a simulation of Arena game play. This time I assumed you could make predictions based on win rate calculations and came up with the following table:
Win Rate shows your measured win rate - that is, number of game wins you have, divided by total number of games you have played.
Profit/Loss shows the amount of gold (or equivalent in dust and/or cards) that you will gain or lose on average for each arena run you complete if you play at that Win Rate.
If you are in a Red row - ie if you are only winning roughly one in three of your arena matches, then you are making a loss and would be better off spending your gold on packs, rather than on arena entry tickets.
In the Yellow zone your play is good enough to make you better off playing arena than you would be buying packs, but you’re still not making a profit. You’ll still need to do daily quests to make enough money to purchase arena entry tickets.
Once your win rate gets above 65% and into the green zone you are making a profit on each arena run, in addition to the pack you earn for arena entry.
Bear in mind, though, that even with a phenomenally good 75% win rate you’re still only expecting to make around 100 gold per arena run, each of which could take you an hour or so. Not only that, but that 100 gold profit won’t always be paid out in gold. Quite often you will receive an equivalent amount of dust or cards, instead. Still, this ought to be enough to ensure you never have to pay real money to enter an arena again.
Rough source code for these experiments is here