Avoiding botting through code
Goto page Previous  1, 2, 3  Next
 
Post new topic   Reply to topic    mudlab.org Forum Index -> Design
View previous topic :: View next topic  
Author Message
Grem



Joined: 15 May 2005
Posts: 36
Location: Maryland

PostPosted: Sun Jul 31, 2005 8:48 pm    Post subject: Botting solutions Reply with quote

Ive solved the xp botting problem by only granting players experience for completing quest objectives. So while they CAN bot until they finish the quest, they will have to manually seek out a new quest master with different objectives.


Players can still bot for material wealth, however. But I do have a system in place where mobs will not spawn in the same spot if they are camped. So the players are required to move to new locations once theyve cleaned out one. The mobs will only spawn again once different objectives have been complete.
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address
Author Message
KaVir



Joined: 11 May 2005
Posts: 565
Location: Munich

PostPosted: Mon Aug 01, 2005 9:16 am    Post subject: Reply with quote

Myrd wrote:
Easy, since the EXP points (or whatever you call them) that are gotten by bot players are all from the same activities, you should code a diminishing return points system for doing the same thing. For example, if the bot is constantly killing orc soldiers, the exp from an orc soldier should go down


I don't really have enough types of monster to do that, at least not yet. Plus there's the fact that the same monster type will be of variable strength, so that I can pop out the same monster template in a range of different strengths. I suppose I could give diminishing returns on a day-by-day basis, so that players are encouraged to go through the range of monsters each day - but as different setups are effective against different monster types, that could cause all sorts of balance complications.

Myrd wrote:
(I mean, if you kill the same damn NPC a million times - it doesn't even make sense that you gain much new experience from killing it again - you've already "mastered" how to kill it).


Primal doesn't represent "experience" - it represents the soul-energy/lifeforce you drain from your victims, and is used to boost things that wouldn't logically increase with experience. Thus in all fairness it doesn't really make sense that you gain less of it just because you've killed that type of creature before.

Myrd wrote:
This would encourage people to do diverse things (exp in different zones for example) for their EXP, and thus would make botting less rewarding (since you say in your case they still play normally - so if they want to play normally through zone A first, then botting that zone after is much less rewarding for them).


Hmmm I suppose I could vary it based on geographical location...but that doesn't really stop someone from just setting their bot to move in one direction and keep going.

Myrd wrote:
The other alternative is to make everything much harder, such that a bot cannot compete and not die if its automated, and would require a human player to make the right decisions in order to survive and be effective.


Well for the tough stuff that's often the case - but "much harder" is relative. A weak monster won't give as much primal as a stronger one, but if it's a lot weaker than you, it's not going to be much of a challenge - and could therefore be handled with a bot.



Alister wrote:
Of course, it depends on how long it takes a character to get the offline primal. For example, if one hour of online play translates into the potential for one hour of offline maturation (which would probably be close to an ideal ratio, imo), this isn't a problem because you can't really let an alt sit offline and mature for too long.

Although, now that you mention alts, I suppose there is a problem with playing your normal character and then setting up a bot to play during long periods when you cannot be around (i.e. when sleeping).


More to the point, I suspect many people would use one alt to play while the other was maturing.

Alister wrote:
Just loosen what is meant by "not playing" from being offline to not gaining primal. People can still sit around and socialize if they'd like, with no penalty.


But still, it would effectively take away their incentive to play the mud - they'd effectively be earning primal regardless of whether they were actually going around and killing things.

Unless, of course, that system only applied to wilderness mobs - so you could still wander around dungeons killing things for primal, or performing any of the other primal-rewarding tasks...but only earn a certain amount of primal for wilderness encounters each day/hour/etc.



Grem wrote:
Ive solved the xp botting problem by only granting players experience for completing quest objectives. So while they CAN bot until they finish the quest, they will have to manually seek out a new quest master with different objectives.


