Online games from chess and backgammon to 1st person shooters are rife with individuals using computer assisted play or computer robots – even whenever there is no cash at stake. Together with the ideal program any player has the ability to perform at a world championship level ruining the game for honest players. What makes online poker different, considering there are huge amounts of money at stake?
In this column I will explain how I developed a poker bot and what I learnt from this adventure. My judgment is that though it is possible to construct a poker playing bot the threat from poker bots to the online poker player is extremely small to non-existent Situs Poker.
For interest and college courses I had previously written computer playing programs or bots for games including chess, Connect 4, Othello, backgammon, bridge and various other people. For games such as Connect 4, Othello, chess and backgammon where all people have the very same available information about the game state, the idea on what steps to take to to construct expert bots is well-known. Deep search techniques, looking many moves ahead, are used for games like Othello and chess. Recently (10 years ago) it was discovered neural networks could be taught to play backgammon superior than almost any individual player. Games such as poker and bridge contain hidden information where the players can see their own hand but not that of those other players. The published theory behind writing expert computer bots for these incomplete information games is decades behind the comprehensive information games and there are doubts techniques will be designed to ensure computers can play at expert or world championship level. At present the best techniques for these incomplete information games seem to involve some form of simulation and opponent modelling.
Anatomy of An Online Poker Bot
1) Data Gathering – observing the game state and background
2) Data Processing – using the information from the data gathered to establish whether or not to fold, call or raise.
3) Output – Pressing the appropriate button on the poker room customer.
My app was written in early 2004 with Microsoft .Net C++ and was developed to play at the same online room only.
My bot gathered information about game state and history from online poker tables by taking repeated screenshots and analysing the image. To begin with I just observed games, taking screenshots automatically so I can gather data on the job of the cards, chips and button. From finding out the color of a certain few pixels I was able to gather all this advice concerning their condition of the game.
Eventually I was able to collect information from multiple poker tables (4 at the same time) by repeatedly bringing each window into the foreground and taking a screen shot. In this screen shot I managed to pinpoint my cards, board cards, button position, who was simply abandoned in the hand, pot size and player bet sizes.
2) Data processing
This is the component that eventually bought my poker bot project to an end, struggling to develop a strong enough strategy to win consistently. I tried various rules based, neural net and simulation practices. At best my bot was able to produce a very small profit at £ 1/2 and £ 2 /$4 limit hold’em, but no where close to the thousands of dollars each week I envisioned earning when I started this project. Ultimately it just was not worth my time to keep on to put funds into developing my poker bot further.
This is actually the easiest component to produce. This involved programmatically moving the mouse pointer to the suitable screen co ordinates and then sending a mouse down/mouse up command signalling a left-click. I did consider adding the ability for the bot to use chat but never progressed that much better.
Even though you may possibly come across a poker playing bot whilst playing online the chances are it plays very badly. At any given level of play you’re far more inclined to operate in an expert human player than an expert computer player.