Posts Tagged bot

Poker bot strategy

The sixth article about our Poker bot.

When we had decided we wanted to expand the bot to be able to play cash games as well it felt like we had to build a complete poker tracker as well. After a while we decided that this was not necessary, most players don’t use a tracker and if the bot can play just a little better than average it’s enough for now. We realized that this kind of functionality wasn’t only a whole software in it self, it was also already out there, there is nothing that says that the bot can’t use existing poker tracker software just as a real player.

The poker bot strategy – step one

We had already set it up to rank starting hands properly, what we did now was slow it down a bit. It’s not realistic to go about a cash game as aggressively as a short handed SNG. We set it up to play a lot more tight and we built a new position calculation function allowing it for a bit more aggressive play in position. With this setup it would play only the top 11 hands and limp in on all small pairs.

Post flop strategy

We tuned the bot down a bit after the flop too, it had been way to willing to spend money in the first version. A much more modestly playing bot is needed for cash games and our bot was pulling some insane stunts with his stack of chips.

The problem now was that if there was player at the table bulldozing the bot would have a hard time (now that the bot was not the bulldozer). A normal player can always make a stand with a good hand and double up against opponents like that but the bot had a hard time. The first thing we had to do was make the bot realize when he’s being bulldozed. This is not the easiest as it meant we actually had to keep track of the opponents after all, not in a complete poker tracker way but a little. Eric managed to come up with a neat little script that just checked for amount of big blinds lost to the same person. Easy but functional.

Now that our little poker bot knows that he is being bulldozed, how should he handle it. We came up with a few options to start with:

  • He can leave the table
  • If he gets AA he can slowplay the bulldozer and trick a lot of money of him (this could be extended to other high pairs as well but as the bot is not very good at reading people, I mean that he can’t, it was a bit dangerous)
  • Leave it to the limp-trip strategy to deal with the bulldozer, the bot had already an implemented strategy of limping with small pairs for hitting trips. This might be enough to handle the situation.

In the end we chose to use the two last methods as having a loose player like that on the table can give you a lot of money.

The next article:

More Rooms for the Bot

One of the big things when you want to avoid detection is not playing to long. Even if the bot can play 65 hours with interupts it’s not a good idea. This is a rookie mistake when it comes to botting and the poker rooms Do keep track of this.

Continue Reading…

Leave a Comment

Post Flop – hell for poker bots

The third article about Poker bots.

Deciding what to do post flop is dangerous grounds for a bot, this is where most of the better players beat the worse. If you win the game after the flop only luck can save the worse player on turn and river. The thing with the bot is that we don’t build it to be a good player, we are building a surviving player and that is something totally different.

Once the flop is on the table the poker gets much harder. The pre-flop is pretty much kindergarten when it comes to programming compared to this. We decided we wanted to take some shortcuts though. As we didn’t need the bot to play well, just to survive we thought we’d manage to cut some corners. These are the shortcuts.

If the bot is first to bet after the flop:

  • There is a possible straight or flush on the table; bet half the pot 70% of the times, bet the pot 10%.
  • Bot hit pair or better; bet the pot 70% of the times.

If the bot is not first:

  • There is a possible straight or flush on the table; All in 50% of the times, double the original bet 20%
  • Bot hit top pair, All in 100%
  • Bot hit pair (not top) All in 50%, double original bet 20%

Can you see where this is leading? We repeat this on the turn and the river and what happens is that if the bot actually do play a hand there is a massive chance that it will sometime go all in. This moves the play to just luck. As long as you play with the bot the only thing that matters is luck, you can’t outplay it because it doesn’t try anything, it just goes all in (but only after a while, it forces you to bet a little first so you get committed).

With this for core this is by far the most stupid poker bot in the book but it works. This is not at all a bead strategy on short-handed Sit and Go’s especially with a fast blind-structure. Give it a try yourself on a turbo SNG and you’ll see that it’s actually pretty smart. We decided we wanted the bot to play like this at least in the beginning, making it smarter could be left to step 2.

Read more in the next article: Cheating the poker room (Bot vs Party Poker)

As most poker rooms consider bots cheating, you need to outsmart them. Well, it’s not really true, poker rooms don’t care at all about bots but they know their players do. So the poker rooms try to show their players that they care about botting and consider it cheating. They search enough for bots so that their players will believe you can’t bot. They don’t find bots genereally because finding one will make it obvious to the players that you can bot. This works the same in all kinds of online games…

