Anti botting design in combat systems?

Started by
13 comments, last by eugene2k 11 years, 10 months ago
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.
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.
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................
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.
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.
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.
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.

o3o

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?
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.

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.

This topic is closed to new replies.

Advertisement