Feedback:User/Sonicnz/Automatically removing the bots from the world

From Guild Wars Wiki
Jump to navigationJump to search

Recently I have noticed a proliferation of gold sellers and bots on Guild Wars 2, and I am finding it is detracting from the otherwise awesome game that is Guild Wars 2. Whilst these are known problems in many MMORPGs, I think GW2 (with it's overflow servers) is in a unique position to deal with them extremely effectively. The biggest risk at the moment is the bots 'playing the market' by artificially driving up or down the prices by flooding the market with materials. I think we've already had a crash about a week ago (judging by the prices of some crafting materials) and would hope that this is being looked into.

There are two problems that I think can be extensively reduced:

- gold sellers, i.e. accounts that promote purchasing gold at 3rd party sites
- bots, i.e. accounts in game that are set up to repetitively perform an action (like mining for ore, chopping down trees, or continually taking part (automatically) in a dynamic event)

The first - gold sellers - can probably be easily reduced by applying a spam filter (much like we do with email) to the in-game mail system. The number of reports for a particular account could also be used as a feature to train the learning system running the spam filter.

The second problem - bots - is a more difficult problem to solve, but I think can easily be solved server-side. My approach would be to have certain overflow servers that have extensive per-player logging, whereby suspected bots are first sent to these overflows to be monitored further. The kind of information to log could include summary statistics - such as the number of key presses per hour, time spent in an area, map area covered, types of skills being used, time spent online, length of chat messages (since bots typically will not use chat, other than to spam gold selling messages), number of events completed, and so on. The kind of things that would be more telling would be to log the events (movement, actions, skills used, buying and selling habits) that the player requests to the server, as well as the time they occur. You could then form a set of events that could be run against a model to check for regularity - i.e. is the same sequence being repeated over and over with the same timings, or is the sequence more indicative of a player who is human?

There are many nice models that could do this - for the sequence analysis I would recommend PPMC. For analysing the features generated on a server, you could use free machine learning toolkits such as WEKA or R to analyse each player and return a decision. For each period of playtime (say, an hour) you could generate a probability that the player is human, active, inactive, or not human, and after a certain number of probabilities over a threshold, incur a ban on that player. I imagine that you could even pick particular botting software/habits out, given the number of players on the server. Judging by what I have seen of the bots I have reported myself, I have no doubt that this sort of approach would be extremely effective at removing some of the unwanted accounts from the servers.