Tag Archives: apple

Putting the simulator on the shelf – for now

Though I haven’t made any updates to Deck Simulator for Hearthstone in several months, I’ve decided a bit more formally that I am going to stop development for the time being.

As my first app on the Apple mobile app store, it’s been a great experience and I’ve learned so much. In around nine months I’ve managed to get over 600 downloads, and though that number may seem small I accept it as an honor, and want to think every single person who downloaded and used this app.

There are several reasons I’ve decided to halt development, one of the main ones being I stopped playing Hearthstone. I still believe it’s a great game, and with the recent introduction of the iPhone client I think Hearthstone’s golden age has yet to come.

For those who have used the app recently you probably realized that some cards were missing. Though I have done my best to integrate almost all of the cards from the original sets, the process of adding new cards is unfortunately very tedious and time consuming. It involves manually inputing the card information, modifying the engine where new gameplay mechanics are introduced, modifying the AI to properly accommodate the new elements, and then running extensive tests to see the cards are working and being played in a reasonable way by the AI. Of course with a pretty complex codebase new bugs crop up which need to be fixed before release. I had a great time doing this for the first few hundreds cards, but the magic wore off.

And to be honest, the relative lack of downloads was a factor, although given the plain visual design, awkward visual interface, and missing cards, I’m not surprised by the lack of popularity.

Nonetheless, I am not promising to never work on the project again. If somehow the Hearthstone bug bites me again, I may very well go back to updating things. If you want the project to be continued (by me or someone else), please like this article to show your support. Of course comments on this blog, or reviews on the app store are much appreciated.

Alternatively, if anyone is interesting in purchasing the source code please free to contact me (Email: decksimforhs at gmail.com). I am a supporter of open source but the only reason I hesitate to give it away is the amount of time spent in it, and (what I feel) is potential to make money.

If you’re reading this and were considering downloading the simulator, go ahead and try it. For all the missing cards I still feel there are a wealth of experiments you can perform to help your gameplay, especially for beginning or moderate players. And I don’t know any other tool that provides all the same features, especially the one which rates relative card value.

I started this project with the idea “Hey, wouldn’t making a hearthstone simulator be cool?”, and in that sense it was a major success, without a doubt.

As for a final reason I decided to halt HSSIM, I have decided on trying to develop my own games for iOS. You can see my latest game here (a puzzle game influenced by games such as Go and Othello):


The game’s blog is here, and I am also planning to write about mobile game development in general.



Deck Simulator for Hearthstone Version 1.4 Released! (added all Rogue cards)

Version 1.4 of Deck Simulator for Hearthstone has been released on the Apple app store as a free iPad app.

The main highlight of this version is the addition of all Rogue cards (minions, weapons, and spells), and also the remainder of the Pirate-themed cards, bringing the total number of cards in the database over 400. I’ve added four new decks, three Rogue and one Warrior pirate deck.

Pirate cards (full list here) are one thing I was always curious about in Hearthstone. I didn’t want to spend my precious dust crafting these cards but I wondered how strong of a deck could be made which contained all of them. Though not entirely conclusive, using the simulator I got a strong indication that pirate decks really aren’t that strong (which was in line with my feelings on the matter). However if you know of a Pirate-themed deck that you think is especially good, let me know and I’ll test it out in the simulator and let you know how it performs.

One reason I had been hesitating about adding Rogue cards is because several of them contain a completely unique strategic element, “combo”, which is not used by any other class. Modifying the engine to handle the rules related to combo wasn’t too hard, but I had to do some tweaking of the AI engines to make them play Rogue decks with reasonably strong strategy.

In this release I also added the ability to copy the simulation log. This allows you to save the results of lengthy simulations you ran for later reference, or to save particularly interesting game logs for later. The logs are simple text so you can paste their contents into emails, blog posts, or anywhere else that accepts text. I hope to be showcasing how the AI works in future posts with the help of such logs.




Deck Simulator for Hearthstone 1.3 released (more cards)!

I’m very pleased to announce that version 1.3 of Deck Simulator for Hearthstone iPad app has been released on the Apple App store.

Since I’ve released this app I’ve gotten feedback from several people that there needs to be more cards added to fill out the entire set of Hearthstone cards. Adding cards is a time consuming process but I decided to focus on this for this release. I’ve added all Shaman-class cards as well as all Naxxramas cards, around ~50 new cards for a total of 366 in the database.  Though there are still some cards missing, this brings the percentage of total cards much higher and should make it a much more productive tool.

