Ti consiglio di lasciare che il client lo faccia manualmente.
Dal punto di vista dei costi, questa volta hai fortuna dalla tua parte:
- Non ti aspetti più di 100 utenti / giorno, probabilmente solo 10 / giorno
- Hai un sistema di autenticazione, il che significa che i divieti possono essere permanenti
- Hai un client che è felice di cancellare i nomi (raramente)
La realtà è che i 10 minuti che ci vorranno affinché qualcuno guardino le migliori classifiche e vietino qualsiasi nome estremo - saranno semplicemente più economici e più affidabili di quanto tu passi del tempo in una soluzione ingegneristica (che avrà problemi).
Con un numero di giocatori così basso, è improbabile che ciò debba essere fatto spesso - anche una volta alla settimana durante il picco sarà probabilmente sufficiente.
Ma ho un sacco di tempo, posso fare qualcosa di giusto?
Sbagliato.
Puoi facilmente fare qualcosa di sbagliato, che è più dannoso per il marchio del cliente che non fare nulla.
Vuoi usare Regex per catturare tutti i nomi cattivi? Spero che tu abbia capito bene, e anche filtrare tutti i falsi positivi da più database di nomi di persone reali internazionali:
https://en.wikipedia.org/wiki/Scunthorpe_problem
E anche se gestisci con successo quanto sopra, i giocatori non sono stupidi: troveranno molto facilmente un modo per aggirare il tuo sistema per creare un nome altrettanto offensivo che non stai catturando.
Come minimo, hai appena aggiunto ancora più lavoro per mantenere aggiornate queste regole, rispetto al piccolo lavoro manuale di solo guardare i punteggi più alti e vietare.
No, ma sul serio, questo è un gioco per bambini: il cliente ha chiarito che NON può esserci TOLLERANZA per i nomi offensivi. Deve esserci qualcosa!
Se questo è onestamente il caso, e non puoi tollerare affatto nomi offensivi. L'unica soluzione realistica è semplicemente quella di non lasciare che i tuoi giocatori creino i propri nomi.
Questa è la soluzione che troverai su quasi tutti i siti Web di giochi per bambini, come Cartoon Network.
Invece di dare un input vuoto, si dà una selezione di "parti del nome" premade. Per esempio:
Un aggettivo, come "Fantastico", "Fantastico", "Astuzia"
Un mezzo, come "Bearded", "Laser-eye", "Pirate"
Un sostantivo, come "Master", "Winner", "Detector"
Il che limita i nomi visualizzati a cose come "Awesome Pirate Master".
Dai anche una rapida considerazione delle liste di parole che stai usando. Non ha senso implementare questo sistema se l'utente è in grado di modificare i nomi per ottenere cose che sembrano ancora offensive o sporche.
Certo, c'è la possibilità anche per i duplicati, ma puoi scriverlo (3 elenchi di 100 parole, già danno 1 milione di nomi possibili) a causa del numero di giocatori che hai, o se necessario, puoi comunque verificare che nessun altro ha il nome al momento della registrazione.
Realisticamente, questa potrebbe essere la soluzione più efficace se sei seriamente preoccupato per i nomi cattivi. Ma devi fare un'analisi dei costi e scoprire se anche realizzare questo sistema vale davvero la pena rispetto ai semplici controlli manuali.