• Advertisement
Sign in to follow this  

Anti botting design in combat systems?

This topic is 2090 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

So I'm really into adding betting into games now but for that you need a game where everyone plays on an even level.. no cheats.

I've already decided that manual aiming is bad for this because it can be cheated with aim bots or guiding lines that tell you where the for example bullet will travel. So I will be going with auto targeting.

So now I'm wondering what is best way to prevent people creating "bots" to either fight completely for you or just to help you out.
Like for example the enemy starts casting a super important spell and your bot notices that and within 0.1 sec it cancels whatever you yourself were doing and interrupts the enemy spellcast.
And if you argue against this with something like.. But what if you were doing something super important when the bot interrupted you?
You really have no idea how advanced bots you can create... just look at those nasty chess bots for example.
You can easily put in a list or a long list of things the bot should never interrupt you.

So I'm just looking to do some brainstorming what are some good ideas to prevent botting in combat.

Share this post


Link to post
Share on other sites
Advertisement
If you can design a coherent problem to present to a player that doesn't rely on specific life experiences, somebody else can design a bot to automate the discovery of a solution to that problem, probably much MUCH faster than a human can solve the same problem.

You can point to certain problems, like playing Go or Chess, but the bots to solve even these sorts of traditional anti-AI problems are good enough to exclude all but the top-tier of gamers. However, these sorts of games [Go and Chess] can be more easily interpreted into a much easier problem to solve that resolves to splitting your player base into beatable and unbeatable players [compiling a list of better-than-the-bot players], where the bots will only act with predation toward the vulnerable subgroup.

Share this post


Link to post
Share on other sites
Basically the only way to guarantee no bots is to make a really shitty game that nobody would want to play, otherwise.......if it's fun and competitive somebody's bound to look for an advantage.

Anyone who can read documentation can write a script that scans the screen against a collection of images or pixel hues/orientation to trigger subroutines in the script on the client, without touching the game's code................

Share this post


Link to post
Share on other sites
I don't think there's any question of whether there'll be cheating, only how hard you can make it to cheat, and how effective the cheating will be. Fundamentally you can't 100% tell the difference between bot insta-aiming and human prediction/luck. On a statistical basis you can guess if they're cheating, e.g. they're too perfect too often. You could also set a maximum cap on skill programmatically, e.g. assume a maximum accuracy based on distance, speed and aiming time, and randomise their aim beyond that assumed maximum accuracy. It would be unfair on the very best players, but you may decide it's an agreeable tradeoff.

You could maybe make it harder for the bot makers by generating models that have a random spatial offset on the server, and therefore the player positions will need to be offset by the negative of that offset. This would mean that the programmatic player positions would have a built-in bias that would not be visible from a graphical or collision perspective. A bot's aiming would then always have a bias, or they would need to detect the bias by analysing the model's polygon data. It would probably be hell from a technical perspective though.

Of course the basics apply of only sending frustrum-culled and clipping-plane-culled data to the client from the server, so the bot can't see 360 degrees. You could also send irrelevant data to the client, e.g. tell them an invisible player is moving around and/or firing at the player. Perhaps that's a good approach. Use honeypot data to detect bots. If they consistently shoot at an invisible nothing that is only there in a programmatic sense, they're a bot.

Share this post


Link to post
Share on other sites
What about making the game turn based (Even though I hate turn based) and making it a strategical tactical game instead of reflex, twitch, aim based?
Bots can still fight for you by knowing all the best tactical moves and such while you yourself decide the strategy... But if you design the game right then it's going to make botting a lot more complicated and you would have to be a grand master to be able to make a master bot.

@jeffery
These anti botting ideas you mentioned sound complicated and I don't really understand how it would be implemented exactly.
Like the target box offset thing.. that would hurt the honest players as well?.. and the irrelevant data... Don't they need to be visible? I would probably be using On-Live or whatever its called so they can only cheat with anything that's visible.

I think I'm going to go with making it turn based unless someone comes up with a better idea.
Edit: I still am not really happy with the turn based idea.. because then the grand masters would create master bots eventually and start selling the bots to public playerbase. Edited by glhf

Share this post


Link to post
Share on other sites
for that you need a game where everyone plays on an even level.. no cheats[/quote]
No, what you need is a ranking algorithm that ranks players based on how well they perform. Whether players use cheats to perform better or not is irrelevant, what is relevant is, depending on the way you use the ranking system, either grouping players of similar level together or calculating the odds correctly. One doesn't need cheats to fool the ranking system (e.g. you can just play with 10% of your real strength until an important match comes up), so don't bother thinking up ways to prevent cheating.

Share this post


Link to post
Share on other sites
It will be always possibke to make bots. Some day someone will make a bot as intelligent as humans, which will make it impossible to detect bots unless you only allow players that are stupid enough to play. However, you can make the game require thinking and recognition to play well (as bots would need lots of processing power to lets say recognize whats a player unless you have the data hidden somewhere) but that would require streaming the game and might making the visuals look really chaotic.

