Why classic Monte Carlo still wins at DouDizhu
It trains agents to play DouDizhu, a three-player Chinese card game whose 10,000-move action space breaks most standard RL assumptions.

What it does
DouZero is a reinforcement-learning framework built to play DouDizhu, the most popular card game in China. It trains agents from scratch via self-play to compete as either the Landlord or one of the two Peasants. The catch is that legal moves change drastically every turn, and the action space spans roughly 10^4 possibilities—far larger than what most standard RL algorithms comfortably handle.
The interesting bit
Rather than chasing the latest policy-gradient fashion, the authors revived classic Monte Carlo methods, augmenting them with deep neural networks, action encoding, and parallel actors. Starting from scratch on a single server with four GPUs, the system reached first place on the Botzone leaderboard among 344 agents after days of training.
Key highlights
- Tackles a three-player, imperfect-information game mixing competition with implicit cooperation (two Peasants versus one Landlord).
- Uses Deep Monte Carlo (DMC) with action encoding to wrangle an action space of approximately 10^4 legal moves.
- Ships pretrained models for two reward objectives: Average Difference Points (
DouZero-ADP) and Winning Percentage (DouZero-WP). - Offers an online demo, a local demo option, and a Google Colab notebook for experimentation.
- Community forks have added ResNet backbones and full-auto gameplay integrations.
Caveats
- Training expects GPUs; Windows users are restricted to CPU-only actors.
- CPU evaluation works, but the README notes GPU evaluation is “much faster.”
Verdict
Grab it if you research imperfect-information games, large action spaces, or mixed cooperative-competitive RL. Pass if you want a polished consumer card-game bot—this is a training framework and research artifact.
Frequently asked
- What is kwai/DouZero?
- It trains agents to play DouDizhu, a three-player Chinese card game whose 10,000-move action space breaks most standard RL assumptions.
- Is DouZero open source?
- Yes — kwai/DouZero is open source, released under the Apache-2.0 license.
- What language is DouZero written in?
- kwai/DouZero is primarily written in Python.
- How popular is DouZero?
- kwai/DouZero has 4.6k stars on GitHub.
- Where can I find DouZero?
- kwai/DouZero is on GitHub at https://github.com/kwai/DouZero.