PlaneShift

Gameplay => Wish list => Topic started by: Vakachehk on July 27, 2010, 06:14:35 am

Title: Idea to stop mining bots.
Post by: Vakachehk on July 27, 2010, 06:14:35 am
This also will effect, harvesting, fishing, mining, etc.

I will use mining as a example:
You mine iron at level 20 mining, while in the iron mine area there are numbers between 1-10 7 are success and 3 are not successful (for example)
When you mine it is 12 seconds (something like that) of your character to mine for you to find out if it is successful of not in getting ore.

My way:
At level 20 mining, your mining Iron. You get given a number between 10-100 lets say you get 50, 50 seconds of mining till you get some ore. There is no unsuccessful's and it means people don't have to occupy there character while they are mining. I don't know if this could help to stop boting but it is a way to, I do guess they will try going for 100seconds so... If a GM thinks this person is boting they can make it so that the next mining time they automatically get out of the timezone (random number between 100-???) GMs will be told to send a /tell before doing this to stop annoyances. then the GM will see if it tries to mine again after the 100seconds. Then this is far better for all of us and means a fair play!

Rather complicated, but what do you think?
Title: Re: Idea to stop mining bots.
Post by: weltall on July 27, 2010, 11:08:13 am
if you make always success and change the time required you are only making the bot more lucrative. coding such bot under such a system requires 10 minutes at best and it gives better results.
Title: Re: Idea to stop mining bots.
Post by: Vakachehk on July 27, 2010, 12:51:20 pm
it won't necessarily be 10-100seconds its just taking away the unsuccessful's, what is the point in me knowing I am unsuccessful, IRL I don't know that I'd just mine till either I am tired or get something. It would be far harder to bot, doing this as the normal time would be between 10-100 then GM changes it to 110 or even 1,000 and waits for a /dig iron sign.

Its complicated but I think it needs looking into. When I first started playing PS I clicked mining and went off thinking It'll dig till I get something, then I came back and was like "hmmmmm?" took me awhile for me to realise it was only like 12 seconds.

Remember that for levl 1 mining it might be 20-900, level 10 mining 10-600 level 20 mining 10-300 ect. then max would be like... 10-100 or something. But that is not up to me to decide it would be the devs.
Title: Re: Idea to stop mining bots.
Post by: RlyDontKnow on July 27, 2010, 02:15:22 pm
it really won't help against bots.
they just do it event based, so as soon as you get the message about success, you 1) move a bit away if you were successful or 2) continue digging if you weren't
so a random time won't help against the automation at all ;)
Title: Re: Idea to stop mining bots.
Post by: Trikitiger on July 28, 2010, 03:09:33 pm
it really won't help against bots.
they just do it event based, so as soon as you get the message about success, you 1) move a bit away if you were successful or 2) continue digging if you weren't
so a random time won't help against the automation at all ;)
Wouldn't taking away some stamina (like if you were running) help against bots? After when your stamina hits zero, you can't really do anything anyways. So if a bot is mining until their stamina gets to zero, and still tries to mine, you can spot the bot. Also, if you add in the rule of running where more weight makes you lose stamina faster, the bot won't be able to change the wait and mining times in order to continue going unattended... Just a thought.
Title: Re: Idea to stop mining bots.
Post by: verden on July 28, 2010, 04:48:14 pm
It won't help. They will just set a longer delay before the bot fires again.
Title: Re: Idea to stop mining bots.
Post by: weltall on July 28, 2010, 07:58:11 pm
you can code a bot able to understand such things and even an human will try to dig when the stamina is off
Title: Re: Idea to stop mining bots.
Post by: steuben on July 28, 2010, 08:05:21 pm
bah just have a captcha appear every 3 seconds. when doing anything,.
Title: Re: Idea to stop mining bots.
Post by: RlyDontKnow on July 28, 2010, 08:35:17 pm
bah just have a captcha appear every 3 seconds. when doing anything,.

