NG
2026
Deal Breakers - 3D Multiplayer Card Game

Deal Breakers - 3D Multiplayer Card Game

Game Developmentthree.jsReactTypeScriptMultiplayerWebRTCFirebaseCryptographyWeb Audio

A browser card game for friends who are not in the same room. Up to eight players sit round a 3D table as cartoon characters and play Badam Satt (Sevens) or No Limit Texas Hold'em with play chips, talking over built-in voice chat. No sign-up: share a room code and play. Built with React, three.js and Firebase, with a cryptographic shuffle so nobody can see another player's cards.

Overview

Deal Breakers ("Deal. Bluff. Break hearts.") started as a way to keep game night going with friends in different cities. It runs in the browser with nothing to install and no account: one player starts a table, shares a 12-character room code, and everyone joins from their own device. It has two games: Badam Satt (Sevens, opened by the 7 of hearts), played solo or in teams, and No Limit Texas Hold'em poker with play chips.

Key Features

  • A 3D table: every player is a cartoon character in a chair who throws the card they play, knocks on the table to pass, pushes chips in to bet and acts out emotes
  • 12 characters to pick from: The Bluffer, The Panic, The Gremlin, The Boss, The Drama and more, each with its own build, face, outfit and idle personality
  • Voice chat: talk to the whole table, only to your team, or privately to the player you are helping. Everyone sees the two characters whispering, but only they hear it
  • Teams and helpers: in Badam Satt a team plays as one seat; in poker a player who folds can get up and stand beside a player still in the hand to help them
  • Pranks: tap another player to throw a tomato, an egg, a chappal, a cream pie or a water balloon at them, or blow an air horn to tell them to hurry up
  • Announcer: big stamped words and sound cues for the moments worth a reaction, like the opening 7♥, a team down to its last card, all in, showdown and the winner
  • Up to 8 players per room, and late arrivals can join a poker table between hands

Fair Play Without a Server

There is no game server. Every browser runs the game, so the hard part was making sure nobody can cheat by reading the database or changing their own client:

  • Mental-poker shuffle: every player or team locks and shuffles the deck in turn using elliptic-curve cryptography, so no player, host or database owner can see another hand
  • End-of-game check: when a game ends, every browser replays it and checks that nobody passed while holding a playable card
  • Encrypted rooms: names, moves, emotes and voice signalling are encrypted in the browser, and the key comes from the part of the room code that never reaches the database
  • Chips can't be faked: stacks are rebuilt from the list of moves on every device, so no player can change their own balance

Technical Implementation

  • React + TypeScript + Vite for the app and screens
  • three.js for the table, lighting and characters. The characters are built from code out of simple low-poly shapes, so the game ships no model files, and three.js only loads once a table is on screen
  • Firebase Realtime Database for room state and signalling, with Anonymous Auth and database rules that enforce who can write what
  • WebRTC voice mesh between players
  • Web Audio for the announcer and sound effects
  • Unit tests for the game rules, poker hand ranking and side pots, and the crypto

The source code is private.

Screenshots

Deal Breakers lobby: four characters round the table with the invite codeBadam Satt: a full hand fanned out on the 3D tableTexas Hold'em: the turn card being dealt, with chips in the pot

Links

Always open to connect

Want to connect or collaborate?.