

Robot wars break out on poker sites - mootothemax
http://www.theregister.co.uk/2010/11/12/poker_bot_confidential/

======
bl4k
This cat and mouse game is very interesting. I wrote a bot years ago that was
easy to implement, since you could hook into the poker clients and listen for
the window handler events. The more recent versions actually implement the
console as graphics and the buttons as custom controls so that you can no
longer do this. The modern bots use OCR to read the table play, so the sites
responded again by changing it up.

Having a single bot in a tournament is not bad per se, since they are easy to
identify (they do not respond to player rage, they shove or call on hands that
may be +EV isolated, but in tournament play are not, and they are the player
who come final table sit all quiet and do not respond to deals) - the prob
arises when bot networks join a single tournament and collude - especially on
the double or nothing tournaments (where if you finish in the top half you get
double your money, or nothing)

Stars and FTP are very agressive with combating the problem. I receive refunds
all the time because of previous games that have been investigated, so it is
great that other players can rely on their work (and it is good to login and
find that you have extra money because they are doing their job). These sites
are making a lot of money on rake but they are definitely re-investing it to
protect the players. They have hired some of the best security guys in the
world to work for them (I know one of them, he should do an AMA because it
would be super interesting).

~~~
eclark
The profitable bots are a lot more than just shove bots. They take into
account: Hand ranges, Nash Equilibrium (This is really cool stuff imo),EV of
flop/turn/river, return from promotions, rake,reaction time of user, position,
table image

The last I saw the custom bots being run were buying up hand histories by the
millions and using pre-flop agression and all the other factors to preform
clustering. Then they clusters were used to choose a strategy.

Stars and FTP are both pretty good about finding bots. But poker bot writers
are learning from game bot makers. They are pretty well protected on the
client end. So as long as the bots have some variance they are really hard to
spot. And a lot of the variance comes from choosing how to play the person who
is betting. Though it looks like some bot writers have not been putting enough
variance into their bots.

For a long time the big push was to find ways to make the input look like it
came from a human. Moving the cursor to the exact middle of the button you
want to push every time in <100ms is a dead give away. I don't really know if
this was ever something that FTP and stars used though.

~~~
LiveTheDream
Clicking the button in the exact same spot is not a good way to detect a robot
though. Many multi-tabling players use hotkeys to trigger their actions, which
is much nicer than a mouse and is almost essential once you get up to 12+
tables.

~~~
eclark
AutoIt and others don't actually click the button though. So they are not the
same behavior.

Poker sites can tell if the keyboard interrupt came from which usb id so that
isn't really an option. Moving the mouse is much more likely not to have a way
to see if the hardware caused it. Hence why it is used more often.

------
daeken
I'm giving away a piece of data I planned to keep private and use for my own
purposes, but here goes. Full Tilt Poker is now fully Qt. While they built
their own slightly modified Qt binaries, it's not hard to get QtScript
embedded in FTP. Once you have this, you can get the QObject corresponding to
the window handle of a game table, and work backwards from the signals/slots
there to find the model QObject. From here, you can enumerate all of the
methods and events that the table model object exposes, giving you full access
to all information that the client has, as well as allowing you to directly
control the client.

I built a framework that lets me use QtScript as a bridge from .NET to FTP,
enabling me to trivially introspect and manipulate the game client. Never had
time to actually hook bot logic up to it, sadly.

~~~
daeken
For the record, i'd be willing to sell all my work to this end, if anyone is
interested in botting FTP. Shoot me an email if you're interested.

~~~
jberryman
Thank you, sir, for putting a bit of the "hacker" back into hacker news.

------
RickHull
> _The suit also accused Full Tilt pros Chris Ferguson and Andy Bloch of
> creating bots. ... Ferguson became a big tournament winner, with very little
> tournament experience, because of the edge he had._

 _The_ Chris Ferguson? aka "Jesus"? I don't know which time period they are
referring to, but he has been one of the most recognizable, well-known
tournament players of the last 10 years.

From <http://en.wikipedia.org/wiki/Chris_Ferguson>

> _In 1994, he began playing in tournaments in California and in 1995, he
> entered his first World Series of Poker. Ferguson beat T. J. Cloutier at the
> main event of the 2000 WSOP to win the $1.5 million prize._

So he became a winner of the WSOP after first entering 5 years previously. In
what way is that "very little tournament experience"? I must be missing
something...

~~~
gojomo
WSOP is far from the only tournament; they're implying Ferguson was a
tournament winner very soon after first starting to play in them. Do you
believe otherwise?

