Vai al contenuto
Torna a tutti i progetti
Case Study DettagliatoIn produzione

AirPoker

Web app serverless per il Texas Hold'em in tempo reale: manager di fiches per mazzi fisici e tavolo virtuale completo con gestione automatica di piatti secondari e sincronizzazione multi-device.

Ruolo & Contributo

Ideazione, Architettura, Sviluppo Full-Stack & UI/UX

Anno di Sviluppo

2026

Stack Tecnologico

  • React
  • TypeScript
  • Vite
  • Tailwind CSS
  • Firebase Auth
  • Cloud Firestore
  • Firebase Hosting

Architettura Algoritmica

Risoluzione a Cascata dei Side Pot

Quando più giocatori vanno all-in con stack differenti, AirPoker calcola deterministicamente i livelli di impegno e frammenta il piatto in layer indipendenti.

Scenario di Gioco Esempio

Giocatore AAll-In

20€

Giocatore BAll-In

50€

Giocatore CCall 100€

100€

Struttura dei Piatti Risolti

Piatto Principale (Main Pot)60€

20€ da A + 20€ da B + 20€ da C

Eleggibili: A, B, C

Piatto Secondario (Side Pot 1)60€

30€ da B + 30€ da C

Eleggibili: B, C

Eccedenza non coperta (Refund)50€

50€ non chiamati da C

Restituiti direttamente a: C

Regola di Risoluzione allo Showdown: I piatti vengono valutati e assegnati dal piatto secondario più alto verso il piatto principale. Se il Giocatore A ha la mano migliore in assoluto, vince solo il Main Pot (60€), mentre il Side Pot 1 (60€) va al migliore tra B e C.

Il Problema

L’idea di AirPoker è nata da un’esigenza concreta: giocare a Texas Hold’em con gli amici nei parchi o da McDonald’s senza doversi portare dietro una valigetta pesante con centinaia di fiches di plastica, col rischio costante di perderle o fare errori nel conteggio dei piatti.

Spesso avevamo con noi un mazzo di carte tradizionale, ma mancavano le fiches; altre volte non avevamo né mazzo né fiches ma volevamo comunque fare una partita rapida tra smartphone. Le app di poker esistenti sugli store richiedevano registrazioni invasive, acquisti in-app di fiches fittizie, annunci pubblicitari continui e connessioni a tavoli con sconosciuti, rendendo impossibile una partita privata immediata e senza attrito.

Cosa Fa AirPoker

AirPoker è una Progressive Web App responsive progettata per funzionare all’istante su qualsiasi browser mobile o desktop, offrendo due modalità di gioco distinte:

  1. Manager di Fiches per Mazzo Fisico: I giocatori al tavolo usano un vero mazzo di carte fisiche gestito a mano, mentre l’applicazione sincronizza lo stack di fiches, i bui, le puntate, i rilanci e la suddivisione esatta del piatto tra tutti i partecipanti in tempo reale.
  2. Tavolo Virtuale Completo: Distribuzione automatica delle carte private e comunitarie (flop, turn, river), gestione dei turni con timer, animazioni di puntata e calcolo del vincitore allo showdown con valutazione algoritmica dei punti.

L’accesso a una stanza avviene in pochi secondi tramite codice stanza o link diretto, senza registrazione preventiva.

Le Sfide Tecniche Più Complesse

1. Calcolo Cascading dei Piatti Secondari (Side Pots)

La logica più complessa del Texas Hold’em riguarda le situazioni di all-in multipli con stack disuguali. Quando tre o più giocatori vanno all-in con importi differenti (es. Giocatore A con 20€, Giocatore B con 50€, Giocatore C con 100€), il piatto deve dividersi in un piatto principale e molteplici side pots accessibili solo ai giocatori che hanno coperto il rispettivo importo. AirPoker implementa un algoritmo deterministico che traccia l’impegno di ciascun giocatore per livello di puntata e distribuisce ogni piatto secondario in ordine inverso di eleggibilità allo showdown.

2. Sincronizzazione in Tempo Reale e Concorrenza

Gestire lo stato distribuito di una partita su Firestore richiede la garanzia che due azioni simultanee (es. un fold e un raise allo scadere del timer) non lascino il tavolo in uno stato incoerente. Utilizzando transazioni atomiche di Firestore e sottoscrizioni reattive onSnapshot, ogni mutazione dello stato di gioco viene validata e propagata a tutti i client connessi con latenza sub-secondo.

3. Motore di Valutazione delle Mani (7-Card Hand Evaluator)

Al momento dello showdown, l’algoritmo deve combinare le 2 carte private di ciascun giocatore con le 5 carte comunitarie, identificare la migliore combinazione di 5 carte tra le 21 combinazioni possibili e confrontare i ranghi (dalla carta alta alla scala reale, considerando kicker e pareggi) per assegnare correttamente i piatti.

Lo Stack Tecnologico & Decisioni Architetturali

  • React & TypeScript: Garantiscono tipizzazione rigorosa per l’intera macchina a stati del gioco (stati del tavolo, azioni permesse per turno, strutture delle mani e dei piatti).
  • Vite & Tailwind CSS: Build ultra-veloce e interfaccia dark-mode ottimizzata per schermi touch, con feedback tattile visivo e contrasto elevato per l’utilizzo all’aperto.
  • Firebase Anonymous Auth: Permette ai giocatori di unirsi a una stanza con un solo tocco, creando un’identità temporanea persistente per la durata della sessione senza richiedere email o password.
  • Cloud Firestore: Database NoSQL documentale in tempo reale, sfruttato con un modello dati orientato agli eventi e regole di sicurezza per proteggere le carte coperte degli avversari.
  • Firebase Hosting: Distribuzione su rete CDN globale con zero costi infrastrutturali e disponibilità istantanea.

Risultati e Considerazioni

AirPoker ha dimostrato che è possibile costruire un’esperienza multiplayer in tempo reale fluida e complessa a costo zero di infrastruttura, sfruttando un’architettura serverless ben progettata. Il progetto ha consolidato competenze avanzate nella modellazione di macchine a stati complesse, nella gestione della concorrenza distribuita e nel design di interfacce mobile-first senza attrito.