Continue Reading…

Leave a Comment

Poker bot, how we built one

A poker bot is a dream for a lot of people. A lot of other people say that it is impossible to build a poker bot and they are really wrong. It is possible to build bots for almost anything, they just get a bit more complex if the enviroment they are active in gets complex. A bot playing chess is fairly simple to build as the enviroment is very simply. The options in chess are not that many even if the game is complex for a human. As it is deterministic as well a bot (deep blue) can also beat the best humans at it, this was achieved long ago. Acting in the real world will demand a much more complex bot even just to handle very simple tasks. The amount of factors that show up once you leave the simulation (in this case the computer version of chess) is like an avalanche. When it comes to building bots, in opposite to humans, it is much harder to build one that manages to move the pieces properly and understands when it is its turn than it is to build one that is great at chess. There are examples of bots out in the real world too though. One is the automatic system for targeting aircrafts that is common on naval ships, the gunner just has to agree to fire for the cannons to aim and shoot down the aircrafts. Modern jetfighters have the same properties but on an even higher level, built in systems compensate for when the pilot maneuvers to fast and autopilot isn’t really anyting new is it? Depending on what you want your bot to achieve it can be impossible (or at least very hard) to build one today but playing poker decently (not good) is definately not harder than being a fighterpilot in combat.

The goal of the poker bot

To be able to build a successful bot we needed to set up a number of characteristics. Defining exactly what is needed is extremely important as it easily gets out of hand when you start doing the programming later. Here are the targets we came up with in the first iteration:

The bot must be hard to detect for the poker rooms
We decided that impossible to detect was to much to ask for and it wasn’t really necessary. It would only take time from the more pressing developement.

The bot must be hard to detect for poker players
This is similar to the above but as we knew since before that players can see stuff the operator can’t and operaters see stuff players don’t we wanted to be clear about it.

The bot must be able to retrive data from at least one poker network
The gathering of data is one of the tough parts of a poker bot as the poker rooms actively try to prevent this kind of datagathering.

The bot must be able to play without loss of money
By playing an even game the bot would still be making money, we figured, as the bonuses and rakeback would do for profit. The whole idea with bots is that they can play endlessly and paralell in a way humans can never. There is nothing stopping you from having 10 or even 100 bots once it works. Small profits can turn in to big profits if you just scale it up.

The team, the strategy and the scrum

Equipped with these for goals we started setting up a team for buildling the poker bot. We were already 2 on the team, me an engineer/poker player and Eric with a PhD in automation (which is exactly what you need for being really, really good at building bots). We managed to gather 2 more programmers putting in a few hours every day and Mike who had already built a (bad) poker bot. As 3 of our programmers could work only nights Eric and I needed to adjust our schedules a bit but it didn’t really change anything else, we were prepared that the progress would be slow, we were in no position to hire full time programmers. We knew from the start that we needed to do most of the programming ourselves.

I’m not sure how much you know about programming in a team, most people that do programming on their spare time don’t. The thing is that when the team grows so does the problems. 1 programmer programming will get the most out of his potential, it might even work with 2 but when it starts increasing beyond that the interference from the other programmers start becoming a problem. My experience is that the maximum amount of programmers you can have in a team is 7. After that you start decreasing the progress by adding another programmer. On bigger projects you have to split them up so that you don’t get more than 7 programmers in a team. You can’t have a software with 200 people working on it, split it up. We were 5 but we still needed a method and the method we chose to work with is Scrum. Let’s not dig any deeper than saying that we used scrum before and it’s a good method. If you want more about scrum please refer to Wikipedia on Scrum.

The next article in this series will follow:

The two first steps, the data gathering and the poker player

Eric and I started working with the two most interesting parts at this moment. Gathering the data and setting up a poker playing algoritm. After a lot of research on the poker networks we decided to go with Partypoker for primarily two reasons. We thought we could build a functioning data gathering unit for Party without to much trouble and there are lots and lots of players on Partypoker which would make it easier for the bot to stay under the radar.

»Continue Reading


Index of the poker bot articles

Other articles on Poker Bots

Comments (1)