------
cryptoz
> This score is based on a composite of a variety of factors including the
> length of their sessions, the standard deviation of those lengths, times
> played, and consistency of play schedule

It seems that anyone able to write a poker bot is able to tell it to take
breaks every now and then. This doesn't seem like a war the poker sites can
win.

~~~
rbanffy
> anyone able to write a poker bot is able to tell it to take breaks

You can always go after those players who take breaks that are too random ;-)

~~~
uptown
The players still need to be mindful of how successful they are. It's easy to
stand out when you're using illegal methods. Take a look at the plot from this
article showing one poker cheater's win rate:

[http://simplecomplexity.net/catching-an-online-poker-
cheater...](http://simplecomplexity.net/catching-an-online-poker-cheater-with-
data-mining/)

~~~
shasta
Your article is about actual cheating, not just automated "bot" play

~~~
uptown
I know. But presumably a bot is programmed to play consistently well ...
otherwise there's no point in automating the process. I'm not saying a bot's
performance would approach that of someone that's cheating, but if they can be
consistently successful to the point where they can play a game unattended, I
suspect their dot would fall towards (or beyond) the edges of most other
players.

~~~
BrandonM
The majority of recreational players are really bad. All you have to do is
make a bot that is a little bit better and not trivially exploitable. It
doesn't matter how good you are, you still lose some. All you have to do to
win money in the long run is be "better enough" than the majority of the
competition that you can beat the rake.

How would you tell the difference between a bot who plays consistently well
and a human who does? It's pretty trivial to legitimately put in 10K hands per
day. You think that with 250K hands in a month, a human player doesn't start
to play consistently well? At that point, there will be long stretches where
the players is basically on auto-pilot, a human-powered robot if you will.

~~~
jhamburger
Honestly one difference that comes to mind is that machines don't go on tilt.
I knew quite a few people in the community of winning players and I never came
across a single one who didn't admit to playing differently/worse while on an
extended losing streak. And that includes the 250K hands a month guy. I think
for a bot to be undetectable you would have to actually mimic emotional
responses to losing money.

~~~
BrandonM
I envision a bot as a neural-network-based engine that adjusts its play based
on fitting different opponents into different patterns. Honestly, the easiest
way to develop a potentially-good bot would be to give it every piece of input
and try to evolve a good player, as opposed to trying to develop all the logic
manually. Such a bot is guaranteed to have some artifacts which cause it to
respond to certain situations and generally play sub-optimally, basically
making it look like a human player, anyways.

------
uptown
I'm surprised no poker site has launched a site that specifically geared
towards algorithmic players. Seems like the kind of thing that might have a
niche.

~~~
die_sekte
It seems so. However, notice that the average poker bot programmer is a
20-something, highly intelligent hacker and that most of them don't have all
that much money. Why do they write poker bots? (a) to make money. (b) to beat
the system. (c) boredom.

(a) doesn't work when all the other players are also good poker bots. Botting
lives from the simple fact that most poker players are shit. (b) also doesn't
apply, for obvious reasons. So, now you are left with the (c)s. Those will
leave when they find something more interesting.

Seemed to be a good idea. Well, it's probably not.

(PS: There are poker bot competitions. The bigger ones have university teams
competing, the smaller ones (the ones I found via Google) usually don't get
enough entrants.)

~~~
uptown
I guess the stock market is the natural alternative for applying similar
skills in a much bigger game.

------
gavingmiller
There was a fantastic series of technical articles written a couple of years
ago on building a poker bot: [http://www.codingthewheel.com/archives/how-i-
built-a-working...](http://www.codingthewheel.com/archives/how-i-built-a-
working-poker-bot)

The series of articles goes into detail on how to write a successful bot -
Statistics, OCR, hooking dlls, etc. There is a ton of information that lays a
solid ground work for doing this yourself (if you have the time.)

~~~
patrickk
That link is superb; highly, highly recommended. Can't believe I didn't come
across it before. You should submit it separately. I would except you should
grab the karma (if you care about it) ;-)

------
VladRussian
poker sites where bots are welcome <http://www.nyse.com/> and
<http://www.nasdaq.com/>

~~~
jrockway
And you get paid whether you win or not.

