Inspiration

Every family has its card game, and every family plays it slightly differently. Card apps usually ship one game with one set of rules. We wanted one table for all of them: the classics you grew up with, plus the house rules that make them yours.

What it does

PlayCards is a multiplayer card-game platform for phones:

  • 20+ games in the catalogue: Belote, Tarot, Spades, Euchre, Gin Rummy, Whist, Mau-Mau, trick-taking and shedding games, solitaire and more, each with its written rules.
  • Play with friends in seconds: create a table, share a room code or QR code, and friends join from iOS or Android. Empty seats fill with bots.
  • A rules editor: build your own game in 6 steps (deck, players, table, turns, winning, values) and draw your own card faces in the deck editor. The engine deals, runs the turns and decides the winner from that configuration.
  • A community catalogue: share a game you designed; others can play it after moderation.
  • Progression and style: avatars, card designs, backs and felts to collect, seasonal events, badges, friends, and emotes at the table.
  • Works in portrait and landscape, in English, French, Spanish and German.

How we built it

  • Unity (C#), every screen built in code. The rules engine has no Unity dependency, so it is unit-tested on its own.
  • Photon PUN 2 for real-time play: the master client owns the game state and validates every action; clients only send requests.
  • Supabase for cloud saves, the community catalogue and moderation reports.
  • RevenueCat for every purchase on both stores, behind one small Store boundary:
    • one-time purchases: premium games, an everything bundle, cosmetic packs, seasonal packs, a welcome offer, and remove ads
    • the Table Pass subscription (monthly or yearly, with a 7-day free trial on the yearly plan), which unlocks every game, the whole wardrobe, larger tables (up to 10 seats) and statistics
    • entitlements are refreshed from CustomerInfo at every launch and by a listener, so renewals, refunds and lapsed subscriptions apply right away; prices come from the default offering
    • purchase funnel events (paywall_view, purchase_started, purchase, purchase_failed) feed our own back office.

Challenges we ran into

  • Mapping one entitlement to different product ids per store (Apple never reuses a deleted product id).
  • Keeping trademarked game names out of the catalogue and the store listings: every game has a generic name.
  • Making the rules engine general enough to express Belote and Tarot and still decide who wins.

Accomplishments that we're proud of

Shipped on both the App Store and Google Play, in four languages, with a full store catalogue (games, packs, and a subscription with a free trial) wired through RevenueCat.

What we learned

Building monetization early and cleanly behind one boundary made it cheap to try new offers: bundles, a welcome offer, seasonal packs and price changes shipped without touching game code.

What's next for PlayCards

Tournaments, more seasonal events, and more community games.

Built With

Share this project:

Updates

Submission history