Need some ideas

K

kate.lomov

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
 
A

Abhishek Srivastava

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

Ed

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

Christian

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

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

kate.lomov

Thank you guys for your comments and suggestions, I'll definitely take
them into account.


Best wishes,
Kate
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,995
Messages
2,570,226
Members
46,815
Latest member
treekmostly22

Latest Threads

Top