Author Topic: Idea to stop mining bots.  (Read 7469 times)

Trikitiger

  • Traveller
  • *
  • Posts: 31
    • View Profile
    • Teriki Tora's Portfolio
Re: Idea to stop mining bots.
« Reply #15 on: July 30, 2010, 04:22:18 am »
Why on earth would I bot if I never got unsuccessful's? I can't even think about how to code a bot but if I could I'd honestly do it just to give my hand a rest.

Basically a Bot is a computer-based Macro, where the program records your mouse movements and keyboard actions. These recordings can last up to hours (in order to account for factors like running out of items and junk). Then the recording is played and it goes over and over again. Some of these Macro programs are so advanced that they can actually see the values for certain things and play certain recordings according to those values.

I used one once for a fun game that my friend made. I let the macro go as I went to the city. No harm done really. The event was short, and he also took the quick little game off of the net. So it's like I never did it. (Which reminds me... I've got to pursuade him into letting me build his online game that he wants to do...)
« Last Edit: July 30, 2010, 04:25:59 am by Trikitiger »

I'm Kurora on the IC server. Don't get upset about her attitude, that's just how she is. I'm not really like that X3

Earowo

  • Veteran
  • *
  • Posts: 1463
    • View Profile
    • Guild Site
Re: Idea to stop mining bots.
« Reply #16 on: July 30, 2010, 08:50:19 am »
im thinking that if the devs made it to where you mine until you find somthing, or get tired, they should add in a side thing  >.>
what i mean is, since you normally have to do /dig [ore] to dig somthing, (weather you type it or its a shortcut its the same command) if they made it to where, if a person types /dig [ore] WHILE they are already digging, make that canacle the current dig, since when you get ore would be kind of random, and a bot is time based, it would screw up a lot of botters systems

[i remember back in 4.03, i would see people bot training/looting on monsters, and there was a glitch where if sombody was attacking somthing long enough, you could attack their monster and kill it, i would see sombody botting, and i would attack their monster, and i would just leave the monster somwhere, (somtimes the monster fell off the map in the process) and then the botter would just be standing in the same spot in an attack stance for hours, until they came back to the computer.]
Dohmo: Please clean up your language immediately.
Me: as i just said, what i said, fits in the guidlines of rated PG, i was just explaining to the G guy
Dohmo: Sorry I tried to e nice
Dohmo: and i'm telling you to clean it up. last warning
Dohmo: now just do it
Dohmo: No more warnings

Abuse?

RlyDontKnow

  • Associate Developer
  • Hydlaa Citizen
  • *
  • Posts: 403
    • View Profile
Re: Idea to stop mining bots.
« Reply #17 on: July 30, 2010, 10:40:39 am »
im thinking that if the devs made it to where you mine until you find somthing, or get tired, they should add in a side thing  >.>
what i mean is, since you normally have to do /dig [ore] to dig somthing, if they made it to where, if a person types /dig [ore] WHILE they are already digging, make that canacle the current dig, since when you get ore would be kind of random, and a bot is time based, it would screw up a lot of botters systems

that sounds a lot more like a nuisance for players who accidently hit their shortcut :P

Basically a Bot is a computer-based Macro, where the program records your mouse movements and keyboard actions. Then the recording is played and it goes over and over again.
that's not really a bot, that's a macro ;)
a bot is a program that acts at the players stead based on more or less ellaborate logic.
e.g. in the case of mining a very basic approach would be to do just what you'd do as player: start digging, wait for the message about success/failure, react to it (by either moving and then digging or digging straight away)

as it's been already outlined you cannot really stop those bots without putting great nuisances on the player, instead I kinda like the idea of removing unsucessfulness, although it could work just like now on the server (kinda queue a new dig event if you were unsucessful). it'd make the bots sorta useless (as most of the logic is already done) and would make sense as already mentioned.

Earowo

  • Veteran
  • *
  • Posts: 1463
    • View Profile
    • Guild Site
