Rozwijamy MMO za pomocą Smartfox Server. Grupą docelową są dzieci w wieku od 7 do 12 lat.
W tym MMO dostępna jest opcja czatu globalnego.
Cokolwiek użytkownik wpisze w polu tekstowym, wyświetla się obok awatara użytkownika po wciśnięciu klawisza enter.
Chcemy filtrować obraźliwe treści / wulgaryzmy z tego czatu.
Możemy przechwycić czat i przeczytać tekst. Problemem jest uzyskanie samej listy wulgaryzmów.
Nasze pytania są
- Gdzie można uzyskać wyczerpującą listę wszystkich przekleństw?
- Jaka metoda została zastosowana w podobnym scenariuszu, aby je odfiltrować?
Odpowiedzi:
Don't.
Filters don't work. At least, only filters don't work. Whitelists, blacklists, it doesn't matter. Neither of these will ever prevent kids from harassing each other. The only way to make this work would be to not filter the chat, but to provide large building-blocks for sentences. For example, a kid might select "Do you want to..." and the options for "go to..." and "trade..." would be pulled up. Selecting "go to..." would bring up a list of places in the game.
Disney zdecydował się na tę metodę dla swojego MMO „Toontown” po tym, jak ich 14-letni testowy test na białej liście postanowił „przykleić [swoją] żyrafę z długą szyją do [ich] puszystego białego królika”. Mówiąc wprost, nie można umieścić na czarnej liście ani na białej liście wystarczającej liczby słów, aby zapobiec nadużyciom.
Biorąc to wszystko pod uwagę, gdybym projektował dziecięcą MMO, w rzeczywistości zaimplementowałbym rygorystyczny filtr czarnej listy, ale tylko jako drugą linię obrony. Pierwszą linią obrony powinni zawsze być moderatorzy i możliwość zgłaszania nadużyć. Ważę słowa z czarnej listy, a każdy użytkownik otrzymuje tajny wynik tego, jak wulgarnie starają się być.
Chances are, any user who will try and circumvent your filter will trigger it first. The more obvious profanities, (as opposed to obscure or outdated ones,) or more repeated profanity attempts, put them on a watch list for moderators, or some sort of ban list. This way, moderators can focus on users who seem to be trying to harass others instead of wasting their time reading the comments of still-innocent kids.
źródło
In response to people saying to not provide the filter, I would argue that you have to provide a filter, for no other reason than to cover your own butt with respect to the parents of your intended audience. Just make sure it can be disabled by the user. By implementing a profanity filter (albeit an imperfect and totally optional one), you can say that you've done everything expected of you to protect the sensibilities of your younger audience.
By making it possible to disable, you discourage users from trying to circumvent it using clever punctuation or substitution, since people who favor that sort of language will immediately disable the filter on their own computers, and will have long since forgotten that a filter even exists.
With that understanding, don't worry so much about the implementation. It doesn't need to be foolproof (which is good, because it can't be foolproof), but it should be relatively complete and as un-intrusive as possible. That is, you wan't to make sure you don't make the "clbuttic mistake".
The implementation can be extremely simple -- get a word list, and replace any words found in the list with asterisks or something similar. Best to search for whole words only, as well.
As for a word list, that's easy: http://www.google.com/search?q=profanity+word+list
Remember, it doesn't have to be all-inclusive, it just has to be representative of a valiant effort on your part to protect the children.
źródło
I would try to implement a solution allowing for a blacklist and a whitelist, where you could add 'cunt' to the blacklist, and 'scunthorpe' to the whitelist for example.
I don't believe that you could ever implement a failsafe solution, so I'd try to get the most "popular" words in your dictionary, and make it as easy as possible to add new words to the lists.
The reason for this is that languages, especially english, constantly evolve and something that has been inoffensive for decades could become offensive in the right context.
Try to get the most words possible and go from there, have quick reaction times when people complain and show that this is generally a concern and I doubt you'll have any problems.
It would be a good idea to know exactly what the guidelines are for censorship in the US: MBNL! (me be no lawyer!)
źródło
As I commented, filtering all offensive words is really hard - but you could turn it around, and use a whitelist of allowed words. Doing a google search, it seems fairly common for children's game to limit what they can type to a list. For instance, Lego Universe uses a whitelist.
Also see: Whitelisting for game chat. And note that whitelists can be circumvented. There is no guaranteed solution.
Considering that it's for young children, and mis-spelling could be a problem - depending on the client interface, you might consider word auto-completion. As the players start typing letters, offer a list of possible words and let them select the correct one.
źródło
There's an answer from Programmers describing one system for building a profanity filter. He doesn't explain how he actually built it in great detail, but it should be enough to get an idea for implementation.
źródło
This is a problem best solved by humans and social design rather than code.
Your best source for an exhaustive list is a live human who is present in the game and monitoring the chat stream. Put people in your game and let them be your ultimate filter.
Spend some time looking into Lane Merrifield's ideas and philosophies behind Club Penguin and about providing service. Here are two writeups from his presentation at the Austin GDC in 2008. I saw it and remember being very impressed with his style of solving human problems with humans and not code.
http://gamasutra.com/php-bin/news_index.php?story=20234
http://www.raphkoster.com/2008/09/15/agdc08-lane-merrifield-at-their-service/
Specifically because your game is aimed at kids, it's more than just swear filters you'll need to think about. You'll need to worry about people posing as kids who may or may not have bad motives. You'll need to assure parents that their kids are safe. You'll need to assure kids that they are safe too for that matter.
Another plus for humans is that they will understand context. You don't want some kid saying, "My Mom has breast cancer" and getting kicked.
źródło
Simple solution to the problem:
źródło
Some MMOs for children simply replace chat with a predefined list of emotes and phrases and simply doesn't allow free-form chat. Perhaps the game could be designed to accommodate that.
źródło