Poker-AI.org

Poker AI and Botting Discussion Forum
It is currently Sun Sep 22, 2019 11:42 pm

All times are UTC




Post new topic Reply to topic  [ 8 posts ] 
Author Message
 Post subject: Development for macOS?
PostPosted: Mon Apr 17, 2017 1:56 pm 
Offline
New Member

Joined: Mon Apr 17, 2017 1:47 pm
Posts: 4
I saw a super old thread on the old site: http://poker-ai.org/archive/www.pokerai ... =79&t=2761

I've started my own project, using the facebook-based Zynga poker as a starting point. At this stage I've got a "simple" bingobot working. It's reading from the screen and recognising the state of the game (and cards) using a known index of images. Tesseract is used for reading text. I've made no effort for stealth yet, that's a later priority, right now I'm trying to improve the gameplay logic further. I've got live odds going for the current state of the game (and a 200k game simulation, to get my winning % if everyone called).

Is anyone actively working on anything for Mac? I'm not interested in any non-Mac options. I'm curious how far anyone else came on the Mac side, in case I'm re-inventing the wheel. I'm aware of OpenHoldem for windows, but it's so windows-centric I've decided to just start my own. Let me know your thoughts and how far you've come.


Top
 Profile  
 
PostPosted: Mon Apr 17, 2017 3:51 pm 
Offline
Veteran Member

Joined: Mon Mar 04, 2013 9:40 pm
Posts: 265
You can do anything on the Mac just like Windows. You can use Applescript to do quite a bit of the work as far as client control. For OCR and other stuff there are wrappers you can use like Tessaract. Since there is nothing like OH or AutoIt for OSX you have to create/find all these tools yourself.


Top
 Profile  
 
PostPosted: Tue Apr 25, 2017 8:40 am 
Offline
New Member

Joined: Mon Apr 17, 2017 1:47 pm
Posts: 4
shalako wrote:
You can do anything on the Mac just like Windows. You can use Applescript to do quite a bit of the work as far as client control. For OCR and other stuff there are wrappers you can use like Tessaract. Since there is nothing like OH or AutoIt for OSX you have to create/find all these tools yourself.


All very true, I've come quite far since my last posts. Tesseract does indeed compile on Mac as well, so I'm using that for scraping text, although I've had to develop my own system for learning then recognising buttons, cards and other images. It's at the basic bingo bot stage, though I've just added the options to read blinds.

It's semi stable, and making bits of money from odds-based bingo (granted, 30 hands is not a significant dataset):
Image

Not sure if I'm allowed to post links here. If not, please edit this out, but I'm tracking my progress here for anyone who's curious: https://macpokerbot.mgh.im/

I'd love to start discussions about some of the components as this develops. Right now I'm improving some of the automation, but I've just finished scraping bets and pot sizes, so will try a more risk-based approach to play more than just the preflop.


Top
 Profile  
 
PostPosted: Tue Apr 25, 2017 4:01 pm 
Offline
Veteran Member

Joined: Mon Mar 04, 2013 9:40 pm
Posts: 265
I have a fully functional mac bot but I have not run it in awhile. If you have any more questions let me know.


Top
 Profile  
 
PostPosted: Tue Apr 25, 2017 4:17 pm 
Offline
New Member

Joined: Mon Apr 17, 2017 1:47 pm
Posts: 4
shalako wrote:
I have a fully functional mac bot but I have not run it in awhile. If you have any more questions let me know.


Oh really? In what language is it built? Is it static for a single poker provider? Do you have the source / are you willing to share?

Thanks for commenting!


Top
 Profile  
 
PostPosted: Sat Jun 03, 2017 11:10 pm 
Offline
Junior Member

Joined: Wed Dec 04, 2013 12:40 am
Posts: 49
Hi !

Not the way you chose but mine is to write as much as I can in Java, so it's mostly not going to interest you but maybe someone else wanting to develop for mac later. I've got some elements here :