Re: Idea to stop mining bots.
« Reply #18 on: July 30, 2010, 10:44:33 am »
or you could do what you did with the platinum mine, and make every single mine pvp and kill anybody who you think is botting

thats my ten cents
Dohmo: Please clean up your language immediately.
Me: as i just said, what i said, fits in the guidlines of rated PG, i was just explaining to the G guy
Dohmo: Sorry I tried to e nice
Dohmo: and i'm telling you to clean it up. last warning
Dohmo: now just do it
Dohmo: No more warnings

Abuse?

sashia_mennar

  • Traveller
  • *
  • Posts: 48
    • View Profile
Re: Idea to stop mining bots.
« Reply #19 on: July 30, 2010, 01:48:17 pm »
Don't stop the bots. Just allow them. We have limitless ore, enough for everyone to enjoy. Let people RP instead of pressing some stupid shortcut for hours, it's just plain stupid.

(And: no, I don't write, don't use, don't distribute any botting or macro code... never. I just spend hours and hours of my RL time digging, and feel like an idiot. And: no, I'm not grateful to the Devs for implementing it that way.)

How comes our IC smiths spend more time digging than hammering? Anyone thinks it's realistic or right? Me, I'm a smith and no, I don't think it's good or fun or anything. Just stupid and annoying, trepors toes!
Lotsa love, everyone!

Trikitiger

  • Traveller
  • *
  • Posts: 31
    • View Profile
    • Teriki Tora's Portfolio
Re: Idea to stop mining bots.
« Reply #20 on: July 30, 2010, 02:18:09 pm »
that's not really a bot, that's a macro ;)
a bot is a program that acts at the players stead based on more or less ellaborate logic.
e.g. in the case of mining a very basic approach would be to do just what you'd do as player: start digging, wait for the message about success/failure, react to it (by either moving and then digging or digging straight away)

as it's been already outlined you cannot really stop those bots without putting great nuisances on the player, instead I kinda like the idea of removing unsucessfulness, although it could work just like now on the server (kinda queue a new dig event if you were unsucessful). it'd make the bots sorta useless (as most of the logic is already done) and would make sense as already mentioned.
The more elaborate ones check on those things and react correctly, thus correlating it to AI. (I did mention the more advanced ones...) And with the mention of the "Capcha", it's actually the reason why you still get bots on forums. A person manually joins the forums, and then lets the bot loose (spamming advertisements and unwanted messages... You don't know how many sex-related topics I had to tackle in a kid's forum due to bots @.@

Though I think I stopped someone from just setting up a "bot" and leaving the computer (technically the guy probably just set his character to attack the monster and then left the computer), I reacted to the character attacking a creature, he wasn't going anywhere. I offered help, no answer, I killed it anyways (that's just how my character is >.>) No reaction, I offered him the loot, no reaction. Oh well, one person P.O.ed by the rude and crude that is Kurora X3

Interrupting bots is fun >.>

I'm Kurora on the IC server. Don't get upset about her attitude, that's just how she is. I'm not really like that X3

Earowo

  • Veteran
  • *
  • Posts: 1463
    • View Profile
    • Guild Site
Re: Idea to stop mining bots.
« Reply #21 on: July 30, 2010, 11:06:37 pm »
How comes our IC smiths spend more time digging than hammering? Anyone thinks it's realistic or right? Me, I'm a smith and no, I don't think it's good or fun or anything. Just stupid and annoying, trepors toes!
generally, smiths ORDER their ore, instead of mining it, but sure, do it the hard way >.>
Dohmo: Please clean up your language immediately.
Me: as i just said, what i said, fits in the guidlines of rated PG, i was just explaining to the G guy
Dohmo: Sorry I tried to e nice
Dohmo: and i'm telling you to clean it up. last warning
Dohmo: now just do it
Dohmo: No more warnings

Abuse?

