Pull to refresh

Comments 51

Ух как интересно! Ушел писать бота.
Ок. Если будут возникать вопросы — напишите мне, я постараюсь дополнить информацию на сайте и в статье.
Отличная идея! Если получится найти время, обязательно поучавствую
Самое интересное начнётся, когда вы добавите поддержку NL :)
Постараюсь что-нибудь придумать интересное и запустить в к вам парочку агромакак.
В «движке» поддержка будет совсем скоро. Мы сейчас обсуждаем, как сделать поддержку на сайте — скорее всего, будет два раздельных турнира — лимитный и безлимитный. И нужно будет создавать отдельного бота для каждого турнира. Конечно, реализация бота может быть одной и той же, просто статистика на стороне покер-рума должна вестись раздельно.
Ага, а потом Стад или PLO8. Под FL я когда-то писал бота, он даже оказался около-нулевым (слабоплюсовым с RB), но только для кеш-хедзапов. С какой стороны подступаться к NL, да еще и зная что играть будем против ботов, а не живого оппонента я пока не придумал. Разве что сначала интенсивно собирать статы, а потом пытаться играть по ним, рядовой бот вряд-ли будет сильно отклоняться и менять манеру игры. Т.е. тупо забить на математику и играть по оппоненту. Для HU может и сработает, но для 6-max и 9/10-max не прокатит однозначно. А форматы столов я в анонсе не разглядел.

З.Ы.: реквестую PLO8 и FL/PL Стад. В них побольше влияние метматики, проще будет писать ботов тем кто не разбиратся в покерных стратегиях.
Написать слабоплюсового бота на микролимиты несложно. Такие боты гриндят по 30 столов с 7/7 :) А вот придумать что-нибудь более лузовое и не уйти в минус уже интереснее. Анализ статов бота это да, приличная дистанция у них набирается быстрее, а значит можно будет делать прямые выводы о логике игры оппа. Пока его создатель не поменяет код. Хотя статы можно сбрасывать раз в день. В общем, тема очень интересная.
Меня в то время больше интересовала возможность интеграции с клиентами различных сетей. Собственно уже много лет барахтаюсь по работе в оклопокерной тематике и лично для себя сдела вывод что написать толкового бота в одиночку, да еще и в ограниченные сроки, практически нереально. Для микролимитов оно туда-сюда, но овчинка выделки не стоит, а для лимитов повыше примитивной логикой уже не отделаться, а значит трудозатраты опять вырастают за рамки разумного. В общем «жизнеспособный в реальных условиях бот» это задача не для меня. А вот в песочнице поиграться было бы весьма интересно :)
Куда катимся, скоро боты будут ходить за нас на работу. А также на турнирах по покеру можно будет выставлять ботов. С такими темпами недолго и до массового производства ботов для покера, да, и для других игр. А вообще идея сильная.
Можно не беспокоиться до тех пор, пока боты не начнут писать собственных ботов для выполнения всяких рутинных задач.
А 29 августа 1997 года осознают себя (с)
1. Сколько бот играет рук за сутки? Этих рук достаточно, чтобы фактор дисперсии был близок к нулю?
2. Когда будет нл? Бот для лимитного покера не интересно писать, лимитный покер можно полностью описать математически, в результате через пару месяцев просто будет играть толпа «идеальных ботов».
1. В текущий момент установлено значение в ~4500 рук в сутки.
2. Думаю, где-то через месяц. Но не обещаю ;)

через пару месяцев просто будет играть толпа «идеальных ботов»

Я очень сомневаюсь, что всё будет именно так. Но если так — то десятки людей получат отличный опыт. А к этому времени я как раз сделаю безлимитную версию.
Поговаривают, что на микролимитах FL сейчас и так одни боты играют… Так что можно смело искать баги в этих ботах и писать своих, которые будут их обыгрывать :)
лимитный покер можно полностью описать математически
Да-а-а?
image
1/ Лимитный покер полностью не описан еще, зайдите на сайт покерстарс и понаблюдайте за игрой на высоких ставках
2/ Рассмотрите возможность реализовать турнирный покер. Что-то типа «Sit and go»,
т.е. каждый игорк вносит опр. одинаковую сумму денег — байин, и получает какое-то количество фишек. Игра начинается по-мере заполнения одного или нескольких столов участниками, и ставки растут каждые несколько минут.
Участник проигравший все фишки выбывает. Участник собравший все фишки считается победителем.
Приз — деньги внесенные всеми участниками, делятся между первыми неск. местами, пропорционально месту: например: 50%, 30%, 20%.
Несколько комментариев.

1. Жизнено необходимо сделать выгрузку статистики в стандартные форматы — я абсолютно не представляю как можно анализировать игру бота без инструментов типа holdem manager или poker traker
2. 4500 рук в сутки плюс сброс статистики раз в день — это ни о чем.

