Controlli sul gioco leale per il PvP
Un gioco di parole vale tanto quanto l'avversario che hai di fronte. Ecco cosa facciamo per assicurarci che non sia un risolutore automatico.
Aggiornato il 17 aprile 2026 · Di Kurt Bijl

Le mosse sono verificate sui nostri server, non sul tuo telefono
Le mosse online in WordSalvo vengono inviate tramite una transazione Firestore ed elaborate dallo stesso motore Dart puro che disegna il tuo tabellone: regole di posizionamento, incroci, moltiplicatori e validità del dizionario sono tutti applicati lato server. Nessuna informazione su punteggi o parole proveniente da un client modificato viene considerata attendibile.
Il dizionario è un DAWG (Directed Acyclic Word Graph) compilato dalla stessa lista di parole usata dal tuo avversario. L'inglese attinge da liste derivate da SOWPODS, mentre l'olandese usa la lista OpenTaal. Il file è identico a livello di byte su client e server, quindi la contestazione "questa parola non è nel dizionario" non può dipendere dal dispositivo.
Le segnalazioni di parole mancanti o dubbie passano attraverso una coda di revisione umana (la Cloud Function `reviewWordReport`) e vengono integrate negli aggiornamenti del dizionario.
Le partite PvP completate vengono analizzate per individuare schemi sospetti
Quando una partita PvP online termina, una Cloud Function analizza la partita alla ricerca di schemi che suggeriscano l'uso di un risolutore esterno. Questo controllo sul gioco leale serve a segnalare comportamenti sospetti, non a valutare partite di allenamento o la qualità del gioco.
Questo controllo, la funzione `fairPlayAnalysis`, esamina 14 segnali ponderati. Tra questi: brillantezza ≥98% in una partita, serie perfette di sette o più mosse, coefficiente di variazione del tempo di riflessione inferiore a 0,3 (gli umani si attestano sopra ~0,5), giocate rapide e precise sotto i tre secondi con >80% di accuratezza e perfezione in situazioni complesse in cui si trova la mossa migliore tra oltre 200 opzioni legali. Le partite brevi, con meno di otto mosse, ricevono un moltiplicatore di affidabilità di 0,2–0,8× perché i campioni piccoli sono poco attendibili.
Ogni segnale è rilevante solo in relazione a te. WordSalvo mantiene un profilo mobile basato sulle ultime 20 partite per ogni giocatore e ne analizza le deviazioni: superare la propria media di oltre 2,5σ attira l'attenzione, mentre essere costantemente un giocatore forte no.

Avversari umani per impostazione predefinita: l'IA è sempre segnalata
Il matchmaking online attinge da una coda Firestore con una finestra di punteggio di ±200 punti. L'avversario proposto è un altro essere umano che si è unito a quella coda. Non creiamo account fittizi, non usiamo bot con nomi umani e non gonfiamo il numero di giocatori nella lobby.
Esistono avversari IA a quattro livelli di difficoltà (facile, medio, difficile ed esperto) e sono gestiti da una Cloud Function (`onAiTurn`), il che implica due cose. Primo: una partita contro l'IA richiede una connessione di rete. Secondo: ogni avversario IA ha un'etichetta esplicita "IA" nella scheda della partita e sul tabellone. Se non c'è scritto IA, non è un'IA.

