Te recomiendo que dejes que el cliente lo haga manualmente.
Desde el punto de vista del costo, esta vez tienes suerte:
- No espera más de 100 usuarios / día, posiblemente tan bajo como 10 / día
- Tiene un sistema de autenticación, lo que significa que las prohibiciones pueden ser permanentes
- Tiene un cliente que se complace en eliminar nombres (con poca frecuencia)
La realidad es que los 10 minutos que le tomará a alguien revisar las principales tablas de clasificación y prohibir cualquier nombre extremo, simplemente serán más baratos y confiables, que pasar tiempo en una solución de ingeniería (que tendrá problemas).
Con un recuento de jugadores tan bajo, es poco probable que esto deba hacerse con frecuencia, incluso una vez por semana durante el pico es probable que sea suficiente.
Pero tengo mucho tiempo, puedo hacer algo, ¿verdad?
Incorrecto.
Es muy fácil hacer algo mal, que es más perjudicial para la marca del cliente que no hacer nada en absoluto.
¿Quieres usar Regex para atrapar todos los malos nombres? Mejor espero que lo haga perfectamente bien, y también filtre todos los falsos positivos de múltiples bases de datos de nombres internacionales de personas reales:
https://en.wikipedia.org/wiki/Scunthorpe_problem
E incluso si gestionas con éxito lo anterior, los jugadores no son tontos: encontrarán fácilmente una forma de sortear tu sistema para crear un nombre igualmente ofensivo que no estás captando.
Como mínimo, acaba de agregar aún más trabajo para mantener estas reglas actualizadas, en comparación con el pequeño trabajo manual de solo mirar los puntajes más altos y la prohibición.
No, pero en serio, este es un juego para niños: el cliente ha dejado en claro que NO HAY TOLERANCIA para nombres ofensivos. Tiene que haber algo!
Si esto es sinceramente el caso, y no puedes tolerar nombres ofensivos en absoluto. La única solución realista es no dejar que tus jugadores creen sus propios nombres.
Esta es la solución que encontrará en casi todos los sitios web de juegos para niños, como Cartoon Network.
En lugar de dar una entrada en blanco, le da una selección de "partes de nombre" prefabricadas. Por ejemplo:
Un adjetivo, como "Impresionante", "Fantástico", "Astuto"
Un medio, como "Barbudo", "Ojo láser", "Pirata"
Un sustantivo, como "Maestro", "Ganador", "Detector"
Lo que restringe los nombres para mostrar a cosas como "Awesome Pirate Master".
También considere rápidamente qué listas de palabras está utilizando. No tiene sentido implementar este sistema si el usuario puede manipular nombres para obtener cosas que todavía suenan ofensivas o sucias.
Por supuesto, también existe la posibilidad de duplicados, pero puede escribir esto (3 listas de 100 palabras, ya da 1 millón de nombres posibles) debido a la poca cantidad de jugadores que tiene, o si es necesario, aún puede verificar eso nadie más tiene el nombre en el registro.
Siendo realistas, esta puede ser la solución más efectiva si estás seriamente preocupado por los malos nombres. Pero sí necesita hacer un análisis de costos y descubrir si vale la pena incluso hacer este sistema en comparación con simples controles manuales.