Study of Bots
I have been making a study of the bots that are currently infesting Shika. This is an analysis of their movements, styles of play and and ultimate effects on the game. I also offer some thoughts on exactly how these bots are controlled, their AI and more importantly how they can be defeated.
Bot Types.
There are eight different kinds of bots. Edited: 8/Feb to add the eighth bot type
1) The Drop Gatherers.
These are bots which follow a main player around. As the main player starts a fight the bots also jump in. These type of bots are one of two types, a) Sadida or b) Enutrofs. The Sadis because of their Bramble attacks, Enus because of the increased drop rates. However because these bots are usually lower levelled only the Sadis are attacking bots. The Enu simply pass their turns.
2) The Farmer.
These bots have been around for a long time. They simply farm an area of it's harvestable resources. In the past these have simple been automated mouse clicker system which simply click an area on a map as any normal player would. However in recent days these how now evolved into the more advanced bots capable of defeating resource protectors. These bots are almost exclusively Sadis. They are commonly used on the Farmer profession, but have recently started being Miners, and Alchemists.
3) The Cargo Mule.
Doesn't do much except run around at high speed and exchange with the other bots that are working the fields and run the loot back to another character.
4) The Fighter.
These bots are almost always Cra. They initiate low level fights and attack a monster mob. Once the battle is over they usually heal themselves by sitting down, before starting a new attack against another mob of running off to another map where it all begins all over again. These bots may well have Drop Gatherers following them as well. They may only get a small amount of drops, but the sheer quantity of fights that they perform means that they can lay claim to a huge amount of dropped goods.
5) The Sellers.
These bots stock the various sell rooms. When an item is sold, they immediately rush back to the sell rooms to restock. It's been observed that you can buy an item in the Bread Sellers, and in the Alchemists at the same time and watch the same character re-stock it in both places within the space of 2 seconds.
6) The Crafters.
These simply receive a large supply of goods, and craft them. Most notably Bakers. Although there also exist Alchemist bots.
7) Shouters.
Seen usually in the "High Street" of Astrub (the run between the Zaap and the Bank). They simply shout their wares over the normal channel and occasionally on Trade or Recruitment channels. These normally come in pairs and are usually locked in exchange mode. This prevents most forms of interactions with them in an attempt to shut them up.
8) The Shopper.
This bot roams Astrub from bottom to top visiting each location in turn. It is checking the contents of all merchants parked on the maps, and buying up normal resource items which are significantly underpriced. Most notable are Gobball Horns and Boar Tusks. However it will also buy up other scrolling resource items and common items (Iron, Gobball Saliva, Leathers and Wools, Piwi Feathers) which are underpriced. I assume that this is another way of gaining items to be sold in the markets.
Bot methods.
In the past Bots were simply scripted mouse clicks on the Dofus client. Usually used on Farmers. A bot character would normally have reduction equipment (Mush Mush Rings or somesuch) to prevent the Resource Protectors from killing them, until a human could interact, defeat the protector and then let the bot simply continue on it's way. These bots have been around a long time and are extremely easy to setup. Because the bot actually uses the client software, they are not eaily spotted, except by the regular paths and actions that the bot carries out.
Recently a new type of bot has emerged which has rapidly become more prolific, because of it scripting capabilities and flexability. These are packet snatchers. Once the client has fired up and performed the initial handshaking with the game, a packet snatcher monitors all data across the network conenction. Each movement is then enacted by sending the required data packets into the network stream between the client and the server. Because the system does not rely on the client actually displaying the moves, these bots react incredibly fast to the normal viewer. As such a fight can be started, spectator mode disabled, 7 other bots join in with it and the fight started all within the space of milliseconds. Travel across the maps world is effectively instant. To the normal player they would see the bot character appear at an inlet point, start to run across the map, get about two squares then vanish.
Because the bot can actually read the incoming data stream, they can pinpoint exactly where on the map any given item is. Whether it is a monster mob, or a harvestable resource. As such the programming behind the bots allows them to fight effectively. (Thats why Cras and Sadidas are so effective in low level monster fights... effective range and attacks with Magic Arrows and Bramble). This also allows them to interact with other players to some extent. If you try to exchange with them they can reject it instantly... unless you happen to be a legitimate Cargo Mule ready to accept your illgotton gains.
The AI doesn't need to be very effective against the fights as for the majority the fights are against low level monsters and are easily winable. What they are going for is quantity of fights.
The effect on the game.
Well firstly there is the annoyance effect. Players cannot play on the same maps as the bots because of the lack of monsters to fight or the lack of resources to collect. Software is always faster than the human eye or fingers. trying to compete is impossible. Secondly in the annoyances is the unwanted spam on the channels. "Vend kamas" messages appearing all over the place are extremely annoying. Then there is the effect on prices in the game. Prices are dropping rapidly. Now to some this is a good thing. Cheaper resources means cheaper equipment. Except like in real life, the prices become so cheap that the economy has no value. Players who wish to sell items can no longer compete. The crafts they have made no longer hold the same value. Sellers eventually get disillusioned and give up. Some of them even leaving the game altogether. Prices then drop even further in an attempt to make things sell, and, as in real life, recession starts to set in.
Catching them.
Well it is very easy to spot the bots. They are predictable, incredably fast to the observer and almost always have random named accounts and they are always only in F2P areas (apart from the Cargo Mule bots). As a player there is absolutely nothing you can do about them. Taking a screen shot (if you are fast on the print-screen key) does go someway towards reporting them, yet the botters can make a new account within seconds and be up and running again. Banning a bot account therefore does not provide any long term benefit to the game. Spotting the bots helps in trying to track down who they interect with, and by extension you can figure out the the extent of the bot network.
The only remaining method is banning that actual computer from connecting. These can be easily implemented by Ankama but does have a disadvantage. If you ban by IP address then you may also be blocking other players who use the same ISP or connection to play. Such as in Internet Cafes or smaller ISP farms. Blocking connections to Shika to only UK based IP addresses is also unfeasable due to the mishandling of IP ranges by many major UK ISPs. So where does that leave us?
Well there is only one real way to solve this. Encryption. During the setup of the client, and periodically throughout the game play (say every 15 mins) a public/private key encryption system is setup between the client and server. All data packets sent between the systems would then by encrypted. This would mean that packet snatchers would be unable to interpret the data being sent or received and would therefore make it impossible to transmit large sequences of commands. By using a key variation where the key is slowly modified after each packet is sent, means that the botters would be unable to resort to other methods such as performing a mouse click on the client, recording the data packet and re-determining which packet is which command. A vectored key means that the same command would actually have a different packet structure over time.
The only drawback would be a slight overhead in the processing time of the commands on both client and server. However given the fact that the client is written in Flash this should not really be noticable on the client side. Whether it would be noticable on the server side can only be determined by Ankama's hardware.
|