Share this post


Link to post
Share on other sites
Ok, So if we go form the assumption that botting can not be stopped..

We will assume that ALL of your playerbase are using the best bot available for the game. (even field)
How do you think this would work out?

In games that don't have real money betting botting is less of a problem because games are made for fun and they wanna play instead of letting the bot play for them.

But in possibly upcoming games that will implement real money betting they must have a 100% even play field.
Just think about... Would you really want to bet your own money on a match when it's possible that the opponent is cheating?
You never know who is cheating and who isn't... Found a really tough opponent? Cheater alert... fuck this game I'm not betting any money against possible cheaters.

Poker is not cheatable except by hacking into the server into the card generating feed.. I'm not sure on the technicals of that issue but I think it's been solved.
You can bot in poker.. but.. It's just such an advanced game that botting won't even beat an above average player.. it's a game of adaption, metagame, randomness, pattern recognizing etc.
And poker is turn based so it doesn't have the reflex, twitch etc skills that bots are much better than humans at.

So you really have to create a game that is just as advanced as texas holdem or..
Do you think there is some kind of system you can make that actually makes it really interesting if all players have a bot as default with the game... and there are no better bots?

Share this post


Link to post
Share on other sites
You could make it harder for the bot to tell what is "important". E.g. As far as I know, there are no bots for the online version of the trading card game Magic: The Gathering. This is because it is hard to come up with a "criteria" for what is a good move. Likewise, there isn't any good bots for Starcraft either.

If "important" moves are as simple as "if my opponent tries to cast spell X, I need to respond with spell Y", then it is a lot easier to come up with a bot. In contrast, in Magic: The Gathering, even if both players play with their hands revealed, it is usually not clear what the "optimal" response is.

Share this post


Link to post
Share on other sites

You could make it harder for the bot to tell what is "important". E.g. As far as I know, there are no bots for the online version of the trading card game Magic: The Gathering. This is because it is hard to come up with a "criteria" for what is a good move. Likewise, there isn't any good bots for Starcraft either.

If "important" moves are as simple as "if my opponent tries to cast spell X, I need to respond with spell Y", then it is a lot easier to come up with a bot. In contrast, in Magic: The Gathering, even if both players play with their hands revealed, it is usually not clear what the "optimal" response is.


Yeah.. I think it's easier to create something advanced like poker or magic the gathering because they are card games.. and RTS because it's just... so damn much thhings todo and control.
What about a FPS or RPG combat like world of warcraft? That's pretty hard to create somethign as advanced as a card game.

Share this post


Link to post
Share on other sites
@glhf: I'm a little confused, do you have a specific game genre in mind? It sounded like you were talking about FPS, but then turn-based and card games came up. Or do you just want to generally create a game that can be bet on, and the genre will suit that goal?

Just to broaden the scope for a bit, here's some general thoughts on cheating. The types of cheat that come to mind for me are:
- Reaction time/motor skills, e.g. an aim-bot.
- Privileged information, e.g. seeing through walls, knowing other players cards.
- Number crunching, e.g. poker hand odds calculators, apparently frequently used online with plugins for many sites and poker apps.
- Taking a dive, e.g. boxing, horseracing, or anything where you bet on someone else's performance.
- Players forming teams outside the rules, e.g. poker players or FPS players teaming up to destroy another player.
- Multiple people = 1 player, e.g. assistance at trivia games.
- You scratch my back... and I won't scratch yours, e.g. gear swaps where there's no built-in mechanism.
- Making promises outside the rules and reneging, e.g. gentlemen's agreements in poker or EVE. Broader version of the above.
- Me and my friends are all top chaps, e.g. karma hacks.

So if people will be betting money there's more than just the technical issues to deal with. Some will probably fall in the "it was your own fault" category, e.g. if greedy players get scammed. Some could be moderation hell.

As far as my (admittedly confusing) suggestions regarding FPS games, I'll try to explain more. Below are two handsome stick-men which represent the idle model for a player. The first game the server moved the co-ordinates of the model down and left. The second game it moved the co-ordinates of the model up and right. In game one the server would compensate by telling the client that the player position is further up and right, which would leave the polygons nicely centred. In game two the server would compensate by telling the client that the player position is further down and left, which would also leave the polygons nicely centred. However an aim-bot which just used the co-ordinates of the player without correcting for the bias in the models would consistently miss shooting the player's head, and hit them in the arm instead. This bias would both make the aim-bot suck, and be statistically detectable by the server. A bot could be written to analyse the model geometry and estimate the offset, but a polygon soup can be obfuscated a bit, plus it may cause a noticeable delay detecting the bias. In addition, for distant players a model can be so low-polygon that it could be created and randomly offset at run-time, providing no time for those calculations without dropping the cheater's framerate from the extra load.