Ну начнем с того что 4,5к рук в день — это дневная норма (две трех часовых сесиии) для обыкновенного (не гриндера) игрока.

Ну или математически — если наш бот имеет теоритическое премущество в +0.5 ptbb/100 над полем — и std dev в 40 ptbb (достаточно обычное значение) — то только через примерно 600к рук мы можем говорить что с вероятностью 95% этот бот хотя бы плюсовой. При +2.5 ptbb/100 (ничего себе премущество — можно говорить о том что он рвет поле) — при 25к рук можем говорить о том что мы плюсовые с вероятностью о пять же в 95%. А если нам нужно три сигмы — то уже совершенно другие числа.

Тут можно поигратся со сзначениями — но порядки останутся такими же.

Поэтому 30к рук должны отыгрыватся минут за 10-25, а в сутки должно наигрываться не менее 500к рук. И статистика не должна сбрасыватся — иначе как отслеживать динамику.

3. Далее — вам нужно сосредоточится (и граничить) типы столов — бот для hu, для 4-max, 6-max и 9/10 max отличается очень и очень сильно. Вам нужно будет сделать лиги и гарантировать, что игра не идет пока нету определенного количества игроков за столом.

4. Опять же вам нужно выйграть — либо у вас боты играют аннонимно — т.е. вы не персонализируете дуригх ботов (и не можете собираться на них статистику) — либо разрешаете (тогда можно сразу сделать выгрузку данных — ибо все равно ее соберут на основе статистики рук). Если разрешаете — нужно думать что делать о ботах которые играют в нескольких экземплярах и обмениваются информаций о картах друг друга.
Если за 20 ботов, 10-ть будут моих и будут знать о картах друг друга — у остальных шансов нет.

Ну и много, много, много чего еще…
можно просто давать боту инфу о том, сколько всего народу за столом, не?

столы с разным количеством игроков — интересная идея! можно увидеть, где какой алгоритм работает круче в зависимости от количества игроков.

чтобы боты не могли обмениваться инфой друг с другом, нужно перекрыть им коммуникационные каналы.
можно и давать — но как тогда будут собиратся столы? т.е. вот есть 10 ботов которым нужен стол 6 макс — они сидят и ждут, и никто не содится за стол. Или например играют два бота в hu — к ним подсаживается третий, они двое встают и уходят?

собственно не нужно ничего изобретать — нужно взять любой крупный покер рум и сделать аналогично.

А как каналы то перекрывать — мы таки говорим о том что боты они локальные и общаются с сервером. Или предлагается выгружать ботов себе? Тогда как считать рейтинг?

Хостить ботов у себя — ну я думаю тут серваки нужны не хилые. Последний бот который я видел работал с 140 гиговой postgress базой статистики :)
можно грузить их на сервер, и пусть там крутятся! По ощущению, нет смысла крутить ботов на клиенте — на i/o сервера назрузку уменьшить. Хотя хз, хз.
Тогда нужно на сервере считать и предоставлять статистику полную по каждому боту — начиная от банального процента 3-бетов и прочих базовых статистик, до таких как например — как процент чек-рейзов на терне при 4 флеш доске, в руках которых он был опен-рейзером на префлопе, и сыграл чек-кол на 3 флеш флопе.

Либо все будут считать и хранить это сами — если конечно будут к вопросу подходить серьезно.
видимо можно делать разные лиги, в зависимости от того, сколько доступно инфы. Если инфы должно быть доступно много, то её нужнео где-то хранить. Значит нужно либо давать какой-то user space на диске (что накладно, ибо это будут тонны и мегатонны логов), либо хранить всё на клиенте.

короче, есть о чём подумать))
Большое спасибо за комментарий.

1. Жизнено необходимо сделать выгрузку статистики в стандартные форматы
Обязательно сделаем.

2. 4500 рук в сутки плюс сброс статистики раз в день — это ни о чем.
Сейчас всё работает в крайне экспериментальном режиме. Мы должны подобрать оптимальную «скорость» игры по нескольким критериям.

Например, 500К рук в день требуют, чтобы бот мог обработать около 6 рук в секунду (500К / 24 / 60 / 60). Каждая рука — 1..10 HTTP запросов. Мне кажется, для массового пользователя это многовато. Скорее всего, нужно реже обнулять рейтинг — например, раз в неделю. Но это тоже не очень хорошо, т.к. снижается динамизм.

Вообще, рейтинг — это вопрос сложный. Скорее всего, текущую реализацию можно считать просто sandbox'ом. Он работает по определённым простым правилам и позволяет оценить уровень бота с некоторой погрешностью, которую мы будем всячески стараться снизить.

