Rogue Video Poker: a roguelite video poker game, and how it got rated PEGI 3 by mistake
Rogue Video Poker is real video poker (deal five cards, hold, draw once) turned into a roguelite on a painted arcade cabinet. It was my own idea, and it went from design document to a playable build on an emulator in about forty minutes, because it was built on the Backpack Battle codebase. Most of the interesting work came after that, and one part of it is a cautionary tale about content ratings.
The game
A run is 12 rounds of 6 hands. Each round has a score target, and rounds 3, 6, 9 and 12 are bosses. As you go:
- the paytable levels up: upgrade full houses, flushes or two pair,
- chips slot into the cabinet and act like jokers: 25 of them, with effects on specific hands,
- extra buttons bolt onto the machine: NUDGE, SWAP, REDRAW,
- the shop is the machine's service menu.
There are six machines (Vegas Classic, Desert Neon, Dust Bowl Carnival, Riverboat Queen, The Speakeasy and Space Age), each with its own twist, from Lucky Sevens to a tarot-card Fortune Teller.
Why video poker
Video poker is an old, unchanging category. The top-ten median on Google Play was about 250,000 installs, and none of the top ten was released in the last year. Nobody had made a real roguelite of it. Hold-and-draw is also a different mechanic from Balatro's pick-five-from-eight, so it isn't a clone. And the audience (older, American, plays daily for years, tolerates ads) is the best fit for my portfolio rules of anything I've built.
Balancing with two bots
npm run sim plays 400 runs with two bots:
- a good bot: Monte Carlo over all 32 possible holds, scored with the real paytable,
- a simple bot that plays the way a casual player would.
Neither uses the extra buttons, so real players have a bit more power. After tuning, the simple bot clears round 1 97% of the time and wins 3–7.5% of runs depending on the machine. The strong bot wins 14–19%.
Two lessons worth sharing:
- A naive Monte Carlo bot plays worse than a simple strategy. Sampling each hold's outcomes independently means the best-looking estimate is often just the luckiest one, which favours high-variance holds. Scoring every hold against the same sampled draws (common random numbers) fixed it. I'll reuse that for any card-game bot.
- A hand must pay on its best paytable line. The engine first paid whichever reading of a hand scored most with the chips, so a full house could pay as Jacks or Better. Correct by the maths, but a real player would call it a bug.
The economy: never sell chips
There's a persistent bankroll. A run costs a buy-in, a full win pays about four times that, there's a free top-up every six hours, a daily one-armed bandit, and a rewarded video for more.
The hard rule: you can never buy currency. Purchases unlock machines (US$0.99 the next one, US$4.99 all of them) and never buy chips or cash. Selling currency in a casino-style game is the line between a game and "social casino", and I'm staying on the game side. Ads are rewarded only.
Is a video poker game allowed?
Simulated gambling with no real money and no prizes is allowed on Google Play. It gets a "Simulated Gambling" descriptor in the content rating, and the audience is 18+. I also checked the Australian position (I'm not a lawyer, and this isn't advice): a gambling service needs a money stake and a prize of value, so free play with no cash-out is outside the gambling licence regime. Since September 2024, games with simulated gambling are classified R18+ in Australia.
How it got rated PEGI 3
My launch tool answers the IARC content-rating questionnaire automatically. It matched questions by their text, and any question it didn't recognise got a default "No".
The phrase it looked for didn't match Play's actual wording of the gambling question. So a video poker game was submitted as PEGI 3, ESRB Everyone, ACB General.
I caught it by reading the issued ratings after submitting, which I now always do. I re-answered the questionnaire honestly and the review restarted. Correct ratings: ACB R18+, PEGI 18, ESRB Teen, with "Simulated gambling".
The fix in the tool: never default a gambling, betting or casino question to "No". If one appears and isn't explicitly answered, the tool stops and asks, quoting the exact wording. Every answer is logged. Defaults are fine for questions where "No" is safe. They're a liability for any question where getting it wrong is a policy violation.
Seven countries
A day after approval, Google removed the game from Algeria, Iran, South Korea, Libya, Qatar, Syria and Yemen, where simulated gambling is banned, and asked me to stop targeting them. My launch tool had ticked every country.
The game's launch config now has an excludeCountries list, and the countries step fails while any listed country is still targeted. Production went from 178 countries to 172 (Syria isn't in Play's list to begin with). Any casino, poker or slots game I make in future starts with that list.
Other choices
- AdMob allows gambling ads in this app only. It's a gambling-themed game for adults, and blocking them would starve the auction.
- My other games' "More games" lists don't link to it, because it's 18+, though it links out to them.
- The title: "Rogue Video Poker: Wild Machines" was 32 characters, over Play's 30-character limit, so the store title became "Gone Wild: Rogue Video Poker".
It ranks #1 for "rogue video poker" and nowhere yet for "video poker", which is where the searches actually are. The long tail first, again.


