Skip to content

A game built on lying, with no chat panel

Bluff is a simple card game. Players take turns laying cards face-down on a pile, claiming they're playing the rank that's currently up -- Aces, then 2s, then 3s, walking through the deck. You don't have to actually play what you claim. You can lie. Anyone at the table can shout "Bluff!" If they're right, the liar takes the pile. If they're wrong, the caller takes the pile. First to empty their hand wins.

The game is about reading people. You watch your sister set down two cards while claiming three. You watch your dad's face when he says "two Kings." You decide whether to call. If you've played this game with your family for ten years, you know how each of them lies. Mom hesitates a half-second before bluffs. Your brother always bluffs his last card. Your cousin has a tell with her eyebrows.

This is the entire content of the game. The mechanics are a thin frame around six humans staring at each other across a table.

Why this game is in the catalog

Bluff was deliberately picked as a stress test for the platform rather than as the headline content. Three things make it useful:

  1. The claim layer and the truth layer split. Every play has two faces: the public claim ("I played three Kings") and the server-only truth ("I actually played one King, one 4, and one 7"). They diverge whenever someone bluffs, which is most plays. This pushes the role-filtered view rule -- the rule that says the server decides what each device sees, and never sends private state to the wrong device -- harder than any other game in the catalog. If the rule has a bug, Bluff finds it.
  2. Coaching is the showcase. The server keeps a per-player history of every claim everyone has made and what was actually behind it. From that history it can compute, in real time, the Bayesian probability that the current claim is true. That's a calculation a human at a physical table would have to do in their head against tempo, and almost nobody can do it. The coaching layer doesn't play for you -- it whispers a probability to your phone. The game stays a game; you get a hint.
  3. Information-Set Monte Carlo Tree Search. Bluff is the canonical hidden-information game. The AI cannot see other players' cards. The MCTS variant that handles this is ISMCTS, and Bluff is where the AI track picks it up before the engines that need it for stakes (the wargames, the bigger card games).

That's the architectural answer to "why Bluff." The game-design answer is more interesting.

The temptation everyone tries to ship

Here's the design conversation I have, every time, with anyone who looks at the spec.

"If lying is the whole game, you should let people taunt. Add quick-react buttons. Let people whisper to each other across the table -- like, accuse without committing. Add post-game DMs so people can argue about who lied to who and who got away with it."

The platform-Bluff version of this would be a UI awash with emote spam, a chat panel for real-time table talk, friend lists so you could "add the player who lied to you for a rematch," and a leaderboard sorted by deception rating. It's so obvious. Every digital card game does it. Hearthstone has a six-emote vocabulary that exists almost entirely to taunt. Online poker has chat. Online Mafia games have private channels for coordination.

I deleted all of it from the design.

The version of Bluff this platform ships has zero of those features and refuses to grow them later. No emotes. No chat panel. No taunt buttons. No friend lists. No "deception score." No matchmaking against strangers.

The argument

The people playing this game already know each other.

That sounds glib. It's actually load-bearing. Bluff is not a game you sit down to play with a stranger from the internet. The whole content of the game is reading the people you sit across from -- whose tells you already know and who already knows yours. A version of Bluff played against a stranger isn't actually Bluff; it's a deck of cards with a probability problem attached, and the probability problem is computable, which is why the AI can do it. The reason humans play this game with humans they know is that the not-computable part -- the part where you remember Mom always lies on her last card -- is what makes it fun.

If two humans who have never met play Bluff over the internet, the game collapses. There are no tells to read. There is no relationship to mutate. The deception is generic. The game is technically still Bluff but it isn't actually Bluff.

So the platform doesn't bother trying to bridge strangers. Bluff is a game you play with the seven people in the room with you, or the one person on the FaceTime call from out of town who is your aunt, or the friend group that has been playing the same five rotating games for a decade. They reached you because you texted them a room code. They're going to talk during the game by talking -- they're in the same room, or on a video call, or on the family group chat. They're going to talk after the game by talking. None of that is the platform's problem. The platform's problem is the cards.

This is the same argument I make about Werewolf and the same argument behind device profiles. It's not three arguments; it's one rule, applied three different times, and Bluff is where it might be most counterintuitive. A game built on lying is exactly the game where someone pitches "but the chat panel is the soul of it." It isn't. The room is the soul of it. The chat panel is a substitute for the room and a worse one.

What the AI looks like under this constraint

The AI personality work for Bluff is the most technically interesting part of the project for me, and the constraint (no taunting, no friend lists, no leaderboard) shapes it cleanly.

The three personalities -- Steady Eddie, The Prodigy, Old Reliable -- are drawn from the same lineup as every other game in the catalog. (See the AI personalities post for the full breakdown.) The Bluff-specific thing is what they each do with hidden information.

  • Steady Eddie plays the math. He bluffs at a calibrated frequency, calls bluffs when the Bayesian odds support it, and is otherwise unreadable. He's the calibration baseline. Playing him is like playing a chess engine.
  • The Prodigy has a BOREDOM_RATE of 0.10. Ten percent of the time he plays the second-best move -- meaning he sometimes calls a bluff that math says he shouldn't, or commits to a claim he can't back up, and he is occasionally right by accident and occasionally devastating by design. He is the most fun and the least predictable.
  • Old Reliable has a TEACHABLE_SKIP_RATE of 0.5. Half the time, when the right play is to call a kid's transparent bluff, he doesn't call it. The kid gets away with it. The kid learns Bluff by getting away with it for a while.

The thing I want to call out: none of these personalities have a chat surface. None of them taunt. None of them say "good call!" or "got you!" They are AI that plays cards. The personality is in the play, not in a chat bubble. This is the same rule that forbids the human chat panel: the personality is supposed to live in the game, not in a separate channel layered on top of it.

The coaching layer is the only "social" feature

There's exactly one feature that looks faintly social: per-player coaching.

When you're playing, your phone has a coaching toggle. Toggle it on and the server starts whispering probability assessments to your phone -- only yours. "This claim is 78% likely to be true given Player 4's claim history." It's a hint, not a play; you decide whether to call.

This sounds like it could leak across the table. It can't, because:

  • The probability is computed server-side and rendered only on the asking phone.
  • Every other phone, including the TV, sees nothing about the coaching state.
  • The coaching state itself isn't logged in the public game record -- it's a private overlay on top of an unmodified record.

The coaching layer is between you and the server, like a cheat sheet you wrote yourself. It's not between you and another player. The "social" thing the platform offers -- a Bayesian read of your opponents -- is one-sided and silent and never travels off your device.

What this game proves about the platform

Bluff proves the rule the project is built on, by being the game where the rule looks the most inconvenient.

A platform that ships a chat panel for every game has a coherent story: this is a social product, you're here to make friends, the games are an excuse. A platform that ships a chat panel for no game has a different coherent story: this is a board game product, you brought your own friends, the games are the point. Picking one of those stories and walking it forward into a game where the temptation to compromise is maximum -- Bluff, where lying is the entire mechanic -- tells you which story you actually believe.

The platform ships no chat. Bluff has no chat. The version of Bluff that ships is the one where you sit in a room with five people you know and try to figure out who's lying. The platform's job is to manage the cards and refuse to manage the people.