The Naxxramas cards are especially important since they can involve a lot of work to get hold in the actual game. With this app,  you can play around with the cards you haven’t had a chance to acquire yet.

Besides the new cards I’ve also fixed a bug which made the Planner AI weak in certain cases, and also added card level statistics which appear at the end of each simulation and give important information such as average amount of damage dealt by each card. I’ll write up on a post on this feature soon.

Here is the app’s page on iTunes:


You can also search for it in the app store with the keywords “Hearthstone Deck Simulator”  (without quotes).

Deck Simulator for Hearthstone’s “HELO” rating system

Initially I thought it would be fun to write a simulator which implemented all the rules of Blizzard’s excellent Hearthstone game, and allowed me to experiment with different types of strategies. But the more I work on this project the more I try to think about how others might use this app to enhance their Hearthstone experience.

Playing virtual games of various decks is interesting, and can help you tune a deck to perform better in actual games. But I have a feeling that many people don’t want to execute several runs of simulations and then try and compare the results, since this can be a tedious process with various levels of interpretation. The deck simulator is an experimental workbench for Hearthstone cards, after all.

However, I thought it would be nice if there was an easy way to grasp a deck’s strength, something which would allow a ballpark understanding of it with a single glance.

What I came up with is “HELO”, which stands for “Hearthstone Elo”, where “Elo” is the rating system commonly used in many competitive games, such as chess.

The actual algorithm and it’s analysis can get a bit complicated, but in a nutshell it works by maintaining a rating of strength which decreases when you loose and increase when you win. The amount of ratings adjustment is proportional to the rating of the opponent, and the number of games played by both also factors in.

Deck Simulator for Hearthstone manages this rating for each deck in the system, which is updated after each game and stored for later. The rating is displayed in three places:

  • On the ‘Edit Decks’ screen (bottom right), where it is listed next to the total number of games played in parenthesis (Ex: 1568 (10000)).
  • On the ‘Simulation’ screen’s game results, on the far left in brackets (Ex: [1805])
  • On the Participants detail window which appears when you click on a specific participant on the Simulation screen.

For all decks which come with the app when you download it I’ve already ran some simulations and generated their HELO score, and also configured things so they don’t change much. If you create a new deck it will start with a default rating of ‘1500’, and for the first few hundred games it can change greatly depending on how it performs in the simulator. The most important thing is not the number itself, but how it compares to the existing decks in the database.

One of the challenges with this feature is that the performance of a deck depends on not only the deck composition but also the strategy used by the AI player. I could have added separate ratings for each AI player as well and combined ratings, but to keep things simple I just have generated the existing ratings using only ‘Evl Planner (med)’, which is usually the strongest AI. You can use any AI you like, but for direct comparison you should use the same AI player to the extent possible. If you want to reset a deck’s rating you can simply copy that deck (use the green “Copy Deck” button on the “Edit Decks” screen) and it will start over at a rating of 1500 and 0 games. Another thing to keep in mind is that the rating is not reset when you modify a deck, so if you planning to make serious modifications to a deck you might want to copy it first you can compare the before and after, and have a proper rating for both.

An interesting thing about HELO is that sometimes it doesn’t match up with the overall win percentages of a simulation run (even if all the decks started fresh). The reason for this is that a higher win percentage (say, when comparing two decks) means “this deck won more overall games than this deck”, but a higher HELO means “this deck beat other decks with relatively higher ratings than this other deck”. So you can imagine a generalist deck that is designed to win as often as possible (versus any opponent), versus a specific counter deck targeting the stronger decks, and these would have different HELO vs win rates.

Please try out the latest version (1.2) on the Apple app store (link here) and let me know what you think of the rating system.

If you happen to find a deck over 1900 or so (the highest in the database at present), drop me a line as I’m curious to see it’s composition.



Deck Simulator for Hearthstone – iTunes – Apple

Deck Simulator for Hearthstone V1.2 Released on Apple App Store!

I’m very happy to announce Deck Simulator for Hearthstone‘s 3rd version (1.2) is now available on the Apple App store!

For this release I decided to take a break from adding new cards and focus on adding a few features that will make the tool easier to use and more productive.

