So I’ve been playing a whole lotta HearthStone lately. A lot. I’ve been using Icy-Veins for basic decks and card descriptions to up my game, and although I haven’t gotten anywhere near legend ranking, I have been doing pretty well. I started tracking my game history in OneNote, tracking the cards my opponents have played against me to try and some good openers. I’ve been somewhat limited with my success as I refuse to pay for decks and have been spending all of my gold to buy Naxxramas wings, (I’ve just started the Construct quarter,) and I did find an interesting project that will automate that for me. It’s called Hearthstone Deck Tracker, and in addition to showing me which cards of my deck I’ve drawn and which ones remains, it will also record my opponent’s plays and will even allow me to export them into a deck of my own pretty handy. This tracker belongs to a series of programs which have sprung up that utilize Hearthstone’s debug log to pull this information. Another one is a tool created by Elie Bursztein and his wife used data collected from over 100,000 games to predict what card you opponent will play next. They gave a talk at Defcon where they demoed the tool as well as some of their research on valuing Hearthstone cards, but apparently someone from Blizzard was in the audience and convinced them not to release the tool for fear of ruining the game. One of the things that their tool did have was a tracker that shows card, hand and mana advantage between your opponent, and that does look like something that could be integrated into the Hearthstone Tracker, which is written in C. I’ve been delving into the source code to try and and figure out if I can make any contributions to it.
HearthStone was actually created with the Unity3D development platform, and I’ve been playing around with that lately, having finished several of the tutorial projects with it. I don’t really have too much interest in developing a full fledged 3D game, but it has real object-oriented scripting, unlike GameMaker, which doesn’t fully implement OO methods. Unity seems really powerful, and I’m looking forward to delving into it a bit more and seeing if any projects come from it.
I’ve also been inspired to add to my real life collection lately. Every time I’d go into Barnes and Nobles I’d drool over the Android:Netrunner and other strategy games, and a few weeks ago they had copies of Summoner Wars on sale for half off, and I had to go back and pick one up. It’s a cool game; I’ve only had a chance to play a few games with a few friends, including a 2v1 match that ran on way to late and ended in a draw. And I also caved in and bought A:NR off of Amazon and have played a few games with it. I’ve probably spent more time teaching it to other people than I have playing it, but I found that there’s a version of it on OCTGN, which is like VASSAL on steroids, and I’ve had a couple good matches on there. The best part is that OCTGN and the modules are open source, so I can look through the Python code to see how the game mechanics were implemented. Fascinating stuff.
Halfway between the polished gem of Hearthstone’s Unity engine and the arcane workings of OCTGN/VASSAL games is HEX, a Magic:The Gathering clone that is currently in beta. The mechanics of the game seem strong, but the graphics and the game flow itself seem rather clunky. I’ve only played two games against AI thus far, but the interface has a ways to go yet. I don’t really recall how M:TG online plays in comparision, but it seems like the amount of clicks passing back and forth between players each turn is way to much. One thing I’ve yet to figure out is whether all the cards in Hex will be available by grinding the game, such as in Hearthstone, or whether certain cards will only be available through real-money decks, as I hear was done with the latest Dual of the Planeswalker version.