3. <...> типы столов — бот для hu, для 4-max, 6-max и 9/10 max
Конечная цель — сделать также, как у людей. Через определённое API можно будет открывать столы с различными параметрами (вроде NL, 4-max и т.д.), получать список открытых столов и какую-то дополнительную информацию (вроде кол-ва игроков за столом, "% flops seen" и т.д.). Через API можно будет подсесть за стол из списка, взяв с собой определённое кол-во денег из центрального баланса и т.д. Соответственно, вся власть будет в руках пользователей и их роботов. Играете только на маленьких столах и только с коротким стеком? Пожалуйста. Было бы с кем =)

Я просто решил действовать итеративно — сначала простая песочница, получение фидбека, оценка аудитории, починка багов. А вот потом уже новые функции, которые позволяют сделать всё. Сегодня мне кажется, что большая часть аудитории не знает, что такое «процент 3-бетов». Но я не уверен и нужно просто пробовать.

4. Про анонимность...
Если боты — это веб-сервисы, то сбор информации об их стратегии может только ввести в заблуждение — автор ведь в любой момент может выложить совсем новую версию, которая играет совсем иначе.

Насчёт «мультоводства» — спасибо, что указали. Надо думать. Как я понял, это распространённая проблема онлайн игр.
UFO just landed and posted this here
Думаю тут нет проблемы с мультиботами.
Сервис же для игры между ботами именно.
Если вы запустили своих 10-ть ботов и они непобедимы, — респект!
Но все в равных условиях ;-) Ничто не мешает остальным действовать также.
Вообще-то есть проблема с мультиботами.
Допустим все сделали мультиботов, тогда преимущество получит тот, чьих ботов будет тупо больше за столом. А это уже не спортивно.
Не совсем так.
Преимущество все-равно будет у более «умных» ботов.
Интересная идея. Историю раздачи можно отдавать в зависимости от поступившего запроса двумя способами:
— полностью, где каждое изменение имеет уникальный ID + информация о игре
— дельту относительно переданного в запросе ID
Это с одной стороны уменьшит объем, с другой стороны чуть упростит обработку на стороне клиента, когда машине состояний будут скармливать новые сообщения об изменения в истории раздачи, а не все с нулевого момента времени.
Отличная идея, очень захотелось написать своего бота, но в покер никогда не играл. Подскажите, что почитать, посмотреть?
Игра на самом деле очень простая. Самый простой способ научиться — это поиграть «на фантики» в любом онлайн покер-руме. Если вы предпочитаете читать документацию — есть, например, вот такой документ.

Ну а дальше можно почитать книжки. Например, такую.
штука интересная, могу серваком поделиться — имеется виртуальный Athlon64 с несколькими гигами памяти.
Большое спасибо за предложение. Я пока экспериментирую с облаками ;)
Помню, 5 дет назад на Топкодере был марафон, где нужно было писать бота, играющего в упрощённый «покер». Теория вероятностей, тесты со сбором статистики и дальнейшей оптимизацией стратегии… эх, ностальгия :) В том марафоне участвовало 450 человек, мой друг saarixx тогда занял 7-е место… а я аж 77-е :)
Сейчас, к сожалению, нет времени таким заниматься.
Помню, 5 лет назад на Топкодере был марафон, где нужно было писать бота, играющего в упрощённый «покер». Теория вероятностей, тесты со сбором статистики и дальнейшей оптимизацией стратегии… эх, ностальгия :) В том марафоне участвовало 450 человек, мой друг saarixx тогда занял 7-е место… а я аж 77-е :)
Сейчас, к сожалению, нет времени таким заниматься.
UFO just landed and posted this here
Симпатишная диаграммка, в чем нарисована?
Победитель турнира отправляется на ПокерСтарс зарабатывать деньги.
Отличная идея, как любитель покера и программист, буду с интересом наблюдать за развитием вашего проекта! Спасибо =)
А вы не думали над расширением проекта на другие виды соревнований? Хотелось бы что-то вроде прошлогодней войны муравьев от Google, шахмат с туманом войны, в таком роде.

Я, кстати, знаю аналогичный сервис tiles.nicollet.net/
Нет, пока только покер. Нужно фокусироваться, иначе ничего не получится ;)
любопытное начинание. мне вообще симпатичны люди, пишущие не только по работе, но и для себя.
советую только всё-таки поставить определённые рамки и задачи, иначе действительно проект никогда не закончится.
удачи)
А можно где-то узнать (вывести) сколько вообще ботов в онлайне?
На странице robopoker.org/rating/ отображаются все, кто сыграл хоть одну игру за прошедший контрольный период. Мне кажется, этой информации вполне достаточно.
Sign up to leave a comment.

Articles