kaerli2

  • Hydlaa Resident
  • *
  • Posts: 163
    • View Profile
Re: Idea to stop mining bots.
« Reply #22 on: July 31, 2010, 02:20:36 am »
Double whammy: why not incorporate more minigames? It'd make mining/crafting/... less of a bore, and make the bot writers' lives harder too!

kaerli2

  • Hydlaa Resident
  • *
  • Posts: 163
    • View Profile
Re: Idea to stop mining bots.
« Reply #23 on: July 31, 2010, 11:37:45 pm »
So far I only talked about bots that doesn't need any changes to PlaneShift itself. But PS is different from most other games..the source-code is available and almost everything that is done to make it harder for bots can be changed back in a self-compiled client (Or even beyond that, one could add code that makes it even easier..haven't looked at it but I guess it shouldn't be too hard to also write in the log-files what kind of items you can loot). Yes, I know, using self-complied clients  is not allowed but neither is botting so I doubt people who want to do it really care. So a way would be to enforce players only using the binary version. Maybe could be done with some encryption key that is only available in the binary version. Sure, again nothing that couldn't be found out but I think this would already reduce the number of people who are capable to do it. But in the current state of PS this will for sure lead to some other problems again. First of all it always happened again that certain bugs that prevented players from logging in were fixed in the latest SVN version of PS but no binary version was released yet. In that case the developers often recommended people with those problem to use a self-compiled version what wouldn't be possible anymore. And of course this could be only done on the official servers...all the testing servers from people in the testing department or developers would need a way to bypass this test...or it would get much harder just to compile the latest version of PS as you had to make sure it uses the correct encryption key for your test server...not to mention that logging on on a test server of someone else would be also not as easy anymore.

Hint to Aiwendil: That would be against the spirit if not the letter of the GPL.  In other words: to do so would basically hoist PS by its own petard.

Earowo

  • Veteran
  • *
  • Posts: 1463
    • View Profile
    • Guild Site
Re: Idea to stop mining bots.
« Reply #24 on: August 01, 2010, 05:36:25 am »
*sigh*

If you really want to come up with some ideas to prevent botting I think you have to understand first how it is done. Throwing out ideas without any understanding won't help at all...It will only make the person who came up with the ideas feeling ignored.

So, what do you need to create a bot? I will use the mining example here as this thread is about it but it's not limited to mining.

First of all you need a way to make the game/program accept commands of the bot your create. That's not so hard as there are several programs out there (or even APIs, often meant for running regression tests on programs) that allow you to imitate user input. (No idea, haven't tried it, but I guess the easiest way would be something like xautomation on linux, AppleScript on a Mac or autohotkey on windows). I don't think there is much that could be done to prevent this. If you wanted to prevent users from doing this you had to go around the OS's way of acquiring keycodes what would lead to far more troubles and work than gaining by doing so. (not really into this but I think going around the OS would mean for example to loose the ability to support special input devices with non-standard keys like most keyboards have nowadays)

Once you figured out how to send input to the game all you have to do is create shortcuts (for example "/dig gold"), assign a key to it and then let the external program execute the shortcut by sending the assigned key. For movement it's the same just that you don't need to create shortcuts for it. Here comes a possibility to prevent (or at least make it harder for the bots). You could disallow calling shortcuts with keys. It still wouldn't solve the problem as it's also possible to control the mouse by a external program and that way just make it click the shortcut button but it would make it a bit harder. And I don't think anyone would like to loose the ability to assign keys to a shortcut so not really a way to go.