------
gyanguru
These guys knew they had bot. PokerStars do a good job removing them. Full
tilt knew they were there but kind of tolerated them (no idea why). The bot
community says (people who made them) they had unwritten agreement of
tolerance from FTilt. But now HR2267 passed which give high hopes of getting
online poker regulated and all these sites would want a license so they are
cleaning up the ship to get in good books.
<http://www.govtrack.us/congress/bill.xpd?bill=h111-2267>

Also look at Lee Rousso case against Washington state which has a law making
online poker play a felony. State Supreme court ruled the law as
constitutional. Now PokerStars had moved out of Washington state for the same
reason.

If it was pre HR 2267 PokerStars wouldn't have done it.

------
lmkg
From the title, I was expecting this article to be about how the bots were
evolving to play against each other. Sort of like HFT algorithms. Fortunately,
it seems like they're still a small enough piece of the population that that's
not a significant issue.

------
patrickk
Betfair actually provide an API, so that you could easily write a bot for it:

[http://bdp.betfair.com/index.php?option=com_content&task...](http://bdp.betfair.com/index.php?option=com_content&task=blogcategory&id=0&Itemid=78)

They provide the API for the following: ‘Exchange Baccarat’, ‘Exchange
Blackjack’ ‘Exchange Hilo’ and ‘Exchange Poker’. From reading the site,
'Exchange' seems to mean the games are 25% faster than standard.

Haven't developed anything using their API, but it looks interesting. Also the
polar opposite approach of PokerStars and FullTilt.

------
markbao
If there's one thing I'm afraid of, it's the fact that robots are written to
expect human input and respond to that input, but in practice, robots also
unknowingly receive robot input, which results in weird, unexpected things
happening. One example is high-frequency trading robots in the stock market,
where one trade (or bug) could set off stuff like flash crashes
(<http://www.nytimes.com/2010/11/09/business/09flash.html>)

------
flipper
Do any of the sites use captcha? That wouldn't stop a human nursing a PC
running bots, but it would stop someone starting a bunch of bots, then going
to sleep for 8 hours.

------
vinhboy
argh.. every time I read these articles I wish my wife would let me play poker
again.. =( .... I am so sad...

------
mikek85
If you can't beat a bot then poker is not the right game for you.

~~~
icey
There are bots that are capable of beating professional players today. Is
poker not the right game for them either?

<http://en.wikipedia.org/wiki/Polaris_(poker_bot)>

Hands in limit poker nearly always have a mathematically correct way to play;
if a program executes the correct play every time and isn't figured out as a
bot the program stands a pretty good chance of being profitable.

Most human players don't have the advantage of being able to memorize the
correct action for every scenario, a well written bot has an absolute
advantage with regards to the math involved.

Additionally, a poker bot remembers every hand it's ever played, as well as
every hand it's ever seen played - there has been poker software available for
many years that will analyze other player's play for weaknesses which can be
trivially exploited. I would assume diligent poker bot creators know about
this type of thing and are taking advantage of that as well.

~~~
mikek85
Ok, calm down.

I should've clarified no limit. This article is presumably talking about no
limit - since that is by far the predominant game.

With all due respect, you have a poor understanding of poker if you really
think there is a way to "memorize the correct action for every scenario".
Poker is about interaction, spotaneity, 'feel', instinct. Mastering those
things is where to get a real edge, not math - particularly in no limit. Hence
my comment.

~~~
icey
I'm sure I have a lot of room to improve my game; I've only got around 125k
hands logged and haven't played seriously in 4 or 5 years.

That being said, I'm fairly certain the article was not talking about no-
limit. The vast majority of poker bots play limit, where there is a clear
advantage from playing the mathematically correct way.

The idea that you can play winning poker with "spontaneity" and "feel" is
exactly how these bots make money. I'm not going to waste my time trying to
explain it to you. If you really care, spend more than 30 seconds reading up
about the mechanics of limit poker.

I would suggest starting here, since it has a reasonably compact rundown of
the math behind the game:

[http://www.amazon.com/Theory-Poker-Professional-Player-
Teach...](http://www.amazon.com/Theory-Poker-Professional-Player-
Teaches/dp/1880685000)

~~~
danenania
There is at least as clear an advantage from playing 'mathematically correct'
in no limit. It would be a much more difficult bot to write because adding the
bet size variable would greatly increase the complexity of the math, but it
could also probably outperform human players by a much greater margin for the
same reason.

An objection that could be raised is that psychological factors carry more
weight in no limit, especially short term psychology (recognizing when a
player is on tilt), but I see no reason why a sophisticated program couldn't
integrate these factors better than a human. Psychology in online poker is
really just pattern analysis.

