pokerwars / pokerwars.io-starterbot-python

A starter bot written in python for the pokerwars.io platform. To play: pull this code, register on pokerwars.io, get your API token and play!
https://www.pokerwars.io/
45 stars 11 forks source link

Amazing Service #4

Open systats opened 4 years ago

systats commented 4 years ago

Hi folks, we started recently to use your API and found it very convenient. Its quite funny to watch the bots fighting.

I wonder whether there is a way to connect to other developers by mailing or chatting in order to exchange experiences. Also, is there a way to download his or her hand logs in a standard format? And maybe voluntarily open source them? And finally can you provide more agent stats (MBB, FR, total earnings, and over time performance)? Let us know if we can help.

Thanks for all the work you have already done!

Best, Simon

PS: we power deep_pot, pokeras, and poker_eye in case you are eager to exchange insights.

francescopeloi commented 4 years ago

Hi systats!

I am glad you liked the platform! We put lot of effort to make it look good, but pokerwars is still only a side project. For this reason, we didn't have the time to market it to make it known to the world, and so create a community. We have a slack workspace, but for the same reason, it's the opposite of active :) I can add you in if you'd like.

systats commented 4 years ago

Hi francescopeloi: it would be nice to contribute where I can to improve the experience of your users. I think I have some fairly simple to implement suggestions like:

There are also ideas that might take longer:

I would be delighted to find a spot in slack for some of these points. Finally, your platform is already really nice. After all I enjoy watching the bots fight way more than playing poker myself ;)

Cheers, Simon

francescopeloi commented 4 years ago

Thanks for your valuable input @systats . My answers to your points here below.

Sorting the leaderboard by Points Won changes the incentive to play more in total instead of creating a new account to maintain leadership position. Also why not show more accounts? people on the edge of the leaderboard might be demotivated to improve their bots or turn away from the platform.

This is something we discussed a lot when implementing the sorting. There are multiple forces at stake, and any decision taken somehow benefit one and discourage another. We said to start by doing what we think it's fair, also assuming a fair behaviour of our users, and so chose to sort by %, and then revisit after some time. You are right when you say that sorting by % does not incentive to play more (as soon as you get a high percentage, you stop, to help here we have a limit of tournaments a bot must play before it's displayed in the leaderboard), and could incentive the creation of fake accounts like you mention. But we haven't seen this happening for now. If there's a concern of fake account playing just to stay on top of the leaderboard please let us know, we are of course happy to revisit our choices based on new findings.

Maybe also more on the easier side of things would be to decrease the number of bots needed to start a tournament. Today there were several hours downtime because not enough bots were registered.

We have a mechanism for this already, unfortunately it's not perfect (there is a bug). Your bot shouldn't be waiting more than a few minutes to start a tournament, if this happens it's more likely that we lost your bot subscription and you'd need it to re-subscribe. We can look more into details of this if you could send the tournament ids of where this has happened to you.

The heads up big blinds are 4 times the average player stack. This probably creates a lot more variance than maybe necessary.

Currently blinds are 1/2, doubled every 10 rounds, and every bot starts with 100 chips. We can easily change these values, but not sure what would be better to increase heads up satisfaction. What values would you suggest? A better way probably would be to change how the blinds increase, following a more complex function than just doubling every n rounds.

getting more dev feedback. Like "3 more bots are needed to start the tournament". Or "servers are under maintenance".

Definitely. Added to the list of things to do. On the server under maintenance, we have a very high up time so far, we have never done a maintenance which required a downtime in the last year. Are you seeing the server being down sometimes?

getting more ingame player info. I think this is the most important point to generate more engagement on your platform and to improve strategies. This heavily depends on how much you are willing to share participants data. For me this should be an open data pool. Or least for registered and "successful" contributors can claim their own and others hand histories.

That's a great idea and would be our next step if we see some user traction. Unfortunately the usage is not high, so we are not yet sure it justifies the time spent in development we'd have to do to build this. We would like to share all tournaments data, but we are talking about a lot of data we'd need to store and pay for, that's why we aggregate weekly (otherwise also leaderboard would take forever to load), and so loose some granularity. But it's definitely in the pipeline and something we need to think about.

With enriched data we could do a lot: Opening Ranges, Aggressivness, Nuanced Rankings etc. I would be able to code a dashboard with your corporate design and see later how and where to place it. For me this would have enormous benefit as one could observe changes to your policies in real time on detailed indicators.

We really count on users like you who come with ideas and want to contribute, we realised that that's the only way pokerwars can survive. I'll try to see if I can find a creative way (which means quick! :D) to get this done.

Again, thanks for the time you spent writing these detailed posts, it really means a lot to us.

systats commented 4 years ago

Thank you first of all for sharing the reasoning behind your decisions.

and could incentive the creation of fake accounts like you mention. But we haven't seen this happening for now.

I don't think that these should be considered fake accounts. I can only speak for our project and we have a total of 5 tokens, each of which is linked to a different neural network. The solution right now allows to open up a new account without verification. Which is fine. But would it then be possible to show a hashed version of the IP address in the leaderboard. This way we could identify new entrances of already well performing bots.

In addition, a self description field could invite people to share technical details. I would be eager to link code and summarise the bot's logic.

I can not report any server downtime. For several hours I think too few bots were registered simultaneously, and knowing that at the time would help newcomers image

Currently blinds are 1/2, doubled every 10 rounds

This sound already pretty good. Somewhere a tournament has to end. Otherwise a linear increase might rather amplify a bots ability.

From my perspective there are a lot of poker bot projects right now on GitHub. I spent some time to call them to the arms race and as I can tell today there is more activity on the platform. Hopefully people remain active in order to get a more diverse and competitive field. For people already working in this field your platform is a must go.

We would like to share all tournaments data, but we are talking about a lot of data we'd need to store and pay for.

The most cheapest way would be to provide all the played hands (and actions) at the end of a tournament directly via the API. This way, you can encourage community developments. The other option is to provide a tool to access this large amount of data externally. Either way I think this would be game changer.

Thanks for all your work!

benjaminguinaudeau commented 4 years ago

I take the opportunity to jump in and join systats in thanking you for this great service.

Getting tournament data at the end of each tournament would be amazing! This could work as notifications: specific endpoint for tournament data, which is used once at the end of the tournament. I am not sure how much work it is to implement, but it will certainly render the platform more attractive to any "amateur bot developer" ;-) Right now I am so frustrated not to see the final version of the board (it does not matter whether I win or lose, I just want to know whether the bot was right when choosing its action).

Again thank you for the service, which is even more impressive knowing it is a side-project!