Я рекомендую просто дозволити клієнту робити це вручну.
З точки зору витрат, на цей раз вам пощастило:
- Ви очікуєте, що не більше 100 користувачів / день, можливо, низький, як 10 / день
- У вас є система аутентифікації, тобто заборони можуть бути постійними
- У вас є клієнт, який радий видаляти імена (рідко)
Реальність полягає в тому, що 10 хвилин знадобиться, щоб хтось переглянув верхні лідери та заборонив будь-які крайні імена - просто буде дешевше і надійніше, ніж ви витратите час на інженерне рішення (що матиме проблеми).
При такій низькій кількості гравців навряд чи це потрібно буде робити часто - навіть раз на тиждень під час піку, ймовірно, буде достатньо.
Але у мене достатньо часу, я можу зробити щось правильно?
Неправильно.
Ви можете дуже легко зробити щось не так, що більше шкодить бренду клієнта, ніж робити нічого взагалі.
Хочете скористатись Regex, щоб зловити всі погані імена? Будемо сподіватися, що ви зрозумієте це абсолютно правильно, а також фільтруйте всі помилкові позитиви з декількох баз даних міжнародних імен реальних людей:
https://en.wikipedia.org/wiki/Scunthorpe_problem
І навіть якщо ви успішно керуєте вищезазначеним, гравці не тупі - вони дуже легко знайдуть шлях навколо вашої системи, щоб створити не менш образливе ім’я, яке ви не ловите.
Як мінімум, ви щойно додали ще більше роботи щодо оновлення цих правил, порівняно з невеликою ручною роботою просто дивлячись на найвищі бали та заборону.
Ні, але серйозно, це дитяча гра - клієнт дав зрозуміти, що НЕМАЄ ТОЛЕРАНТНОСТІ для образливих імен. Має бути щось!
Якщо це чесно, ви не можете терпіти образливих імен. Єдине реалістичне рішення - це не дозволяти гравцям створювати власні імена.
Це рішення, яке ви знайдете майже на всіх дитячих ігрових веб-сайтах, таких як Cartoon Network.
Замість того, щоб давати порожній вклад, ви надаєте добір попередньо створених "частин імен". Наприклад:
Прикметник, такий як "Чудовий", "Фантастичний", "Хитрий"
Середина, наприклад "Бородатий", "Лазерне око", "Пірат"
Іменник, такий як "Майстер", "Переможець", "Детектор"
Що обмежує відображувані імена такими речами, як "Awesome Pirate Master".
Також швидко розгляньте, які списки слів ви використовуєте. Немає сенсу реалізовувати цю систему, якщо користувач може переплутати імена, щоб отримати речі, які все ще звучать образливо або брудно.
Звичайно, є можливість і для дублікатів - але ви можете це списати (3 списки по 100 слів, вже дає 1 мільйон можливих імен) через те, як мало гравців у вас, або за потреби - ви все ще можете перевірити це ніхто більше не має прізвища при реєстрації.
Реально це може бути найефективнішим рішенням, якщо ви серйозно переживаєте за погані імена. Але вам потрібно зробити аналіз витрат і виявити, чи справді виготовлення цієї системи справді того варте порівняно з простими ручними перевірами.