Il Premium non influisce sull'esito della partita
WordSalvo ha due opzioni a pagamento e nessuna delle due tocca il tabellone. Un acquisto una tantum Ad-Free rimuove il banner nella lobby e l'interstiziale tra le partite. L'abbonamento Word Master, di prossima introduzione, sbloccherà analisi post-partita più approfondite, tentativi illimitati per i puzzle giornalieri, il Libro delle Parole, matchmaking prioritario e temi cosmetici.
Cosa non cambia con il Premium: l'estrazione delle tessere (il sacchetto è mescolato da `tile_bag.dart` senza controlli sui diritti), il dizionario (lo stesso DAWG per ogni giocatore in quella lingua), il punteggio (moltiplicatori calcolati dal motore, nessun bonus nascosto) o il range del matchmaking. La priorità influisce solo sulla posizione in coda, non sul punteggio dell'avversario.
In altre parole: due giocatori con account gratuito possono raggiungere la vetta della classifica di una lingua con la sola app installata. Lo 0% degli acquisti in-app serve a comprare una vittoria.
La chat ha un filtro; i giocatori possono bloccare, silenziare e segnalare
Ogni messaggio in chat passa attraverso la Cloud Function `onChatMessage`, che applica un filtro di tossicità lato server prima che il messaggio raggiunga l'altro giocatore. Il filtro non è perfetto, come nessun filtro automatico, quindi ogni messaggio è a un solo tocco dalle opzioni segnala, blocca o silenzia.
Le segnalazioni vengono scritte su Firestore e revisionate da noi. I blocchi sono bidirezionali: un giocatore bloccato non può invitarti, sfidarti o scriverti in chat. La funzione 'silenzia' è locale e discreta. Un giocatore che accumula segnalazioni confermate viene gestito manualmente: non applichiamo ban automatici e comunichiamo sempre le nostre azioni.
Cosa succede a un giocatore segnalato
Il documento con il verdetto sul gioco leale (`games/{gameId}/analysis/fairPlay`) è accessibile solo dalle Cloud Functions: le regole di Firestore impediscono ai client di leggerlo, quindi un giocatore segnalato non può vedere un punteggio e adattare il proprio comportamento. I profili per giocatore su `users/{uid}/fairPlayBaseline/{statsKey}` sono leggibili solo dal proprietario.
Quando una partita viene segnalata con un alto grado di affidabilità, il sistema di fair play fornisce a WordSalvo una base più solida per la revisione e l'intervento. È progettato per sostenere la fiducia nel PvP, senza la pretesa che un sistema anti-cheat possa catturare tutto.
Se pensi di essere stato segnalato per errore, contattaci da Impostazioni → Aiuto. Conserviamo uno storico per ogni giocatore abbastanza a lungo da poter spiegare la decisione.
Domande frequenti
- cosa è considerato barare in WordSalvo?
- Usare un motore esterno, un risolutore o uno strumento di anagrammi per scegliere le mosse. Condividere un account per più partite classificate. Accordarsi con un avversario per perdere di proposito o aumentare un punteggio. Sfruttare un bug per inviare un tabellone non valido. Lo studio normale (leggere un dizionario, allenarsi contro l'IA, imparare dall'analisi post-partita) non è barare.
- come verificate l'uso sospetto di motori di gioco?
- Con un'analisi degli schemi sospetti per ogni partita, combinata con il tuo profilo mobile. Il server esamina la distribuzione della brillantezza, le serie perfette, la varianza del tempo di riflessione, il rapporto velocità/precisione e la frequenza dei bingo, poi valuta se la partita è molto al di sopra del tuo livello di gioco normale. Una sola partita brillante non è sufficiente.
- ci sono bot che si fingono avversari umani?
- No. Il matchmaking online propone giocatori reali da una coda Firestore con un range di ±200 punti di valutazione. Esistono avversari IA di livello facile, medio, difficile ed esperto, e ognuno di essi ha un'etichetta IA esplicita sulla scheda della lobby e sul tabellone.
- e se vengo segnalato per errore?
- Rivediamo manualmente le partite segnalate prima di intraprendere qualsiasi azione e ti informiamo quando agiamo: niente ban silenziosi. Se pensi che abbiamo commesso un errore, contattaci da Impostazioni → Aiuto. I profili sono mobili, quindi una partita insolitamente brillante non ti etichetta in modo permanente.
- pagare per il Premium mi dà un vantaggio?
- No. Il Premium rimuove la pubblicità, aggiunge analisi post-partita più approfondite, offre tentativi illimitati per i puzzle giornalieri, il Libro delle Parole e temi cosmetici. Non modifica l'estrazione delle tessere, il dizionario, il punteggio o il livello di abilità degli avversari. Un giocatore con account gratuito può arrivare in cima a una classifica.
- il dizionario è lo stesso per tutti?
- Sì. Ogni giocatore in una data lingua gioca con la stessa lista di parole compilata in formato DAWG, distribuita come file identico su client e server. L'inglese usa liste derivate da SOWPODS, l'olandese usa OpenTaal. Le segnalazioni di parole mancanti o errate vengono sottoposte a revisione umana.