stick1.pngstick2.png
As far as the thing about them aiming too well, it's essentially using an auto-aiming system that is based on how people aim, e.g. the more distant the target, the faster the target moves, the less aiming time the player has, the harder it will be to hit. If the player is more accurate than the auto-aim would be, their aim is dumbed down to be as good as the auto-aim. Edited by jefferytitan

Share this post


Link to post
Share on other sites

Yeah.. I think it's easier to create something advanced like poker or magic the gathering because they are card games.. and RTS because it's just... so damn much thhings todo and control.
What about a FPS or RPG combat like world of warcraft? That's pretty hard to create somethign as advanced as a card game.


The last time I played online poker, it was actually rampant with bots. As a testament to their efficacy, poker sites say that bots give players an unfair advantage and banned them. Bots are also able to beat professional players: http://en.wikipedia.org/wiki/Computer_poker_players.

Actually, I am going to eat my words: it might not be harder to make bots for Magic: The Gathering and Starcraft than Chess or poker. There are probably so many more bots for chess and poker because they receive a lot of academic attention, and there is a lot more money involved. I work in a university mathematics department, and I am pretty sure a handful of professors and graduate students could easily build a Magic: The Gathering or Starcraft bot if sufficiently motivated.

So, I think if you are planning incorporate gambling into your game, people will certainly start trying to "beat the system" using bots. Unfortunately, I do not think it would be fruitful for you to think about how to design the mechanics of your game to prevent bots. The question of "why is it easier to bot in some games (e.g. Chess) but much more difficult in others (e.g. Go)" is complicated and highly technical. It is not as straight forward as "making the game more complex" because what is "complex" to a human might not be "complex" to a computer and vice versa.

Perhaps there is another approach.

Share this post


Link to post
Share on other sites

Actually, I am going to eat my words: it might not be harder to make bots for Magic: The Gathering and Starcraft than Chess or poker. There are probably so many more bots for chess and poker because they receive a lot of academic attention, and there is a lot more money involved. I work in a university mathematics department, and I am pretty sure a handful of professors and graduate students could easily build a Magic: The Gathering or Starcraft bot if sufficiently motivated.

So, I think if you are planning incorporate gambling into your game, people will certainly start trying to "beat the system" using bots. Unfortunately, I do not think it would be fruitful for you to think about how to design the mechanics of your game to prevent bots. The question of "why is it easier to bot in some games (e.g. Chess) but much more difficult in others (e.g. Go)" is complicated and highly technical. It is not as straight forward as "making the game more complex" because what is "complex" to a human might not be "complex" to a computer and vice versa.


Computers offer a definite advantage in statistics (humans are terrible) and some advantage at exploring future outcomes (humans are more intuitive, computers are more precise). My suggestion is to look at games where (a) potential outcomes cannot be efficiently enumerated (b) a position part way through the game cannot be accurately scored or ( c) human psychology is a large factor in winning. For (a), combinatorial explosion or continuous (rather than discrete) domains are good. For (b)... hard to say. Very complex domains, incomplete knowledge, sudden game-changers. And ( c), things like betting work quite well. It can be hard to suck a human into betting when you want them to, and they may guess your betting strategy and use it as another conduit for information. Add in bluffs, double bluffs, etc, it gets complicated. Edited by jefferytitan

Share this post


Link to post
Share on other sites
Botting is prevalent in every complexity of game. Here's a subscription based software for numerous 3d MMO's that killed a game I loved called Darkfall Online. If the game is any good to the point of items/accounts having real value, people will pay money to have an advantage. http://www.damncheaters.com/ Notice their "In Development" section has Diablo 3 and Tera Online.

That's a polished product that charges money to cheat in games, almost every game I've played has had small time 3rd party scripting programs created by players/guild leaders who pass it to their guildmates/friends.

Share this post


Link to post
Share on other sites
[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]

[background=rgb(250, 251, 252)]We will assume that ALL of your playerbase are using the best bot available for the game. (even field)[/background]

[/font]
[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]

[background=rgb(250, 251, 252)]How do you think this would work out?[/background]

[/font][/quote]
Well, you'll achieve your goal of players playing on an even level... But let's try not assuming that if you allow players to use bots then every single one will use the same bot. Assuming the game is a deathmatch kind, and autoaim and a radar is something that's easy to implement, the real competition in bot AI will be in making the right decisions on when and where to go. Because when your bot and another bot face each other the winner is determined by damage/health ratio, a duel is pretty straightforward, but once a third bot is added in the equation your bot has a lot less chances of surviving another encounter since the third bot might take an opportunistic approach. In the end who's AI can take more variables into account and read the other bot's behaviour better is going to be the winner. Just like it is with poker bots.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement