Hi all,
Although I am using Java, this is not really a Java question - I hope
you can bear with me...
I'm part of a team which builds an online gaming site (chess,
checkers, backgammon, etc).
I'm assigned to work on a cheaters detection system, mainly players
who use 3rd party software to decide which move to play.
I'm trying to come up with ideas for 'behavioral patterns' to detect
such players.
So far, I came up with these ideas:
1) Relatively long and constant time to make a move (especially for
simple/obvious moves), due to switching back and forth between the
online board and the software board.
2) Unusually long winning streaks.
3) In chess - perfect opening knowledge every time.
4) In chess/checkers - perfect tactical play in relatively short
time.
Do you guys have more ideas?
Sorry again for the somewhat unrelated post.
Best wishes,
Kate
Abhishek Srivastava - 06 Jun 2007 06:13 GMT
On Jun 6, 9:04 am, kate.lo...@gmail.com wrote:
> I'm part of a team which builds an online gaming site (chess,
> checkers, backgammon, etc).
[quoted text clipped - 4 lines]
> such players.
> time.
.....
> Do you guys have more ideas?
>
> Kate
I am assuming that
Hard way... Do heuristic analysis of the moves.
Run a software yourself where the moves of the suspect player are
checked against your software's top recommended moves. If the suspect
player basically mirrors the moves of the top 2-3 recommended moves of
the your own software *ALL* the time(say 10-20 moves), he is probably
cheating.
Easy way... In human versus human games, duplicate the real world.
We are often wary against other players because others warn us that
such and such player is a cheater i.e. a reputation system. Allow the
players to be officially accused of cheating i.e. have a "I think he
cheated" button. If some player has a high degree of wins and a high
degree of "cheating", you can monitor such players more closely. Or at
least other players can see the "possible cheater" flag and make an
informed decision about whether they would like to play against this
person. You can also have some system to review the recorded games and
check if the accusation is valid or not.
- Abhi
Ed - 06 Jun 2007 11:07 GMT
On 6 Juni, 02:04, kate.lo...@gmail.com wrote:
> Hi all,
>
[quoted text clipped - 8 lines]
> I'm trying to come up with ideas for 'behavioral patterns' to detect
> such players.
...
> Best wishes,
> Kate
Sorry, Kate, I've no behavioural patterns to offer, but more important
the behaviours themselves is, perhaps, their degree of effectiveness,
and that you should be oh-so aware of this degree of effectiveness.
Whatever mechanism you design will be imperfect: if you were to build
a 100% perfect mechanism, then you would have, in a round-about way,
proved the impassibility of Turing Test, which would be stunning.
So you will hit false-positives: you will end up accusing a human
player of being a robot; in fact, you will do this many times (if your
site's popular).
If you do this so many times that you alienate your client base more
than they would be alienated by the knowledge that they may be playing
robots rather than other humans, then your mechanism is not worth
persuing.
.ed
--
www.EdmundKirwan.com - Home of The Fractal Class Composition
Christian - 06 Jun 2007 14:08 GMT
kate.lomov@gmail.com schrieb:
> Hi all,
> 1) Relatively long and constant time to make a move (especially for
> simple/obvious moves), due to switching back and forth between the
[quoted text clipped - 10 lines]
> Best wishes,
> Kate
1. large minimum time may be an indicator.. better would be to find a
way to detect if the user is tabbing between applications..
2.
good players have also long streaks.
or players that prefer playing against weaker players..
3.
in chess a trained player has a perfect opening knowledge also its
rather often that computers don't play the opening like its in the book..
4. a good chess player knows rather a lot of positions by heart (several
Millions in fact).. so that won't be nice against better players..
besides trying to overwatch tabbing my approach would be to look if some
of the popular chess programs like Fritz expose an api that you can use
to see if the player does the same moves as the chessprogram..
so you had at least the chance to catch someone that has a chessprogram
running on some different computer..
kate.lomov@gmail.com - 06 Jun 2007 16:18 GMT
Thank you guys for your comments and suggestions, I'll definitely take
them into account.
Best wishes,
Kate