https://github.com/PierreMardon/gametheory/
(side project, still active but not evolving fast - well fast, but not often :P )

I don't do bots right now, and I'm planning to write more advanced algorithm than my chance-sampling CFRM as well as botting tools but didn't decide right now what will come first.
AFAIK for botting the only native specific implementations I'll need is windows screenshoting and game control (pushing the buttons), and that's not hard to do it both for Mac and Windows. Oh and also stealth :P Even tesseract has it's Java bindings that integrates immediately with Maven.

The main point I think is that if you spend the necessary hundred of hours to build a good bot, if one day you want to experiment on Windows (some platforms don't have mac native apps), you'll have to spend unnecessary coding time to adapt parts of your code, risking to introduce regressions in your mac implementation if your code is not modular enough.

I guess at least 95% of the code can avoid having any native dependencies as long as it's modular, and as a professional developer I spent most of my time on this project learning how to have the best models to fit the always changing needs of IA. My project is far from being perfect but learned me a lot on this subject, and even if I lost sooooo much time on this, I can now reuse my code easily and come with a good model for any new feature.

I have to catch up with Poker-AI reading and decide how to make my library evolve given the recent developments in the domain, and this will determine the order of my next steps :
- NNs
- faster CFRM algorithms
- practical botting toolbox

Ok I went far away from your question, off topic, sorry, so I stop now I'll spam the forum another time about my pending interrogations ;)


Top
 Profile  
 
PostPosted: Sun Jun 04, 2017 6:57 am 
Offline
New Member

Joined: Mon Apr 17, 2017 1:47 pm
Posts: 4
Awesome! Love the project and love the github profile pic. Thanks for sharing, I'll certainly take a deeper peek through it. So your library is largely built for the decision making aspect, or the stats that could drive effective decision making?

My project is stable now, with the bot able to play for hours and general transactions remain under acceptable control - not making losses, overall, and gains seem steady. I see many aspects that can be improved, but the rather basic approach seems to be working. I'm yet to try it in a more high-pressure/risk environment such as real money play, don't think it's quite ready for that yet.

I've also segmented everything purposefully, with dedicated classes to manage different models and states of the overall game, and dedicated classes for actions such as scraping, clicking, odds, and even decision making. Drawback at the moment is I've written everything in objective-c, but I'm comfortable with that and don't plan on transitioning away for the moment. Not sure yet if I'll open source, for the moment it's still very experimental. Perhaps I'll open source the decision making part as a compilable library that anyone can plug in and experiment with. I've learnt a ton in the process, and have many ideas to sharpen it further. Hope the results keep up!

Stay in touch!


Top
 Profile  
 
PostPosted: Sun Jun 04, 2017 9:23 am 
Offline
Junior Member

Joined: Wed Dec 04, 2013 12:40 am
Posts: 49
pokerb wrote:
Awesome! Love the project and love the github profile pic. Thanks for sharing, I'll certainly take a deeper peek through it. So your library is largely built for the decision making aspect, or the stats that could drive effective decision making?


Yes, for now it's only
1. Game abstraction :
- bucketting the cards state (based on *HS, also implemented OCHS)
- building a reduced betting tree (so I have a module that implements the NL betting rules)
- putting them together to have a walkable game tree

2. Computing data for decision making :
- HS, EHS, EHS2 (also used for bucketting)
- CS-CFRM

pokerb wrote:
I've also segmented everything purposefully, with dedicated classes to manage different models and states of the overall game, and dedicated classes for actions such as scraping, clicking, odds, and even decision making. Drawback at the moment is I've written everything in objective-c, but I'm comfortable with that and don't plan on transitioning away for the moment. Not sure yet if I'll open source, for the moment it's still very experimental. Perhaps I'll open source the decision making part as a compilable library that anyone can plug in and experiment with. I've learnt a ton in the process, and have many ideas to sharpen it further. Hope the results keep up!


Nice :) Happy coding ;)


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 8 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Powered by phpBB® Forum Software © phpBB Group