Discover the best of the web!
Learn more about Digg by taking the tour.
How I Built a Working Online Poker Bot (And thanks for the $
codingthewheel.com — Keeping the technology of poker bot building secret is like declaring that only criminals can carry handguns. So here's everything you ever wanted to know about building a poker bot, part 1.
- 1306 diggs
- digg it
- CodingTheWheel, on 05/10/2008, -7/+42MEant to post this in Programming... sorry.
- UberNick, on 05/10/2008, -7/+12google cache has it:
http://64.233.169.104/search?hs=sUq&hl=en&lr=&c2co ...- thatsbologna, on 05/11/2008, -15/+2CodingTheWheel didn't ask for a mirror. Thanks for it though. *diggs him down*
- UberNick, on 05/10/2008, -7/+12google cache has it:
- phillc, on 05/10/2008, -9/+15I cannot believe how little work there is in that... wow
- Matt2k, on 05/11/2008, -0/+24There is a tremendous amount of work in that. Reading the screen is just one part of it, simulating the output, managing the different tables, writing good poker strategies. Did you see the rule editor he had programmed?
- burrgrinder, on 05/11/2008, -1/+3That's not a "tremendous amount of work" for a competent programmer.
Acquiring the skills needed is the hard part, the bot itself probably only took a couple of months to get working from the idea stage (minimal work in software development). - glinsvad, on 05/11/2008, -0/+1Bah, it really needn't be this over-engineered. You can easily create a simple poker-simulator in Matlab in a couple of days... then everything else it just a matter of coding up automation.
- burrgrinder, on 05/11/2008, -1/+3That's not a "tremendous amount of work" for a competent programmer.
- sickthoughts, on 05/11/2008, -0/+1i 100% agree
- Matt2k, on 05/11/2008, -0/+24There is a tremendous amount of work in that. Reading the screen is just one part of it, simulating the output, managing the different tables, writing good poker strategies. Did you see the rule editor he had programmed?
- dupswapdrop, on 05/10/2008, -23/+4I sometimes play online poker you can tell who the bots are just raise like mad on your hand even find its bad the bots always fold.
- willynilly, on 05/10/2008, -24/+15I guess English isn't your primary language.
- dimondghost, on 05/11/2008, -11/+0hehe nice one +1
- Badandy127, on 05/11/2008, -4/+17Way to be a dick to someone trying to use a language that is not native to him. Bet you feel real good about yourself, don't you Jebediah?
- dannyboy3020, on 05/11/2008, -5/+7Must you be a ***** asshole in all of your comments?
- MtheoryX, on 05/11/2008, -3/+10Judging by all your "were, was, werent, etc" comments, you're a tremendous tool who butchers the language, as well.
You insist on correcting people in nearly all your comments; however, in nearly all of them, you are clearly in the wrong.
In summation, STFU already; you are an idiot. - Scorps111, on 05/11/2008, -0/+3@Willynilly you are a TOOL.
Get a life, stop bitching like a twelve year old chav and find some friends.
You seriously are the most retarded person i have ever encountered, reading your previous comments on other articles you have no idea what you are talking about.
So you offend people to make it seem like your correct and they are wrong?
- willynilly, on 05/10/2008, -24/+15I guess English isn't your primary language.
- Feep, on 05/10/2008, -2/+102Looks like the server folded.
- Accolade1, on 05/11/2008, -2/+18Shouldn't have gone all-in.
- moyness, on 05/11/2008, -0/+5what a flop.
- c0baltfish, on 05/11/2008, -1/+2Nah it's just sitting out.
- Accolade1, on 05/11/2008, -2/+18Shouldn't have gone all-in.
- wirez, on 05/10/2008, -1/+18http://209.85.173.104/search?q=cache:aNwL8l3VCBUJ: ...
- wirez, on 05/10/2008, -0/+5Oops, this one is better:
http://209.85.173.104/search?q=cache:aNwL8l3VCBUJ: ...
- wirez, on 05/10/2008, -0/+5Oops, this one is better:
- socivitus, on 05/10/2008, -13/+1The digg effect strikes again! ^_^
- Jayso89, on 05/11/2008, -0/+2You need a cool comment like Feep up there
- KirbyMeister, on 05/10/2008, -2/+46Well it's secret again now that it's been dugg.
- Ocelot13, on 05/10/2008, -22/+438 diggs, 3 comments. front page, no mirror, but already down.
wow.- hello2usir, on 05/11/2008, -3/+5It hit Reddit front page as well as other news aggregator sites long before it got to Digg.
- zongamin, on 05/12/2008, -0/+1Oh please ***** off. Digg isn't the only place people find links you know. Also this is someones personal site - what do you expect?
- Iamthechamp, on 05/10/2008, -22/+339 diggs, makes front page then crashes? What is happening to digg?
- IllBeBack, on 05/11/2008, -1/+2You must be new.
- turok64, on 05/10/2008, -16/+6Suppose you build a bot, you wont make much money anyways, you might even be a loosing player. Youll be banned quickly too.
- smthop3, on 05/11/2008, -0/+7Stop spelling LOSING wrong people!
- jplily, on 05/10/2008, -18/+4Looks like the server folded.
- seaner, on 05/10/2008, -9/+3http://64.233.167.104/search?q=cache:aNwL8l3VCBUJ: ...
- aflaks, on 05/10/2008, -26/+32how about the actual program instead of how to make one?
- c0baltfish, on 05/11/2008, -7/+24How about doing something for yourself? The guy gave you the hard parts all you have to do is program it.
- JudgeMonkey, on 05/11/2008, -7/+5Oh, is that all? Well then.
- Incomp3tnt, on 05/11/2008, -7/+2I learned my first programming language when I was 13, it only took me a couple of months. True, it was Pascal which is slightly simpler than C++, but it's not difficult. Knowledge is power, and you never know when having the ability to create a piece of code to do whatever you want will come in handy. Like a poker bot, for example.
- JudgeMonkey, on 05/11/2008, -7/+5Oh, is that all? Well then.
- strictnein, on 05/11/2008, -6/+28Waah.... I just want to push a button and make money!
Unless you work for Nintendo, life doesn't work that way.- J0415, on 05/11/2008, -1/+1You can push a button and make money at Nintendo?
Waah... Where do I apply?
- J0415, on 05/11/2008, -1/+1You can push a button and make money at Nintendo?
- Louis11, on 05/11/2008, -3/+14Programming and developing it yourself is half the fun.
- mossblaser, on 05/11/2008, -0/+1Where's the skill in that! ;-)
- c0baltfish, on 05/11/2008, -7/+24How about doing something for yourself? The guy gave you the hard parts all you have to do is program it.
- deanimate, on 05/11/2008, -10/+3its that simle? wow i never realised. shame i can only make sense of colours and non-sensical animals.
:/ - teambosun, on 05/11/2008, -20/+2This is G o o g l e's cache of http://www.codingthewheel.com/archives/how-i-built ... as retrieved on May 10, 2008 01:49:23 GMT.
G o o g l e's cache is the snapshot that we took of the page as we crawled the web.
The page may have changed since that time. Click here for the current page without highlighting.
This cached page may reference images which are no longer available. Click here for the cached text only.
To link to or bookmark this page, use the following url: http://www.google.com/search?q=cache:aNwL8l3VCBUJ: ...
Google is neither affiliated with the authors of this page nor responsible for its content.
These search terms have been highlighted: coding wheel built working poker
How I Built a Working Poker Bot, Part 1
Friday, May 09, 2008
Introduction
Several years ago, a client asked me to come up with a prototype for a real-money online poker bot. That's right: a piece of software you park on your computer while it goes out to a site like PokerStars or Full Tilt and plays no-limit Holdem for you, at 4 or 14 different tables, for real-money stakes.
If you're a poker player, and particularly if you're an online poker player, you've probably heard rumors about the rise of the poker bots. Unfortunately there's very little hard information out there (for obvious reasons) about how to build one of these bots. In fact, many so-called authorities still dismiss poker bots as a relic of the overactive poker player's imagination.
Well, I'm here to tell you that online poker bots are 100% real, and I know this because I've built one. And if I can build one, well. Anybody can build one. What's more, over the course of this multi-part article, I'll show you how. But first, a teaser (click on the image for a larger version):
Functional poker bot, playing 3 tables
That, ladies and gents, is a picture of a full-featured poker bot managing three play-money tables (note: this same bot also handles real-money tables) at an honest-to-goodness, real-money online poker site. Of course, it could be any site. The bot implementation I'm going to reveal will work at all major online poker sites, including Poker Stars, Full Tilt, Party Poker, Ultimate Bet, and most other major venues.
Why are you giving this information out?
I debated for a long time whether or not to make this information public, as I'm a poker player myself and have no desire to see the game ruined by an avalanche of poker bots. It's not that building a poker bot is some sort of black magic, known only to the privileged few. Any competent programmer can build one. But this information hasn't, so far as I know, been collected and presented in one place, certainly not as a "How To" complete with sample code. So the question I struggled with was this: is it irresponsible to publicize this information, such that every Internet script kiddie out there now has the ammunition he needs to actually build a bot?
After thinking about it, I've decided that keeping the technology of poker bot building secret is like declaring that only criminals can carry handguns. The fact is, there are people in the world right now who are doing this:
Poker bots, underground online poker boiler rooms, and collusion are a reality. That doesn't mean online poker's not worth playing, just that it pays to be educated about what's possible. Furthermore, there should be public discussion regarding what to do about it because one thing's certain: computers and programming languages aren't exactly going to be getting less powerful. The rise of the poker bots is a virtual certainty. I'd like to see the major online poker venues open up their famously vague "bot detection" and "anti-collusion" strategies to public scrutiny, as cryptography and security providers learned to do years ago. The best security algorithms and techniques all have the weight of public review behind them and I don't see how online poker's any different.
But even assuming all that weren't the case:
* Poker bots already exist on the open market. Do a little creative Internet searching.
* The poker community suffers from an irrational fear of bots. I'd gladly risk my money against most homegrown bots and trust me: you would too.
* I believe that bots are actually good for the game of poker. Mike Caro, "the Mad Genius of Poker," expressed a similar idea years ago.
* Any programmer worth his salt can build a bot with or without this document. They already have.
If you're visiting this page from 2 + 2 or another poker community, and you want to stay on top of this article (which will be in several parts), you can subscribe to the Coding the Wheel RSS feed or get it in your email inbox as I don't participate in these communities often. For easy digestibility, I'll be organizing these posts using a question and answer format, as there's a lot of highly technical material to cover.
Now, without further ado, let's talk about the basics. If you're not a programmer, fair warning: highly technical, possibly excruciatingly boring material ahead.
Basic poker bot responsibilities
At a very high level, the poker bot is best analyzed according to the classic model of information handling: Input, Processing, Output.
You'll find that your programming tasks decompose rather nicely into these three basic stages.
Input. The input to the system is the poker client software itself, including all its windows, log files, and hand histories, as well as internal (often private) state maintained by the running executable. The goal of the input stage is to interrogate the poker client and produce an accurate model of the table state - your hole cards, names and stack sizes of your opponents, current bets, and so forth.
Processing. The processing stage runs independently of the other two stages. It's job is to take the table model assembled during the Input phase, and figure out whether to fold, check, bet, raise, or call. That's it. The code that performs this analysis should (ideally) know nothing about screen scraping or interrogating other applications. All it knows is how to take an abstract model of a poker table (probably expressed as some sort of PokerTable class) and determine which betting action to make.
Output. Once the processing stage has made a decision, the Output stage takes over. It's tasked with clicking the correct buttons on the screen, or simulating whatever user input is necessary in order to actually make the action occur on a given poker site/client.
How does the bot figure out what it's hole cards (and the board cards) are?
This is a broad question which it's better to break down into particulars. First of all, there's a very easy way to detect hole cards via a screen-scraping or "poor-man's OCR" approach. You don't have to be an image-recognition expert. All you have to know is how to use get the color of a handful of different pixels on the screen. Or to put it another way, for any given card in the deck, there are a handful of pixels you can test which will uniquely identify that card.
That's fairly easy to implement, and requires zero knowledge of OCR, image recognition, graphics processing, etc. But depending on the specific poker site, pulling card rank and suit information might be even easier. On some sites, the hole cards will be emitted into the real-time game summary info:
Dealing Hole Cards (4h 2c)
Occasionally you'll find that hole cards are emitted into the log file. Poker Stars, for example, conveniently emits this information into its log file, and it does so in real time (meaning you can snoop on it in real time, and in the next installment, I'll show you how):
MSG_TABLE_SUBSCR_ACTION
MSG_TABLE_SUBSCR_DEALPLAYERCARDS
sit1
nCards=2
sit3
nCards=2
sit5
nCards=2
sit6
nCards=2
sit7
nCards=2
dealerPos=3
TableAnimation::dealPlayerCards
MSG_TABLE_PLAYERCARDS 00260C82
::: 8s - MagicIcarus, on 05/11/2008, -3/+24The great thing about poker is that a lot of it isn't based on raw data, like a players bluffing habits or when he plays agressive as opposed to defensive. Poker has a very human aspect.
Sadly blackjack, and checkers have been completely figured out. Chess is very close. I wonder if it'll ever happen with poker?- yojiffyskippy, on 05/11/2008, -8/+4What do you mean by "completely figured out"? There are different "strategies" to Blackjack but none of them are perfect or "figured out" because Blackjack is a game of chance which depends on probabilities. Unlike Checkers and Chess which are not games of chance.
- caban, on 05/11/2008, -1/+4That it's a game of chance doesn't matter in the long run.
For example BJ and backgammon are games of chance, but you do have complete information even if some of that information is odds.
Optimal strategy for BJ can be calculated...you know what cards the dealer have and how he will act and you know the odds of your hand beating the dealer based on that information..
Problem is that even with optimal strategy the dealer have the edge.
For poker you don't know the odds since you do not know what the opponents have and how they will act...you have to estimate even the odds based on how you expect the opponent to play.- burrgrinder, on 05/11/2008, -0/+1But as per the article, you don't have to create a winning strategy, you just need one that will break even on average to reap the benefits.
- caban, on 05/11/2008, -0/+1Sure....against bad players you don't have to play optimal, so it's certainly possible to at least break even using a fixed strategy.
Compared with for example backgammon it's nearly impossible to make a bot that can consistently beat really good players though.
- caban, on 05/11/2008, -0/+1Sure....against bad players you don't have to play optimal, so it's certainly possible to at least break even using a fixed strategy.
- burrgrinder, on 05/11/2008, -0/+1But as per the article, you don't have to create a winning strategy, you just need one that will break even on average to reap the benefits.
- eyal0, on 05/11/2008, -1/+2An optimal strategy against an optimal opponent for Backgammon can be found, too, and there is plenty of good software that gets really close. But you can do better than that against a sub-optimal opponent. In backgammon, perfect play might have you winning most of the time but making a few strategic mistakes can move your opponent out of his comfort zone, where he's likely to make even bigger mistakes and you're likely to make more money.
Likewise, I think the same holds for poker. If you play perfectly (meaning, given your exact strategy, your opponents are still unable to do better than tie you) then you'll be a winning or break-even player. But if you can adjust your play to the table, you can get a strategy that is technically sub-optimal but at the specific table, better than the perfect play. Same as backgammon.- caban, on 05/11/2008, -0/+2No, it's not the same as backgammon.
The fact is that there exists a technically correct move for every situation in BG, you can see where to opponent have all their pieces and base your calculations around that.
If the opponent chooses to do suboptimal plays it doesn't throw you off but just increases your edge.
In poker, since you don't know what cards the opponents hold and how they will act with those cards you don't have complete information to work with. Pre-flop is easy to make correct calculations as to what is optimal play, but on the flop, turn and river you are basing your actions on guesses as to how your opponent is playing. If you decide it's optimal strategy to always fold unless you have two pair or better an opponent can easily take your money if he picks up on that, and you could earn a lot more from players that always will call you down with ace high or any draw.
So the optimal play in poker is to vary your strategy depending on situations and do a lot of guessing how you expect the opponents to act, and that makes it infinitely more complex to automate.
- caban, on 05/11/2008, -0/+2No, it's not the same as backgammon.
- caban, on 05/11/2008, -1/+4That it's a game of chance doesn't matter in the long run.
- jgtg32a, on 05/11/2008, -2/+2Yeah because you can see the other players and get a read on what they're thinking, oh wait.
It is very possible to play the deck and your hand and not worry about the others and you will do just fine. - CodingTheWheel, on 05/13/2008, -0/+0I think the incomplete information aspect of poker makes it less susceptible to being "solved" by a computer. Bots are most effective in certain scenarios, but dedicated bots have given some of the pros a run for their money, in publicized matches (for ex: against Phil Laak) though the pros are still coming out ahead. Not for long.
- yojiffyskippy, on 05/11/2008, -8/+4What do you mean by "completely figured out"? There are different "strategies" to Blackjack but none of them are perfect or "figured out" because Blackjack is a game of chance which depends on probabilities. Unlike Checkers and Chess which are not games of chance.
- Zihuatanejo, on 05/11/2008, -8/+47I played at a table with a poker bot once. It folded every hand except AA and KK and when it got those it just went all-in. Stupid people called. It made money.
- ElectricC0wb0y, on 05/11/2008, -0/+22Poker bots don't ruin anything but the fun. Collusion is the real issue in online poker.
- alittleroy101, on 05/11/2008, -0/+9If it only played those hands, it would be a bad bot. People would figure it out fairly quickly. Plus, with playing such few hands, it would wind up losing to the rake in the course of its playing sessions.
- pkcs11, on 05/11/2008, -1/+14You would lose far more from SB and BB if you did this. I call BS.
- rjosal, on 05/11/2008, -0/+2That, and if I had a nickel for every time bullets were broken... And if you get cowboys, at least one ace drops on the flop, just to spite you.
- Pixelpaws, on 05/11/2008, -2/+7I've played at a real poker table with players that did the exact same thing..
- CodingTheWheel, on 05/13/2008, -0/+0I take that comment as tongue in cheek but that, in a nutshell, are the situations in which you want the bot to play. You just want to stack off against some guy who'll pay you even if you're playing ABC poker.
- tama00, on 05/11/2008, -3/+85now if only i could make a bot that makes bots.... ill be rich!
- gr3yn3t, on 05/11/2008, -1/+20proceed to divide by zero.
- dawnraid101, on 05/11/2008, -0/+1Oh shi
- Jayso89, on 05/11/2008, -1/+13Skynet has become self-aware
- Onyxblaze, on 05/11/2008, -1/+4singularity?
- GreenAlien, on 05/11/2008, -2/+1I already have a bot which creates bots which makes poker bots if you want one?
- DifferentAngle, on 05/11/2008, -0/+3gnu's make does something like that
- hobo05, on 05/13/2008, -0/+1genetic alg
- fuzzybeard, on 05/13/2008, -0/+1 John Von Neumann beat you to it a long time ago. From Wiki:
Von Neumann also created the field of cellular automata without the aid of computers, constructing the first self-replicating automata with pencil and graph paper. The concept of a universal constructor was fleshed out in his posthumous work Theory of Self Reproducing Automata.[13] Von Neumann proved that the most effective way of performing large-scale mining operations such as mining an entire moon or asteroid belt would be by using self-replicating machines, taking advantage of their exponential growth.
- gr3yn3t, on 05/11/2008, -1/+20proceed to divide by zero.
- SirvenomItsac, on 05/11/2008, -7/+8no download link?
- mastication, on 05/11/2008, -7/+1BitBlt FTW
- 3leggedHorse, on 05/11/2008, -6/+9 Poker is still a game of bluff and luck, so unless the bot can see other players cards then it is still pretty random.
But ***** would I play online for cash.- yojiffyskippy, on 05/11/2008, -0/+6True but just playing properly based on correct odds and implied odds would be sufficient to make money given the level of skills in most poker rooms. There is a huge influx of very unskilled people playing poker these days due to it's popularity.
- c0baltfish, on 05/11/2008, -0/+3Actually not really. Online poker has gotten alot tougher than it was 4 years ago.
- c0baltfish, on 05/11/2008, -0/+8It has some luck, not as much bluffing as you would think. It's a math game, and the top players understand that math.
- CodingTheWheel, on 05/13/2008, -0/+0Poker, especially no-limit Holdem poker, especially deep-stacked no-limit Holdem poker, is a skill game. 100%. The best players get the money in the long run; the rest goes to the house. That's it. http://www.twoplustwo.com
- yojiffyskippy, on 05/11/2008, -0/+6True but just playing properly based on correct odds and implied odds would be sufficient to make money given the level of skills in most poker rooms. There is a huge influx of very unskilled people playing poker these days due to it's popularity.
- Jiggernaut82, on 05/11/2008, -5/+34Any good poker player would just learn how the bot was playing, and quickly figure out how to exploit it. Like any amateur who plays "textbook" poker.
- yojiffyskippy, on 05/11/2008, -0/+8That assumes there is a "good" poker player at the table. And most players that consider themselves to be "good" are no better than a "textbook" player. They're only "good" because they play so many bad players which is most of the online players.
- krazikamikaze, on 05/11/2008, -0/+6Clearly this bot is not meant to beat good players (he said it himself). As long as it's good enough to squeak by with a profit (minus rake plus rakeback), the bot writer is happy. There are plenty of crappy players out there the bot can do well against. I wouldn't even be surprised if he's programmed it to determine player skill and avoid good players.
- djlosch, on 05/11/2008, -0/+4this is not designed to be a tournament winner bot. you don't need to be a tournament winner. the bot just needs to come out slightly ahead over time (or even in shakeout brackets).
- GreenAlien, on 05/11/2008, -0/+2He said the bot only has to break even. Other perks from the poker site make it worthwhile.
- homah, on 05/11/2008, -2/+6welcome to 2005
- Lizbelle01, on 05/11/2008, -1/+2Great article! Despite the criticisms from other commenters that it wouldn't work because poker has a "human element," I still think such a tool would be immensely convenient. I don't understand all the programming stuff, but as an online poker player myself, I'm impressed! I'm sure any server errors will be corrected shortly.
- chromerium, on 05/11/2008, -1/+1Its convenient to help you make hundres of thousands of dollars a year, sure :P
- jerrycurley, on 05/11/2008, -9/+2Online poker? Crap..did I fall asleep and wake up in 2005 AGAIN?
- slapded, on 05/11/2008, -0/+20at first i was scared, then i read the title again.. i noticed it says how to build one. A LOT different from building a winning one.
- CodingTheWheel, on 05/13/2008, -0/+0Specifically, the post title should be: "How to make money with an online poker bot." The bot may win, or it may not. If it does, great. If it doesn't, your taking advantage of rakeback, supernova elite, and other promos to rake in 80k per year per bot account. That's one hypothetical mechanism. There are other ;-)
- h6LhETnd, on 05/11/2008, -2/+8I thought I knew about technology. Screw this, I'm gonna go pan for gold.
- sl9sl9, on 05/11/2008, -2/+1Technology schmechnology. I prefer Scientology.
- knight666, on 05/11/2008, -4/+22Here's how I would do it:
-Extract the info from the program using AutoIt (knight666 got dealt 10 and Ace of Spades)
-Look up some Poker formula's to determine which are good hands.
-Make the fold to check ratio reeeeeeally high, we've got time..
-Perhaps insert some random mistakes to make the bot seem more "human".
-????
-Profit!
P.s. I would have done it in Python but I'm not very skilled at it. ;[- carnag3aus, on 05/11/2008, -0/+6Well i believe it would go something like this... hssss, hssss.
- fryguy1013, on 05/11/2008, -0/+2except if you read the article, the text boxes where the data is stored isn't available using WM_GETTEXT (which is what AutoIt uses). That's mainly the gist of why he is using dll injecting to read directly from memory. Personally, I would use 100% ocr because it's possible to find dll injection unless there is a lot more work put in to protecting against dll injection scanning (hooking the win32 api to get the dlls in a process)
- knight666, on 05/12/2008, -0/+1Well, AutoIt mimicks the behaviour of a user, and who are you to tell a paying user to stop playing like a robot?
- chromerium, on 05/11/2008, -1/+4The other alternative is to work out what the wire protocol is and write code that emulates that.
I assume they use SSL etc, but I'd be surprised if they do more than just HTTPS SOAP calls or something like that.- raymccrae, on 05/11/2008, -0/+1I think you're right. Determining the over the wire protocol would lead to a smaller and more efficient bot without the screen scraping. However I'd bet they use obfusion to make it more difficult.
- CodingTheWheel, on 05/13/2008, -0/+0The problem with this approach is that it's too time-consuming for the average programmer building a bot in his garage. People can figure out how to DLL inject, read text boxes, prowl around in memory. But reverse-engineering an encrypted network data stream, and then simulating a realistic stream yourself? Smoothly? Across routine poker client and server updates?
Not very likely.
- CodingTheWheel, on 05/13/2008, -0/+0The problem with this approach is that it's too time-consuming for the average programmer building a bot in his garage. People can figure out how to DLL inject, read text boxes, prowl around in memory. But reverse-engineering an encrypted network data stream, and then simulating a realistic stream yourself? Smoothly? Across routine poker client and server updates?
- raymccrae, on 05/11/2008, -0/+1I think you're right. Determining the over the wire protocol would lead to a smaller and more efficient bot without the screen scraping. However I'd bet they use obfusion to make it more difficult.
- dan222555, on 05/11/2008, -11/+2***** nerds ruining it for people who just want to play poker...
- calantus, on 05/11/2008, -1/+9no ***** nerds outsmarting retards, again.
- dan222555, on 05/11/2008, -3/+1How is anyone getting outsmarted? Someone coming along and playing a game with a computer that's meant to be played by humans is 'outsmarting' someone?
- calantus, on 05/11/2008, -1/+9no ***** nerds outsmarting retards, again.
- worldgate, on 05/11/2008, -8/+4How about 'how i went to prison when i gambled online since its still illegal in america'.
- c0baltfish, on 05/11/2008, -0/+4Actually it isn't. The UIGEA doesn't say online gambling is illegal, it isn't. It's illegal for gambling websites to accept money but some like Stars and Tilt are saying ***** it.
http://www.onlinepokerfaq.com/uigea.html - MrLlama, on 05/11/2008, -0/+1This is a common mistake to make, and this is partly why the fish are leaving and making poker less profitable.
- Flushnasty, on 05/11/2008, -1/+3You're an idiot. Prision LOL LOL LOL
- c0baltfish, on 05/11/2008, -0/+4Actually it isn't. The UIGEA doesn't say online gambling is illegal, it isn't. It's illegal for gambling websites to accept money but some like Stars and Tilt are saying ***** it.
- aserer511, on 05/11/2008, -13/+4what a ***** joke. online poker isn't for the money, primarily, it's for the ENJOYMENT that you get from poker
- c0baltfish, on 05/11/2008, -1/+14HAHAHAHAHHAHAHAHAHAHHAAHHAHAHAHAH
- MrLlama, on 05/11/2008, -0/+6For serious players it is about the money, and they get the bulk of their money from people who are playing it just for enjoyment
- Darph.Bobo, on 05/11/2008, -0/+7Ahh, spoken like a true SUCKER!
- stilesja, on 05/11/2008, -5/+13If you really want to make money at poker, you start a casino. The rake never loses.
- smrekar, on 05/11/2008, -0/+3have you seen oceans 11 and 13?
- DickyT83, on 05/11/2008, -1/+1I saw 11 but not 13, I killed myself after watching the first one.
- stilesja, on 05/12/2008, -0/+1I know Andy Garcia's character is still rich in Oceans 13 after having been taken for a ***** load of money. Your rebuttal only serves to further my own argument.
- aspade, on 05/12/2008, -0/+0Lesson is to insure everything you own. :p
- smrekar, on 05/11/2008, -0/+3have you seen oceans 11 and 13?
- Yoness, on 05/11/2008, -6/+1So all these poker sites need to do is have their poker clients randomly move the card value pixels around a bit to defeat the poor man's OCR technique and most of these bots would go down in flames?
- Synapse84, on 05/11/2008, -0/+1nope.
if it did that just find how far until the first color change from the top, and the left.. use that as 0,0 and from the new 0,0 to 32,32 (estimating) would be the card number and suit.
they also wouldn't do this though, because unless they programically re-draw every card they'd have to include various images for the cards.. so 52 cards now becomes 52x5 (for 5 different "sets") would be 260 images they have to include now.
and doing it programically would probably open it up to be read straight out of memory.- Yoness, on 05/12/2008, -0/+1Good points.
- Synapse84, on 05/11/2008, -0/+1nope.
- chihpih, on 05/11/2008, -2/+3interesting read
- HawkeyeFan, on 05/11/2008, -2/+4Build a poker bot that consistently wins and increases amount of money generated, you probably would win the Turing award.
- burrgrinder, on 05/13/2008, -0/+0You don't know what the Turing test is, do you?
- fuzzybeard, on 05/13/2008, -0/+1Not to mention a kneecapping from other, shall we say, extralegal interests.
- MrLlama, on 05/11/2008, -0/+8Most major poker websites such as Poker Stars and Full Tilt Poker are strictly against bots, and they will be able to ban your account if they find you using them. I've seen Poker Stars introduce using a CAPTCHA method of determining if a user is a bot when you are playing on some of their tables so that shows that they are taking steps to prevent them.
- dsmx, on 05/11/2008, -5/+4Captcha has recently been beaton so that's not going to stop them either.
- sl9sl9, on 05/11/2008, -0/+7You should be 'beaton' for spelling it like that
- burrgrinder, on 05/13/2008, -0/+0I wouldn't say "recently" either. Captchas have been broken since the idea was created. OCR pattern matching isn't rocket science.
- GreenAlien, on 05/11/2008, -3/+3How about they vary the display slightly so the bots can't just look at individial pixels at exact positions. And how about pre-rending the text display on the server and sending as an encrypted image to prevent windows hooks from just grabbing the text from the control. Granted the first can be got around using more advanced patten recognition, and the second by hooking into the process and grabbing the image from memory then running OCR on it. But it would make it way more work. If it gets rid of 90% of the bots its still worthwhile.
- smurfsahoy, on 05/11/2008, -1/+2Using OCR is LESS work than what this guy is doing.
- GreenAlien, on 05/12/2008, -0/+4No it's not. He's checking for pixels at exact positions and extracting text from the control via the WIndows API. Nowhere near as involved as OCR, especially with subtle changes in the display over time.
Well done to those that dug me down. I bet you didnt even read the article.- smurfsahoy, on 05/13/2008, -0/+1Yeah, you have to find the exact pixel position for every single possible card value and suit, etc. Or set up an OCR, tell it where to start reading, and it gets all of it for you, without you sitting there for hours on end using the eyedropper on photoshop and hardcoding RGB values into your program.
I mean if he wrote his own OCR it'd be harder, yes. But you don't have to do that for a site that isn't trying to make their text difficult to read.
- smurfsahoy, on 05/13/2008, -0/+1Yeah, you have to find the exact pixel position for every single possible card value and suit, etc. Or set up an OCR, tell it where to start reading, and it gets all of it for you, without you sitting there for hours on end using the eyedropper on photoshop and hardcoding RGB values into your program.
- GreenAlien, on 05/12/2008, -0/+4No it's not. He's checking for pixels at exact positions and extracting text from the control via the WIndows API. Nowhere near as involved as OCR, especially with subtle changes in the display over time.
- smurfsahoy, on 05/11/2008, -1/+2Using OCR is LESS work than what this guy is doing.
- dsmx, on 05/11/2008, -5/+4Captcha has recently been beaton so that's not going to stop them either.
- eminiguy, on 05/11/2008, -8/+6Here is some more info about poker bots:
http://www.eminimethods.com/more_poker_robots.html
The key is the math and not the software to run it. The software has been available to the public for some time, but the math algorithms behind strong poker bots will always remain secret.
I used to work on optimal poker strategies (draw poker) for a gaming company down here in Beverly Hills, so I have some idea how complex this stuff really is. - idc5, on 05/11/2008, -0/+5so this is how i lost all my money on online poker.
- gute123, on 05/11/2008, -0/+7keep telling yourself that
- firebirdx01, on 05/11/2008, -1/+2some poker bots work together to completely toast users without poker bots- the competition is pretty rough guys.
- eminiguy, on 05/11/2008, -9/+2Here is a bit about my experience with a well known software that simulates a bunch of poker bots you can play against to practice your game.
http://www.eminimethods.com/poker_hand.html
It's relevant to this article, so I hope you won't mind this link. - aristideau, on 05/11/2008, -0/+1I was in a winholdem lab for about 6 months and believe me writing a winning bot is very hard and I am a programmer.
I wrote an interface into the poker-edge free profiling site so even with that edge it was at best break even .
You need to be a very good player to begin with and even then your bot will only be about 80% as good as the person who programmed it.
Only do this as a hobby and only target tables < 10c and even then its hard (more like a black art)- CodingTheWheel, on 05/13/2008, -0/+0Getting WinHoldem set up and running properly is a nightmare!
And remember: the bot doesn't have to win money in order to turn a profit. All it has to do is break even. That's not to say the bot can't win (in fact, it can, as you pointed out) but it doesn't have to win, in order to win.
- CodingTheWheel, on 05/13/2008, -0/+0Getting WinHoldem set up and running properly is a nightmare!
- luket13, on 05/11/2008, -0/+1I looked into doing this for awhile and spent many many many hours reading about it in a very comprehensive forum, the truth is that there are some bots but very few who can consistently make money, do be able to program it you have to have such an extensive knowledge of poker that you would be better just playing yourself, oh and be an incredible programmer.
- Flushnasty, on 05/11/2008, -3/+12Mockingdigg, your the jackass. Go to sharkscope.com Type in flushnasty48 as the user, and pokerstars as the website. Ive made 3.5 grand playing $15 games. Listen there may be cheaters, bots or whatever, but there is EVEN MORE BAD PLAYERS. Still very easy so make money over time. Id be happy to play a bot anyday.
- turok64, on 05/11/2008, -0/+3So true.
- smurfsahoy, on 05/11/2008, -0/+5There's a reply button, you know.
- Flushnasty, 9 hr 5 min ago, -0/+1you dont say
- username484767, on 05/11/2008, -7/+1I did this for a while, made good money, then did WoW botting and made a TON of money, http://www.rpgbugs.com & http://www.gamebugs.org for more info on botting ;)
- eq2s, on 05/11/2008, -6/+4Does anyone have download links to poker bots?
- mxmj, on 05/12/2008, -0/+1Google "Quick Rich Schemes" I think thats what you are looking for.
- dafunkmonster, on 05/11/2008, -0/+2Poker bots work fine for online poker where people are just playing their cards...
but as soon as players start playing the players, the bots are screwed... - caban, on 05/11/2008, -0/+1Dumb article....you don't have to write a bot from scratch there already exists software for that.
The hard part is to define the actions to ensure it doesn't loose money, and the article doesn't really give any advice on that part.
It mentions combining rules from different bot frameworks...the problem is that AFAIK none of them comes with rules that will enable you to profit and combining them will not help if you don't really know what you are doing.
You already have to be a clearly profitable player with a thorough understanding of the game and put down a lot of hard work defining a rule set if you like to make a break-even bot. - Wolfcaster, on 05/11/2008, -2/+3the best bot couldn't even beat phil laak heads up in limit holdem, no limit ring games are way more complex, poker is too complex to make a bot that can win, and even if it could win, it would probably only be able to beat very low stakes games
- pileofstraw, on 05/11/2008, -1/+190% of online players are losing players, a bot doesnt need to beat the best of the world to be successful, just the losers with money. And yeah, NL200 is still small stakes but start your bot on 12 tables at 6MAX and you are suddenly averaging 500$-1000$ an hour with a good bot.
- dragontail, on 05/11/2008, -0/+3The fact is, online poker is pretty all raw data. You don't get physical "tells" like in live games - the only "tells" you receive is from your opponent's betting patterns, and that is analyzable by a good enough AI. I mean, I'm sure you'll all seen or know how some human players can grind on 4,6 or even 8 tables at a time. They get into a mechanical rhythm, and pretty much act as a bot.
Thus, if the poker AI was good enough, it *would* be pretty hard to beat. But that's the problem: as many of you have mentioned, it's incredibly difficult to program a good AI for poker. You'll need to take into account:
(1) Your hole cards.
(2) Position.
(3) Pot Odds. Possible implied odds.
(4) Reading your opponents from their betting patterns. There is quite a lot of info to look here. The number of hands they are calling preflop, betting frequency, calling frequency (are they calling stations?). You'll probably have to look at how they play certain hands postflop, which could be very time consuming to program. The bot will need to analyze everyone's showdown cards, even if the bot had folded on that specific hand. From all this data, the bot will need to sort each opponent into a category of player, like TAG, LAG, etc.
(5) Own table image. The bot may need to adjust its playing style occasionally and to a certain degree randomize the size of it's bets.
(6) From the analysis in (4), the bot will need to have guess what each opponent could hold if it could.
So for a given hand, there could be many ways the bot could play it; more than one ruleset is needed. Say it got dealt QJs preflop: you'll want to reraise or call a loose and aggressive who raised on the button, but fold when a tight player raises UTG for example. But then again, if you were offered 4-1 odds to call the tight player, you would call regardless.
My point is that it becomes complicated to design a good bot, but it's theoretically possible. Also, this only really works for cash games, trying to program it for tourneys or SNGs seems too hard. You'll need to consider a lot of addition data (Q,M, opponent's Q and M, adjust for how players play looser and more aggressive as a tourney progresses, and probably a completely different AI when the bot hits heads up, etc). -
Show 51 - 53 of 53 discussions