So, now you have the possibility to control the program in an automated way...of course this still makes no bot, but calling those programs from a scripting language and adding some logic in which way they are called is no real problem. And here now comes part of the suggestion of Vakachehk making this logic harder by changing the timing that is needed to send the keys to the game. The problem with this suggestion is that making the bot timing based wouldn't be (at least mine) first choice. PS offers a much better way to control the bot. Every action (at least for mining) you do results in some output in the log files. A bot only had to parse those log-files, reacting to every line appearing there. This way the bot would know if the mining was successful or not and could determine what to do next. And don't get me wrong, I don't want to say that timed actions doesn't belong in a bot...just that it's far easier to do it without timing. For example one could even add a random time before starting to dig again the next time just to make it harder to identify the bot. But due to lag or maybe spikes in processor usage created by another running program only a timed based approach wouldn't be a very good one. But this part of writing a bot allows some measurements to be taken. If the bot has no information on what is going on in game it's far harder to come up with a good one. So one possibility to prevent mining bots would be getting rid of the system-log ability. That way it would be far harder and Vakachehk would be right about changing the timing could help (in a way..until the bots have adjusted to the new timing). Another way would be the WoW way...WoW only writes the log-files after you logged out of the game. But that means that all the logs are lost if the game crashes for some reasons. (And if nothing major has changed in the last months this would mean loosing a lot of logs with PS). A third way would be to write the log-files only every few minutes...This way you loose only a few lines of logs at a crash but it would be still unusable for bots as it is not "realtime". One other thing in PS that belong about to the same topic are some debugging commands. Commands like "/pos" are for sure nice when it comes to identify bugs but also make it easier for a bot for example to determine if it is still in a good position for digging. But at the moment I don't think much can be done about this because as long as PS is not finished such commands are needed. An example on how to make botting harder is the looting in PS. There is not easy way to determine what items you can loot, how many of them and even "worse" a easy way by just doing it with the "keyboard". It doesn't show up in the logs (okay, not entirely true...with monsters that also loot money you get a line with the looted money and you can guess/try if that line means that there is a looting window in screen now also. But as you see it's a lot of guessing and a bot still would not be able to determine what it loots). And here is another thing that could be done..not to prevent botting but to identify it easier. Give GMs a command that makes the server send a faked message to one client. In a way this would allow the GM to control the bot as it only reacts to the messages given and might make it easier to identify.

So far I only talked about bots that doesn't need any changes to PlaneShift itself. But PS is different from most other games..the source-code is available and almost everything that is done to make it harder for bots can be changed back in a self-compiled client (Or even beyond that, one could add code that makes it even easier..haven't looked at it but I guess it shouldn't be too hard to also write in the log-files what kind of items you can loot). Yes, I know, using self-complied clients  is not allowed but neither is botting so I doubt people who want to do it really care. So a way would be to enforce players only using the binary version. Maybe could be done with some encryption key that is only available in the binary version. Sure, again nothing that couldn't be found out but I think this would already reduce the number of people who are capable to do it. But in the current state of PS this will for sure lead to some other problems again. First of all it always happened again that certain bugs that prevented players from logging in were fixed in the latest SVN version of PS but no binary version was released yet. In that case the developers often recommended people with those problem to use a self-compiled version what wouldn't be possible anymore. And of course this could be only done on the official servers...all the testing servers from people in the testing department or developers would need a way to bypass this test...or it would get much harder just to compile the latest version of PS as you had to make sure it uses the correct encryption key for your test server...not to mention that logging on on a test server of someone else would be also not as easy anymore.

So in conclusion there is no way to make it impossible to bot. There are always ways around it. It's only a question of making it harder and easier to detect. But it's always important to see what gain you have by this compared to the work you put into it. In my opinion there are far worse problems than botting in PS. If you have a problem with a person who is botting then there is already a solution for you in game: /ignore. In my opinion bots are not a real big problem at all...In fact I think if someone starts to learn a bit about programming just because he/she wants to create a bot for easy mining that's something good. There are far to many people out there who only use computers as better typing machine and who will never realize what a computer is really capable of (and where it can help you and where not). The economy in PS is that borked that a few bots are the least of the problems there. I can't help thinking that people who want to stop botting that desperately are only annoyed that others are able to increase some virtual numbers faster than others. But maybe that's the problem I miss...after all PS had become a game where numbers are everything that is important.