I'm sure botters will like it! no more stupid players getting into their way xD
Title: Re: Idea to stop mining bots.
Post by: weltall on July 28, 2010, 09:59:17 pm
i hate captcha. useless absurd thing just useful to block real person from doing things :P
Title: Re: Idea to stop mining bots.
Post by: Vakachehk on July 29, 2010, 01:32:16 pm
hmmm ok so it may not help to stop bots.
I did also mention the idea about removing Unsuccessful's, I see no point in seeing that you are unsuccessful I mean in real life, I wouldn't stop every 12 seconds to see whether I was successful or not, I would go till I got something or got tired. Now what does everyone think?
Title: Re: Idea to stop mining bots.
Post by: khoridor on July 29, 2010, 01:53:33 pm
hmmm ok so it may not help to stop bots.
I did also mention the idea about removing Unsuccessful's, I see no point in se that you are unsuccessful I mean in real life, I wouldn't stop every 12 seconds to see whether I was successful or not, I would go till I got something or got tired. Now what does everyone think?
I would agree on that one.
If it won't fight bots, at least it won't make it easier for them either.
Title: Re: Idea to stop mining bots.
Post by: weltall on July 29, 2010, 03:25:07 pm
hmmm ok so it may not help to stop bots.
I did also mention the idea about removing Unsuccessful's, I see no point in se that you are unsuccessful I mean in real life, I wouldn't stop every 12 seconds to see whether I was successful or not, I would go till I got something or got tired. Now what does everyone think?
I would agree on that one.
If it won't fight bots, at least it won't make it easier for them either.

more likely remove a big heap of usefulness of a bot as you remove the boring insuccess and automine till you get one or get tired
Title: Re: Idea to stop mining bots.
Post by: Geoni on July 29, 2010, 06:19:37 pm
You can try and prevent the bots but good luck preventing the many mules that most powerlevelers had or did have. They'll try and make a crappy IC excuse to the GM if they threaten to delete them too.
Title: Re: Idea to stop mining bots.
Post by: Vakachehk on July 30, 2010, 03:07:37 am
Nothing wrong with a miner as a character, saves Vakachehk doing it, I think it is better to have someone with a mining alt than to max out mining on some warrior character they have...

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.
Title: Re: Idea to stop mining bots.
Post by: Trikitiger 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...)
Title: Re: Idea to stop mining bots.
Post by: Earowo 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.]
Title: Re: Idea to stop mining bots.
Post by: RlyDontKnow 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.
Title: Re: Idea to stop mining bots.
Post by: Earowo 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
Title: Re: Idea to stop mining bots.
Post by: sashia_mennar 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!
Title: Re: Idea to stop mining bots.
Post by: Trikitiger 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 >.>
Title: Re: Idea to stop mining bots.
Post by: Earowo 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 >.>
Title: Re: Idea to stop mining bots.
Post by: kaerli2 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!
Title: Re: Idea to stop mining bots.
Post by: kaerli2 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.
Title: Re: Idea to stop mining bots.
Post by: Earowo 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 >.>]
Title: Re: Idea to stop mining bots.
Post by: kaerli2 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.
Title: Re: Idea to stop mining bots.
Post by: RlyDontKnow 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
Title: Re: Idea to stop mining bots.
Post by: RlyDontKnow 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
Title: Re: Idea to stop mining bots.
Post by: kaerli2 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.
Title: Re: Idea to stop mining bots.
Post by: RlyDontKnow 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
Title: Re: Idea to stop mining bots.
Post by: verden on August 04, 2010, 01:22:58 am
So no public/private key type of system for the server/clent, allowing a project to have a unique ID? Because that ID would be static? I agree, but wouldn't it still be a deterrent to most of *them* out there?
Title: Re: Idea to stop mining bots.
Post by: Vakachehk on August 04, 2010, 10:54:30 am
@ Trikitiger I know what a bot is, I never asked what it was I just simple said I don't know how to make one and I would use it just to give my hand a rest (if I knew how to make it of course). Since sitting there clicking and getting information that I don't want to see (unsuccessful) is just wasting clicks for my hand, I would much rather click wait till I get an ore, simple as that.

For example, you do:
/dig iron
you begin to dig for [random number] seconds
you just got some iron ore (so fully taking away unsuccessful, and increasing the time of mining)

No unsuccessful's, so what I am trying to say, is that the time of digging is increased but the probability is the time of digging not whether you are successful or not. But the probability will need to be balanced to how it is now, and higher levelled players in Mining get lower waiting time for them to get ore.
Title: Re: Idea to stop mining bots.
Post by: mikeloeven on October 06, 2010, 08:46:38 pm
the only sure fire way to stop a bot is for a gm to engage the player in conversation to see if it responds intellagantly. adding arbitrary detection routines is a recipie for disaster because belive it or not i can stand in the same spot for hours doing the same thing i am patient. a bot detection system could probibally mark me but if someone talks to me i can engage them in conversation or roleplay.

but i really dont like the way everyone uses the term macro for bots there are many harmless macros that can simply make say 100 drag and drop operations from a forge to your inventory and bind it to a single key. no real advandage and the health benifits are that you dont get carple tunnel syndrome. an autohotkey is technically a macro but it is in no way shape or form a bot because it must be executed by a player and monitered by the same player. infact there is a company called razer who makes a mmo mouse that has hardware based macroing in it to set off spells and crafting actions in WOW