The short answer
RLCard gives you the training pipeline: Gym-style environments, built-in RL agents (DQN, NFSP, CFR), and a standard Python API for iterating on algorithms. Open Poker gives you the live arena: real opponents, public leaderboard, hosted execution, no infrastructure to maintain. Use RLCard to train your model. Use Open Poker to find out if the training actually worked.
Side-by-side comparison
| Feature | Open Poker | RLCard |
|---|---|---|
| Primary purpose | Live competitive platform | RL training toolkit |
| Real opponents | Yes, bots from other developers | No, self-play or scripted |
| Training infrastructure | Not provided | Built-in (DQN, NFSP, CFR, Deep CFR) |
| Public leaderboard | Yes, 14-day seasons | No |
| No-code path | Yes, 5 strategy templates, hosted deploy | No, Python required |
| Games supported | 6-max No-Limit Hold'em | NLHE, Limit Hold'em, Leduc, UNO, Mahjong, more |
| Hosted execution | Yes, server-side 24/7 | No, local training only |
| Time to first hand | Under 5 minutes | Hours of setup plus training |
| Cost | Free, Pro from $5/season | Free, MIT license |
| Built by | Solo developer (Joao Carvalho) | Texas A&M University |
When RLCard is the right choice
Pick RLCard when you want one or more of these:
- Train an RL agent from scratch. RLCard ships with DQN, NFSP, and Deep CFR implementations. If you want to experiment with reinforcement learning on poker, this is where you start.
- Work on multiple card games. RLCard covers Hold'em, Leduc, UNO, Doudizhu, Mahjong, and more under a single API. If you are comparing algorithms across games, the shared framework saves time.
- Reproduce published research. Several papers use RLCard as the baseline environment. If you want to reproduce or extend those results, use the same library.
- Fast iteration on self-play. Training happens in your own Python process. You can run millions of hands per minute depending on the environment, which is orders of magnitude faster than any live platform.
When Open Poker is the right choice
Pick Open Poker when you want one or more of these:
- Live opponents you did not write. Self-play has a ceiling: your agent learns to beat itself, not to beat strategies it has not encountered. Open Poker gives you opponents with genuinely different playing styles.
- A public ranking. Your bot is visible on the leaderboard alongside every other bot on the platform. No hiding behind self-play metrics.
- Hosted 24/7 execution. Open Poker runs your bot for you. No infrastructure, no reconnects to maintain, no process supervision.
- A no-code entry point. Most developers do not want to start by training a DQN. Open Poker lets them pick a preset template, deploy, and iterate from a working baseline.
How to use both together
The combined workflow is: train with RLCard, validate with Open Poker. In practice this means:
- Install RLCard. Pick a game environment close to Open Poker (6-max No-Limit Hold'em is supported natively). Run self-play with DQN or NFSP until your agent converges on a stable strategy.
- Export the trained model. For DQN that is a weights file you can load later. For NFSP it includes both the policy network and the strategy.
- Write an adapter that converts Open Poker game state into the format your trained agent expects. The state on Open Poker is straightforward: pot, community cards, your stack, opponent stacks, valid actions. Most of the translation is one-to-one.
- Run the adapter as a bot on Open Poker. It connects, receives game state, calls your trained agent for actions, and sends them back. Full bot is usually 100-150 lines of Python including the adapter layer.
- Watch the bot play real opponents. If the win rate on Open Poker matches what you saw in self-play, your training generalized. If it does not, that gap is the most valuable feedback signal in the whole pipeline.
Frequently asked questions
What is RLCard?
RLCard is an open-source Python toolkit for reinforcement learning research on card games, developed at Texas A&M University. It provides environments for poker variants (No-Limit Hold'em, Limit Hold'em, Leduc, UNO, Doudizhu, Mahjong) with a standard OpenAI Gym-style API. It also ships with example agents including DQN, NFSP, and CFR implementations.
Can I train an RLCard agent and deploy it on Open Poker?
Yes, with a thin adapter. RLCard gives you a trained agent that expects game state in its own format. Open Poker exposes a simple message protocol for sending state and receiving actions. You write an adapter that reads Open Poker state, converts it to the format your RLCard agent expects, calls the agent, and sends the action back. The adapter is usually under 150 lines of Python. This is the recommended pattern for developers who want to train locally and validate on the platform.
Is RLCard free like Open Poker?
Yes. RLCard is open source under the MIT license. Gameplay on Open Poker is also free for everyone, with an optional Pro tier at $5 per season (with bundle discounts) for a Custom Bot builder, richer analytics, and shorter rebuy cooldowns. Neither tool costs anything to use for the basics.
Does RLCard have a leaderboard or multiplayer support?
No. RLCard is a research library, not a platform. There is no public leaderboard, no matchmaking, no hosted opponents. Training happens through self-play or against scripted opponents within the library. If you want to see how your agent performs against real developers, you need a platform like Open Poker to host the actual matches.
Which should I pick if I am new to poker AI?
Start with Open Poker. Deploy a preset strategy template, watch it play real opponents, and develop intuition for what matters at the table. Once you have a baseline and want to try reinforcement learning approaches, bring in RLCard for the training side. Starting with RLCard alone is frustrating for beginners because self-play training is slow, the reward signal is noisy, and you never see your agent in the wild.
Ready to deploy your RLCard agent?
Create a free Open Poker account, grab your API key, and write the adapter. 7-day plan