Why am I writing all this...Just telling people their idea won't work isn't really a good way to deal with it. At least there should be a explanation why.  While it might be obvious for some people why the initial idea of this thread won't work it for sure isn't for others. But I must have forgotten that PS is a game for nerds who understand from a brief explanation of two lines why it won't work and then accept this without the feeling of being not taken seriously.

Edit: Typos
I know how a lot of peoples minds work, at least the generall teenage-young-adult minds
and if anyone bothered to even read that whole thing, they are just going to use the info to start botting, so way to go! you are helping potential botters 0/ [no offense >.>]
Dohmo: Please clean up your language immediately.
Me: as i just said, what i said, fits in the guidlines of rated PG, i was just explaining to the G guy
Dohmo: Sorry I tried to e nice
Dohmo: and i'm telling you to clean it up. last warning
Dohmo: now just do it
Dohmo: No more warnings

Abuse?

kaerli2

  • Hydlaa Resident
  • *
  • Posts: 163
    • View Profile
Re: Idea to stop mining bots.
« Reply #25 on: August 01, 2010, 10:20:51 pm »
Hint to Aiwendil: That would be against the spirit if not the letter of the GPL.  In other words: to do so would basically hoist PS by its own petard.
If someone violates the rules of this game by crating a bot I doubt it will be much of a moral problem for that person to also violate the GPL...

But I am not so sure if this is needed in all the cases...I really have no clue here, but if something is added to the code to make botting harder and someone reverts that change back to and older revision (which is/was also released under the GPL in SVN) I am not so sure if it's violating the license.
No, I meant that the "solution" you described would be a probable GPL violation.

RlyDontKnow

  • Associate Developer
  • Hydlaa Citizen
  • *
  • Posts: 403
    • View Profile
Re: Idea to stop mining bots.
« Reply #26 on: August 01, 2010, 10:27:43 pm »
not just a violation of the spirit, but a clear license violation.
everything that is part of a GPL program (even used plugins) are affected by the GPL - or to keep it simple: each plugin/whatever that is part of a GPL program is GPL'd itself, so you have to make the source publicly available and so on

RlyDontKnow

  • Associate Developer
  • Hydlaa Citizen
  • *
  • Posts: 403
    • View Profile
Re: Idea to stop mining bots.
« Reply #27 on: August 01, 2010, 11:42:03 pm »
non-GPL data is fine of course, non-GPL code is not.
as for the key - that one doesn't make sense. having one static key wouldn't make sense ;) it'd have to be dynamic, however as the algo had to be public, it wouldn't be a barrier.

that put aside: some packet encryption never stopped any serious "attacker", it doesn't even stop the beginners that go for macro/pixel bots

kaerli2

  • Hydlaa Resident
  • *
  • Posts: 163
    • View Profile
Re: Idea to stop mining bots.
« Reply #28 on: August 04, 2010, 01:00:38 am »
it'd have to be dynamic, however as the algo had to be public, it wouldn't be a barrier.
LOLOLOLOL, shows you how little you know about crypto XD

Industrial cryptographic algorithms are ALWAYS published in the academic literature.  Nothing beats another skilled mind cryptanalyzing your algorithm.

RlyDontKnow

  • Associate Developer
  • Hydlaa Citizen
  • *
  • Posts: 403
    • View Profile
Re: Idea to stop mining bots.
« Reply #29 on: August 04, 2010, 01:09:07 am »
I didn't mean it as in barrier hijacking the actual encryption - that'd surerly be fairly easy.
however there's no good way to prevent man in the middle attacks given contemporary crypto algorithms, hence it wouldn't be an issue.

EDIT: on another note: encryption isn't that much fun with an unreliable transport layer, i.e. no guarantee on packet arrival and even more so no guarantee on in-order arrival
« Last Edit: August 04, 2010, 01:14:40 am by RlyDontKnow »