← all repositories
utilForever/RosettaStone

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.

665 stars C++ Domain AppsAgents
RosettaStone
Velocity · 7d
+0.2
★ / day
Trend
steady
star history

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.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.