That could work, as long as the quests were randomly generated (otherwise there wouldn't be enough content). Of course then it becomes difficult to create a randomly generated quest that can't be botted...

Grem wrote:
Players can still bot for material wealth, however. But I do have a system in place where mobs will not spawn in the same spot if they are camped. So the players are required to move to new locations once theyve cleaned out one. The mobs will only spawn again once different objectives have been complete.


Well my monsters are currently spawned while people are moving around (and they vanish after a while if left alone). What I may do, though, is have a spawn counter for each chunk of terrain to prevent people from just walking back and forth in the same location. Actually, it might be easier just to store the last X chunks of terrain that each character has visited on that character, so that players don't empty locations for each other, only for themselves.
Back to top
View user's profile Send private message Visit poster's website
Author Message
shasarak



Joined: 29 Jun 2005
Posts: 134
Location: Emily's Shop

PostPosted: Mon Aug 01, 2005 4:10 pm    Post subject: Reply with quote

You say you've now got the combat system working well enough that a "true" player is far more dangerous than a 'bot,so how about simply having a sharply non-linear (e.g. exponential) relationship between primal gained and monster strength?

Taking some arbitrary numbers, suppose a "level 10" player can kill a "level 10" monster manually, but can only kill a "level 7" monster when botting. Let's say that the level 10 player needs to kill about 20 level 10 monsters to reach level 11.

If you make the energy gained when killing a level 10 monster 1000 times greater than what you get for killing a level 7 monster, then, in order to level by botting, he'd have to kill 20,000 monsters. But to level manually he'd only have to kill 20. Thus, primal gained through botting can never become significant.

Adjust numbers to suit, obviously.
Back to top
View user's profile Send private message
Author Message
Alister



Joined: 13 May 2005
Posts: 62
Location: Alberta, Canada

PostPosted: Mon Aug 01, 2005 5:54 pm    Post subject: Reply with quote

KaVir wrote:

Alister wrote:

Just loosen what is meant by "not playing" from being offline to not gaining primal. People can still sit around and socialize if they'd like, with no penalty.


But still, it would effectively take away their incentive to play the mud - they'd effectively be earning primal regardless of whether they were actually going around and killing things.


Not really... the ability to gain primal while not playing depends on you having gathered primal while playing. Yes, people can take breaks and still be making primal, but they can't make a living out of doing nothing.

Also, don't you think players would rather play while they can and save maturing for when they can't play (i.e. when sleeping, when working) than maturing during times they can play? For the same reason people don't bot when they have the option to play, they probably won't mature when they have the option to play.

This idea was suggested with the intent of making botting redundant. If bots earn less primal/min than actual players (or so I'm assuming, by fact that players are better fighters than bots), the amount of primal earned while not playing doesn't have to match that of playing. Thus, it's still desirable to be actively playing over maturing.

Given these things, I don't suspect players' incentive to play the mud would be reduced. Although, the validity of the last point depends on how much primal you can expect to make while maturing, compared to while playing.


KaVir wrote:

Alister wrote:

Of course, it depends on how long it takes a character to get the offline primal. For example, if one hour of online play translates into the potential for one hour of offline maturation (which would probably be close to an ideal ratio, imo), this isn't a problem because you can't really let an alt sit offline and mature for too long.

Although, now that you mention alts, I suppose there is a problem with playing your normal character and then setting up a bot to play during long periods when you cannot be around (i.e. when sleeping).


More to the point, I suspect many people would use one alt to play while the other was maturing.


Only if it's worth their time. There's two options a player has for playing: play a single character, or toggle between 2 or more. If you work out the math, there's not really any advantage to toggling between characters. You earn the same amount of primal if you play a single character. In fact, if your goal is to have a kickass character (which it probably is for the players), you are best off playing a single character because the single character then gets -all- the primal.

The only advantage toggling provides is that it makes your maturation primal come faster, which might set up a situations where peoples' characters are fully matured by the time they log off and, thus, have a reason to bot again. But (I think) this can be addressed by simply elongating the time over which maturation occurs; if 1 hour of killing translates to 1 hour of maturation, change it to 1.5 hours of maturation for the same amount of primal.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Author Message
Grem



Joined: 15 May 2005
Posts: 36
Location: Maryland

PostPosted: Mon Aug 01, 2005 6:31 pm    Post subject: RE Reply with quote

Some popular online games like Ultima Online have stopped botting with pattern detecting algorithms. If you wrote a system that detected patterns in the bots command routines or movements, you could just boot him from the game temporarily. For example, if they are following a set path and killing the same mobs with the exact same string of commands.
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address
Author Message
Tyche



Joined: 13 May 2005
Posts: 176
Location: Ohio, USA

PostPosted: Mon Aug 01, 2005 8:00 pm    Post subject: Re: RE Reply with quote

Grem wrote:
Some popular online games like Ultima Online have stopped botting with pattern detecting algorithms. If you wrote a system that detected patterns in the bots command routines or movements, you could just boot him from the game temporarily. For example, if they are following a set path and killing the same mobs with the exact same string of commands.


So you program your robot to log back in and complain over channels and write complaint notes. Wink

I am confused, or rather seriously doubtful, about a claim that a PvP system is "unbot'able" or in practice so. I know theoretically this is not true, and from practical experience in other PvP environments like Quake, MOHAA, AOE, CivIII this is not true. I lack the time and motivation to prove it IRT KaVir's game.
Back to top
View user's profile Send private message Visit poster's website
Author Message
Kjartan



Joined: 13 May 2005
Posts: 110

PostPosted: Mon Aug 01, 2005 8:43 pm    Post subject: Reply with quote

It sounds like this game has pretty complicated PvP combat, so it might be, or could be made to be, that bots are particularly vulnerable to PvP attack because they don't play PvP as well as a clever player. You can make it so that while you're in a refuge/mode where you're immune to PvP attack, you can't do productive botting, or can't do it for very long.

This has the bear-proof-trashcan problem: a player who isn't any smarter than a good bot will always be getting thrashed in PvP.
Back to top
View user's profile Send private message Visit poster's website
Author Message
Ashon



Joined: 11 May 2005
Posts: 86
Location: Seattle

PostPosted: Tue Aug 02, 2005 8:15 am    Post subject: Re: RE Reply with quote

Tyche wrote:
Grem wrote:
Some popular online games like Ultima Online have stopped botting with pattern detecting algorithms. If you wrote a system that detected patterns in the bots command routines or movements, you could just boot him from the game temporarily. For example, if they are following a set path and killing the same mobs with the exact same string of commands.


So you program your robot to log back in and complain over channels and write complaint notes. Wink


If you use the pattern detecting Algorithm to detect a bot, you can use it as a slide scale for combat difficulty. When a player is flagged as botting the enemies can be scaled to be more difficult. Making it more difficult to farm the primal then it was before (assuming some sort of consequence surrounding death).

You could take a system like this in many directions, for instance you could stick a social stigma on someone who is continously flagged as a botter, or having botter tendencies, and have NPC's respond to it appropriately. Or assuming a strong modelling system for the pattern detection, you can slide the scale on any number of issues that can be botted.
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger MSN Messenger
Author Message
KaVir



Joined: 11 May 2005
Posts: 565
Location: Munich

PostPosted: Thu Oct 13, 2005 1:14 pm    Post subject: Reply with quote

This issue is still causing me headaches, but I've put together one solution which I hope will at least make botting less profitable. It's only been in place for a couple of days, but the response has been general positive (my major concern was adding something that would really irritate non-botters). Thus I thought I'd share it here, in case anyone else is having similar problems (or can see any major flaws in the design)...

When you log on, the mud checks your last login date, and if it's different from the current date it gives you some 'boost points' (in other words, if you don't log on for a week you don't get anything for those missed days). The maximum number of boost points you can receive is 2.5, however that is reduced by 0.01 for every kill you earned the last time you played, so that if you killed 250+ mobs you don't earn any boost points. You cannot store more than 10 boost points at any one time (so four days of saving is the most you can get), and if a kill gives no primal, it doesn't count towards the total.

At any time during gameplay, you can use the 'boost' command to spend one boost point to give you 10 'boosts' (I suppose I should change the terminology to make it a bit less confusing). Every time you kill a mob, a boost is automatically spent to increase the amount of primal you earn by 2.5 times. In addition, every time the mud checks to see if a skill or fighting style increases and that check fails, a boost will be spent to make the check succeed.

In addition, if you kill more than 250 mobs in any particular day, the amount over 250 is added to your Age (power level) for the purposes of determining how much primal you earn - effectively meaning that if you kill a lot of mobs, you'll start earning less and less for them, in addition to losing boosts for the following day. However as this would require players to kill an average of 1 mob every 5.76 minutes for a period of 24 hours, I find it unlikely that it will affect anyone other than botters.

One player seriously objected to the original proposal, saying that they would probably only bother logging in for the boosted kills were I to implement such a system. After checking their pfile, however, I realised that their average kills were around 8 per day - far below the number of boosted kills they could earn. Rather than discouraging people to kill too many mobs each, I suspect the system will actually encourage many players to kill more mobs, rather than risk losing boost points - you'd need to kill around 20-25 mobs each day to avoid losing boost points, and if those are big mobs (which are the obvious choice, as they give much more primal) they're going to take a few minutes each to kill.

As the same system also boosts skills and styles, it allows players to rapidly get those last few points in their favourite weapons, magic colours and fighting styles, rather than having to mindlessly grind their way through dozens of hapless prisoners. However because the boost points are earned fairly slowly, it won't allow people to instantly raise everything - they'll have to pick and choose which areas to focus on.

I considered requiring players to remain online for a while before earning their boosts, to avoid people just logging on and off - but as the boost points cap after 4 days worth anyway, I decided it would likely be better motivation for people to get the points instantly (and know they wouldn't get any more if they didn't use them) than requiring them to sit around for a while until the points turned up (which is a boring passive activity).

As an aside, this system does make the game more favourable for the casual gamer, as opposed to the hardcore gamer - putting in an hour a day for a week will net you far better results than seven hours at a single sitting. The hardcore gamer will still be able to outperform the casual gamer, but the power difference will be far less linear. The players who will suffer the most are those who only log in sporadically, playing for several hours at a time and then not connecting at all for a few days. Of course if they're willing to briefly log in/out to get their boost points, they could still do pretty well - but those who (for example) only have access at the weekends are likely to suffer pretty badly.
Back to top
View user's profile Send private message Visit poster's website
Author Message
Ashon



Joined: 11 May 2005
Posts: 86
Location: Seattle

PostPosted: Fri Oct 14, 2005 8:33 am    Post subject: Reply with quote

I think you've come up with a decent solution to part of the problem KaVir.

You are making it (as you said) less profitable to bot. But I don't think it'll solve the problem of botting, and I feel that it probably won't really make people less likely to Bot.

GW:2 already solves a large problem that causes a lot botting, and that's the boring level grind. The combat is not easily scripted. But the as long as you can gain power through an bit of grinding, players will continue to bot.

Personally, I don't think it's worthwhile to spend so much energy on preventing botting.

Anyways, looks like a good start to lessening the benefits of botting through code.
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger MSN Messenger
Author Message
KaVir



Joined: 11 May 2005
Posts: 565
Location: Munich

PostPosted: Fri Oct 14, 2005 11:28 am    Post subject: Reply with quote

Quote:
You are making it (as you said) less profitable to bot. But I don't think it'll solve the problem of botting, and I feel that it probably won't really make people less likely to Bot.


It won't solve the problem, and it won't stop those who are determined to bot, but it's a step in the right direction. I've already reached the conclusion that there's no "silver bullet" solution, but I think a combination of little features such as the boosts will help reduce botting to an activity that isn't really worthwhile.

The next phase of my plan is to implement supernatural 'sense' powers which allow you to sense whenever a player kills a mob, with the maximum range based not only on your sense power but also on the number of mobs they've killed that day. A bot that runs around killing hundreds of mobs is going to become detectable over huge distances, turning them into a harvestable resource for non-botters.

Quote:
Personally, I don't think it's worthwhile to spend so much energy on preventing botting.


The problem is it created a knock-on affect. Players who botted were becoming powerful far faster than those who didn't, resulting in many of those who couldn't (or wouldn't) bot leaving. Fortunately, because we're still in beta and I suspected many parts of design wouldn't hold up too well, I'd placed an artificial ceiling on advancement - thus the botters reached a certain point and no longer had anything else to do, allowing the non-botters to catch up. If I hadn't done that, of if I were to remove the ceiling without first addressing the issue, I fear the mud would have ended up being full of bots. I'm still kicking myself for not properly considering this in the original design.
Back to top
View user's profile Send private message Visit poster's website
Author Message
KaVir



Joined: 11 May 2005
Posts: 565
Location: Munich

PostPosted: Thu Nov 17, 2005 9:27 am    Post subject: Reply with quote

A bit of a personal rant:

While this solution was generally well-received when I added it, it's proven rather unpopular with the newer generation of players. Most of the older players still treat boosts as a reward, particularly those who witnessed firsthand the problems with botting - but many of the newer players who have 'grown up' with boosts consider them to be the norm, and treat unboosted kills as almost a form of punishment. I find myself increasingly inundated with complaints about having to raise skills 'the slow way', or being on 'crappy primal', and receive the suggestion to 'give people extra boost points for killing stuff' on an almost daily basis.

Not really much I can do about it, but it's still really irritating. Perhaps I should remove boosts until people reach a certain point, so that everyone will appreciate it (except the current generation, of course, who'll probably rant, rave and leave, but it'd likely save me headaches in the long-term).

I really should have seen this coming...*sigh*
Back to top
View user's profile Send private message Visit poster's website
Author Message
Cornelius



Joined: 13 May 2005
Posts: 42
Location: Florida

PostPosted: Thu Nov 17, 2005 5:05 pm    Post subject: Reply with quote

well an unboosted kill is relatively worthless is it not? If killing something took time and effort with little to no apparent reward I too would see it as punishment. Player psychology is, as you know, very hard to predict but I think if you can offer some kind of reward (not neccesarily xp or skill gains) for every/most kills you will eliminate the feeling of wasted time.

Other incentives you can offer are cash, item drops, or special ranking stats like 'honor', 'gallantry', 'karma' etc.

The problem with cash and item drops is it brings back the powerplayers inflating the game's economy so what I would do is force the player to take an extra time consuming step between kill and reward.

Plan 1: So in one location of the game have mobs drop some useless raw material that can only be sold at a location very far away and make it heavy. Now, every few kills the player would have to make a long trek to the traders to get their reward- they will decide whether the cash reward is worth the time lost to exp killing but at least some reward is available.

Plan 2: Similarly have a small amount of valuable treasure guarded by a bunch of mobs, where each one must be fought to obtain it as a hero navigates a labyrinth or ascends a craggy mountain or cuts their way through a steamy jungle some mob kills would be worthless in the short term but the treasure and the sense of accomplishment would be a reward. With a dynamic mob loading system you could even keep the experience fresh for re-entries. Hint: make this extremely difficult- you dont want the treasure reached every time some hero wants to go xping- try to get people to complain that the dungeons are too hard then make them a little harder and it will be perfect.

Plan 3: Introduce some kind of system whereby a kill might not have an immediate xp/skillgain effect but it may effect the standing of the player in some way, this will make them think twice about killing some mobs and they may kill others for no other reason than to increase this 'standings' value.

Thats my opinion- don't blame me because it's better than everyone elses Twisted Evil
Back to top
View user's profile Send private message AIM Address
Author Message
KaVir



Joined: 11 May 2005
Posts: 565
Location: Munich

PostPosted: Thu Nov 17, 2005 9:33 pm    Post subject: Reply with quote

Quote:
well an unboosted kill is relatively worthless is it not?


Not really - it just doesn't get the 2.5 times primal (exp) multiplier. Before I added the boosts (a month ago) the players were more than capable of progressing, and several had already reached the current advancement cap.

If you didn't use any boosts at all, you'd still be able to play perfectly well - it would just take you more kills (2871 equally-matched unboosted mob kills to reach the advancement cap, as opposed to 1148 equally-matched boosted kills).

It's not a problem with the unboosted kills being worthless - they're "normal" reward kills. It's the fact that people who have only played since the introduction of boosts consider the boosted kills to be "normal"; it's a matter of perception.
Back to top
View user's profile Send private message Visit poster's website
Author Message
Polatrite



Joined: 11 Jan 2007
Posts: 4

PostPosted: Thu Jan 11, 2007 3:42 pm    Post subject: Reply with quote

KaVir wrote:
Quote:
well an unboosted kill is relatively worthless is it not?


Not really - it just doesn't get the 2.5 times primal (exp) multiplier. Before I added the boosts (a month ago) the players were more than capable of progressing, and several had already reached the current advancement cap.


If someone ate bread all their life, it's fine. It's what you eat to survive.

If you start giving them cake on a regular basis in addition to bread, in the long run bread will become a punishment, something that's not as good as cake, but you still have to eat it - even if cake is still a positive because it's so new.

If a new person is given cake sometimes, and bread other times, it's natural that the bread would seem like punishment.


What are your motivations for going to such lengths to reduce botting?


Last edited by Polatrite on Thu Jan 11, 2007 8:17 pm; edited 1 time in total
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    mudlab.org Forum Index -> Design All times are GMT
Goto page Previous  1, 2, 3  Next
Page 2 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

Powered by phpBB © 2001, 2002 phpBB Group
BBTech Template by © 2003-04 MDesign