For example, I’ve added a very cool feature that allows you to evaluate to what extent each card in a deck is contributing to it’s overall strength, and also added a rating system for decks to easily compare them (HELO = Hearthstone ELO).

For full details of the release please see the app’s page here:


The app is currently completely free, with no ads, though will only be this way for a limited time.

I’ll be writing some more posts in the feature highlighting some of these new features and discussing how to use them.

Deck Simulator for Hearthstone V1.1 released!

I’m very happy to announce V1.1 of Deck Simulator for Hearthstone has been approved by Apple and is currently available on iTunes as an iPad app.

The main purpose of this release was to address a few crashes that I discovered, and also reduce memory used by the simulator. This allows longer simulations to be run without them being stopped due to lack of memory.

One of the crashes occurred when attempting to play a simulation with a deck containing 29 or less cards. I fixed this so it doesn’t crash, but instead gives a warning so you know you are testing a non-legal deck. I decided to allow this because making decks with less than 30 cards can be fun, and even useful when doing deck construction. I’m sure some of you wondered what would happen if you could create a small deck with only a few cards, and now you can actually see how strong such decks would be.

Another bug I fixed was where the default simulation type was “All play all”, even though the button showed “All play first” selected.

I decided to add an extra bonus which is all the cards for the Warlock class (previously they were not in the database), as well as three sample Warlock decks to play around with.

I’m already working on the next release and hope to have that out in a few weeks, but in the meantime try out the latest version and enjoy!

Hearthstone Simulator: “Edit Decks” screen and features

The “Edit Decks” screen of Deck Simulator for Hearthstone, accessible via the button of the same name on the main menu, is where you go to view decks in the database, edit or create new ones, and get some information about decks including crafting cost.

There is a lot of buttons and controls jammed into this screen, and in this post I’ll go over each one in turn to talk about what it does.

Tables: there are three tables on the Edit Decks screen:

Decks (top left): This table shows a list of all the decks in the app’s database of cards, which is stored locally and doesn’t require a network connection to access. The total number of decks currently in the database is listed in parenthesis like this “Decks (17)”

Cards in selected Deck (bottom left): Once you click on a deck in the Decks table, you will see a list of all the cards in that deck here. You can scroll up or down through them. If you want to remove a card from this deck, click on the blue arrow pointing to the right.

Cards in database (bottom right): This shows a list of all the cards in the database after the filter is applied, in the specified sort order. If you want to add one of the cards to the currently selected deck, click on the blue arrow pointing to the left after selecting the card in this table.

Filter/Sort: These two selection controls are below the Cards in database table.

Filter: This determines what subset of cards is shown in the Cards in database table. The options are: All, Minions, Spells, or Weapons.

Sort: This determines what order both the Cards in selected deck and Cards in database are shown in. Options are: Alphabetical (A-Z), Cost, and Type (Minions, spells, weapons).

Card description: The description for the card which was selected last in the Cards in database or Cards in selected deck tables is shown here. Information includes: Type, Cost, Text, Rarity, and Attack and Defense stats (for a weapon, attack and durability will be shown instead).

Search field (top right): You can search through all the cards in the database by typing in a partial or complete name of the card here.

Deck management buttons (top right): These green buttons allow you create a new deck, copy, or delete the selected deck.

Classes (top right, next to management buttons): This vertical slider shows all the supported classes, and the class of the current deck will be highlighted. Also when you create a new deck it will have the class indicated by this slider at creation time. You cannot change the class of a deck once it is created.

Deck stats (left middle, below classes): This area shows the total crafting cost of the selected deck (assuming regular, not gold cards), as well as a “Cards per cost” table that shows how many of each card there is per cost. The first line of numbers (0 1 2 3 4…) have a blue font and represent the costs, and the second line (with turquoise background and black font) show the number of cards in the currently selected deck with that cost.

Rename deck (left middle, below Decks table): This field allows you to change the name of the currently selected deck.

Save to PB/Load from PB (top left): buttons used to save or load a deck to the pasteboard. I’ll discuss these in more detail in an upcoming post.

Save (bottom right): This button saves any changes made to existing decks or any new decks created. Normally leaving this screen via the “Back” button (top left) will automatically save changes, but to be safe you might want to click this button anyway.


(“Deck Simulator for Hearthstone” is currently available on the Apple iTunes store for iPad)