A C++ Hearthstone engine built to train your own AlphaGo
RosettaStone simulates Blizzard's card game down to the card text so reinforcement-learning agents can actually learn to play.

What it does RosettaStone is a C++17 Hearthstone simulator that reimplements the game’s rules and card mechanics well enough to run headless matches. It exposes both C++ and Python APIs, ships as a Docker image, and has a separate GUI repo. The goal is to provide a training environment where RL agents can grind through millions of games without Blizzard’s servers noticing.
The interesting bit The project is essentially a clean-room rules engine for a commercial card game—complete enough that some older sets are 100% implemented, while newer expansions trail at 10-60%. The RL angle is still aspirational: the README notes they are “making Python API and related examples” and want to upgrade “The Innkeeper” (the built-in AI) to actually be smart.
Key highlights
- 100% card implementation for Legacy, Expert1, Naxxramas, Blackrock Mountain, League of Explorers, One Night in Karazhan, Rise of Shadows, and Descent of Dragons
- Classic format’s Vanilla Set complete (382/382 cards)
- Standard format coverage is spotty: 98% Core Set but only 10% for recent expansions like Murder at Castle Nathria
- Cross-platform builds: macOS 10.14+, Ubuntu 18.04+, Windows VS2017+, WSL
- AGPLv3 licensed, based partly on SabberStone’s code
Caveats
- The “some reinforcement learning” in the description is doing heavy lifting; actual RL infrastructure appears to be in progress, not shipped
- Card implementation is uneven—if you want to train on Standard meta decks, check whether your cards exist first
- Python API examples are noted as still being made
Verdict Worth a look if you’re building card-game AI research infrastructure and need a headstart on Hearthstone’s rules complexity. Skip it if you want a plug-and-play RL environment or care about current Standard format completeness.