Polecam po prostu pozwolić klientowi zrobić to ręcznie.
Z perspektywy kosztów tym razem masz szczęście:
- Oczekujesz nie więcej niż 100 użytkowników dziennie, być może nawet 10 dziennie
- Masz system uwierzytelniania, co oznacza, że zakazy mogą być trwałe
- Masz klienta, który chętnie usuwa nazwiska (rzadko)
Rzeczywistość jest taka, że 10 minut zajmie, aby ktoś spojrzał na najlepsze tabele liderów i zakazał wszelkich ekstremalnych nazw - będzie po prostu tańszy i bardziej niezawodny, niż spędzasz czas na rozwiązaniu inżynieryjnym (które będzie miało problemy).
Przy tak niskiej liczbie graczy jest mało prawdopodobne, że będzie to wymagało częstych działań - nawet raz w tygodniu w szczycie może wystarczyć.
Ale mam dużo czasu, mogę zrobić coś dobrze?
Źle.
Możesz bardzo łatwo zrobić coś złego, co jest bardziej szkodliwe dla marki klienta niż nic nie robić.
Chcesz użyć Regex, aby wyłapać wszystkie złe nazwiska? Lepiej mieć nadzieję, że zrobisz to idealnie, a także odfiltrujesz wszystkie fałszywe alarmy z wielu baz danych międzynarodowych nazwisk prawdziwych ludzi:
https://en.wikipedia.org/wiki/Scunthorpe_problem
I nawet jeśli uda ci się to zrobić, gracze nie są głupi - bardzo łatwo znajdą sposób na obejście twojego systemu, aby stworzyć równie obraźliwe imię, którego nie złapiesz.
Przynajmniej dodałeś jeszcze więcej pracy, aby zaktualizować te zasady, w porównaniu do niewielkiej pracy ręcznej polegającej na sprawdzaniu najwyższych wyników i banowaniu.
Poważnie, to jest gra dla dzieci - klient wyjaśnił, że nie ma ŻADNEJ TOLERANCJI dla obraźliwych nazwisk. Coś musi być!
Jeśli tak jest w istocie i nie możesz w ogóle tolerować obraźliwych nazwisk. Jedynym realistycznym rozwiązaniem jest po prostu nie pozwalanie graczom tworzyć własnych nazwisk.
To rozwiązanie znajdziesz na prawie wszystkich stronach z grami dla dzieci, takich jak Cartoon Network.
Zamiast podawania pustych danych wejściowych, podajesz wybór gotowych „części nazw”. Na przykład:
Przymiotnik, taki jak „Awesome”, „Fantastic”, „Cunning”
Środek, taki jak „Bearded”, „Laser-eye”, „Pirate”
Rzeczownik, taki jak „Master”, „Winner”, „Detector”
Co ogranicza wyświetlane nazwy do takich rzeczy jak „Awesome Pirate Master”.
Szybko zastanów się, jakich list słów używasz. Nie ma sensu wdrażanie tego systemu, jeśli użytkownik jest w stanie manipulować nazwami, aby uzyskać rzeczy, które nadal brzmią obraźliwie lub brudnie.
Oczywiście istnieje również możliwość duplikatów - ale możesz to odpisać (3 listy po 100 słów, już daje milion możliwych nazw) ze względu na to, jak mało masz graczy, lub w razie potrzeby - nadal możesz to sprawdzić nikt inny nie ma nazwy przy rejestracji.
Realistycznie może to być najskuteczniejsze rozwiązanie, jeśli poważnie martwisz się złymi nazwiskami. Ale musisz przeprowadzić analizę kosztów i dowiedzieć się, czy nawet stworzenie tego systemu jest tego warte w porównaniu z prostymi kontrolami ręcznymi.