Олег Остроумов: как я создал и продавал первый в мире солвер для покера

Олег Остроумов: как я создал и продавал первый в мире солвер для покера

Создатель солвера, которым пользовались сильнейшие игроки мира, рассказывает подробности бизнеса, которые много лет держались в секрете.

В покере существует оптимальная стратегия, которая называется «равновесие Нэша». В начале 2013 года я в одиночку написал программу, которая вычисляет равновесие Нэша для самой популярной разновидности покера — No-Limit Holdem. Но сделать программу и выгодно продать ее — две разные задачи.

Эта статья про то как я выходил на сильнейших в мире игроков в покер, вел с ними переговоры о цене, убеждал их в корректности моего алгоритма и, в конце концов, смог заработать $500,000 за первый год.

Меня зовут Олег Остроумов, в онлайн-покере известен под ником Laegoose.

Чтобы следить за следующими статьями, подписывайтесь на мой телеграм-канал.

Покер и равновесие Нэша

Я познакомился с миром покера летом 2008 года, после первого курса мехмата МГУ, когда поехал в студенческий лагерь. Там был парень, который зарабатывал онлайн-покером на жизнь. Услышав его истории, я загорелся: «Вау, можно рубиться целый день в компьютерную игру, и получать за это деньги?!! Я должен этому научиться. Игра основана на теории вероятностей, поэтому у меня точно получится».

В студенческом лагере после первого курса.
Энтузиазма по поводу покера у меня было через край

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

В мире тысячи профессиональных игроков, для которых покер – это работа. Сильнейшие из них выигрывают миллионы долларов в год.

Сложность и красота покера заключается в том, что вы не видите карт оппонента, в отличие от тех же шахмат, где у вас перед глазами полное расположение фигур.

Тем не менее, в покере тоже существует оптимальная стратегия, так называемое «равновесие Нэша». В достаточно долгом поединке против любой другой стратегии, равновесие Нэша выиграет или сыграет вничью.

Существование равновесия Нэша в покере достаточно просто доказать, опираясь на материалы теории игр с первого курса мехмата. Но доказательство не дает практического способа это равновесие посчитать.

Вся эта ситуация раздражала тем, что в 11-ом классе я выиграл диплом всероссийской олимпиады по информатике, тогда я научился реализовывать сложнейшие алгоритмы. Но в решении реальной задачи – вычислить равновесие Нэша – ни один из них не помогал! В голове крутились мысли: «Я умею играть в покер, умею программировать, я должен быть в состоянии сделать долбаную программу для покера». Это стало для меня личным вызовом.

Сейчас AI для покера, равновесие Нэша и Game Theory Optimal — мейнстрим. А в конце 2012 даже Том ‘durrr’ Дван, один из сильнейших игроков в мире, на форуме twoplustwo писал, что не верит в существование равновесия Нэша в No-Limit Holdem.

К 2013 году доступные на рынке программы умели считать равновесие в тривиальных покерных ситуациях, о решении игры целиком речи вообще не шло.

Тем не менее, в январе 2013, после полугода экспериментов и кодинга, у меня получилось сделать программу, которая считала равновесия Нэша для самой популярной разновидности покера No-Limit Holdem..

Для знатоков: программа считала равновесия для No-Limit Holdem, начиная с флопа, с двумя активными игроками и при малом числе разрешенных размеров ставок. Алгоритм называется Monte-Carlo Counterfactual Regret Minimization.

Если вкратце, то программа начинала считать с полностью случайной стратегии, а дальше «эволюционировала», т.е. играла сама против себя, и в каждой следующей итерации повышала частоту более выгодных действий.

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

Играю в омаху большими картами в 2010 в Турции.
На пляж я в той поездке не ходил, играл онлайн на PokerStars в отеле

Я понимал, что создал уникальный продукт, и что игрокам, которые играют на высоких ставках, будет очень интересно и выгодно с его помощью углубить понимание игры. Название «солвер» (от глагола to solve — решать) программе позже дали мои англоговорящие клиенты.

Я был первым, кто создал подобный продукт. Десятки успешных профессионалов, игравших в плюс на самых высоких ставках, с которыми я общался, не имели доступа и не слышали про более ранние солверы для No-Limit Holdem. Академические статьи про алгоритмы вычисления равновесия Нэша были, и я на них опирался. Но готового продукта, с которым можно тренироваться и повышать мастерство, до этого не существовало.

Поиск клиентов

Я принял решение дорого продавать свой продукт маленькому числу профессионалов, игравших по самым высоким ставкам, а не широкой аудитории дешево.

Существование программы было выгодно держать в секрете. Ведь если твой оппонент подозревает, что ты изучил и воспроизводишь оптимальную стратегию, то, во-первых, он не будет с тобой слишком много играть, а, во-вторых, будет копировать твою стратегию. А если он ничего не подозревает, то есть шансы, что он будет считать тебя чудаком со странной стратегией, которому просто везет.

В тот момент я играл в покер на профессиональном уровне с суммой на столе в $200, и умел программировать, но в продажах софта и ведении бизнеса опыта у меня не было.

Дополнительной сложностью было то, что с одной стороны, существование программы выгодно держать в секрете, а с другой, нужно искать потенциальных клиентов.

Но как определить цену, когда конкурентов на рынке не существует? Мой мыслительный процесс был примерно следующий.

Продукты, которые считают равновесия Нэша в простых ситуациях стоили 50$, другой софт для анализа игры столько же. Моя программа была круче, поэтому первая идея была брать по 500$ с человека. Потом решил, что можно и по $2,000. Постепенно я осмелел до мыслей: «Раз программа крутая, может быть продавать ее за $10,000?». А на следующий день решил ещё более радикально: «А почему бы не за $50,000? Как раз нормальная цена. Ух, е***ь, разбогатею!!»

В мире большого бизнеса софт за сотни тысяч и миллионы долларов – это обычное дело, но я собирался продавать конкретным людям, а не корпорациям. Все мои знакомые в то время получали в лучшем случае $5,000 в месяц.

Я тогда прочитал книжку Гэвина Кеннеди «Договориться можно обо всем». Один из тезисов там был про то, что начинать переговоры нужно с цены выше той, на которую покупатель в итоге согласится. Я хожу и думаю, а может и больше $50,000 можно попросить, например, $100,000?

На руку мне было то, что найти хорошего учителя в покере максимально сложно: лучшим игрокам выгоднее зарабатывать самим, чем делиться секретами. Сильные, но не сильнейшие игроки тогда иногда тренировали за $1,000 в час и больше. А программа была идеальным учителем с неограниченным временем использования.

Я писал солвер на языке программирования Java.
Скриншот проекта в среде разработки.

На большую цену я замахнулся не только в фантазиях – у меня был потенциальный покупатель, настроенный серьезно – Трутеллер.

Трутеллер был очень успешным игроком, который всего за полтора года поднялся до самых высоких ставок и выиграл больше $2,000,000 в разновидность покера, на которой я сам специализировался (20бб стеки на PokerStars). Кроме перспективы заработать денег, было интересно пообщаться с сильнейшим из моих оппонентов и понять, в чем его магия.

Контакт Трутеллера в скайпе мне дал наш общий знакомый. Изначально была идея заключить эксклюзивную сделку с Трутеллером на шестизначную сумму. Мы оба понимали, что продукт уникальный и может дать большой перевес в игре. Но переговоры за полтора месяца почти не продвинулись — стороны не особо доверяли друг другу.

У него в то время шла игра с $40,000 на столе, он буквально целыми днями катал и не мог найти время для звонка. В какой-то момент он взял неделю подумать. Я стеснялся, не напоминал ему, прождал две недели. Потом созваниваемся: я злой, а он просто ушел в игру с головой и забыл. Диалог был следующий:

Я (раздраженно): «С переговорами ты тормозишь, а эксклюзивность на этот период получаешь вне зависимости от исхода. Предлагаю тебе платить $5,000 в неделю на время переговоров».

Трутеллер (тоже раздраженно): «А давай ты мне будешь платить $2,000 в час, пока мы разговариваем, это мое матожидание в игре сейчас».

Я испугался, что мы так поссоримся и вообще сделки не будет, и не стал настаивать. Но понял, что теряю время и нужно искать других клиентов, о чём и сообщил Трутеллеру.

Тимофей рассказывал о покупке первого солвера в одном из наших интервью:

– Расскажи про первый солвер. Ты рассказывал, что купил его в 2013-м за $100k, Рауль с другими игроками примерно в то же время – за $200k. Это был разный софт?

– Нет, тот же самый. Покупали все у одного человека, просто разные сделки – Рауль объединился с несколькими игроками, а я был один.

– Тебе наверняка не раз предлагали откровенный скам. А как понять, что это что-то полезное? Тебе уже тогда было понятно, что в покере есть оптимальная игра?

– Да, были совсем неадекватные предложения, типа вот возьми софт, который стоит $3 млн, серьезно такое не рассматривал. А то, что в покере существует стратегия, которая соответствует равновесию Нэша, я понял сразу, как только начал играть. Потому что мы это проходили на мехмате. Еще до того, как появились солверы, в каких-то самых простых спотах я просто на бумажке прикидывал, каким будет равновесие Нэша. Условно на ривере это не очень сложно сделать. Потом появился Олег и предложил купить программу, которая сама считает равновесие. Я ответил: «О! Круто, давай».

Поиск продвигался со скрипом. Я связался с парой знакомых игроков, но они абсолютно не видели ценности в программе, предложили от $50 до $500. Разговоры про пятизначные суммы за лицензию вызывали у них недоумение или насмешку.

Хорошо помню, как я написал одной звезде тех лет и предложил ему демонстрацию софта, но он проигнорировал мое холодное сообщение и пинг через общего знакомого. Как я узнал сильно позже, он не верил, что равновесие Нэша можно посчитать, и был уверен что я какой-то скамер. Забавно, что именно он потом стал одним из моих самых заинтересованных клиентов

Это сообщение RaulGonzalez уверенно заигнорил

Потом я написал Алексу ‘Kanu7’ Миллару, игроку из топ-10 мира, на форуме twoplustwo.

Я был новым пользователем на форуме и не мог отправлять другим личные сообщения, поэтому попросил аккаунт у своего друга Ивана Богатого. Написал Алексу, а потом начал тревожиться — вдруг он решит, что какой-то русский его пытается обмануть. Ещё я погуглил и выяснил, что ник Вани светился на каком-то хакерском форуме. Ну всё, думаю, пи***ц. К счастью, это не помешало нам с Алексом начать общение.

Я показал ему демо, и мы договорились, что он приведёт несколько друзей, которые тоже дорого играют, а затем мы обсудим эксклюзивность для их группы. Так и получилось – он привлёк друзей, я им все показал. Эта группа игроков была заинтересована, но до сделки и оплаты было еще далеко. А время поджимало.

Из интервью Алекса:

Еще до появления Pio у меня уже был доступ к закрытому солверу…

– Подожди, что ты имеешь в виду? Та самая «Dream Machine»?

– Да, наконец-то мы ее нашли. На самом деле, когда еще никто не слышал про солверы, я получил письмо на 2+2. Сначала не понял, что это? Может, какой-то спам? Там подробно описывалась работа солвера. Мы начали общаться, потом я собрал небольшую команду, и мы заплатили некую 6-значную сумму за эксклюзивные права на программу. Когда у меня появился софт, которого больше ни у кого не было, мне хотелось все время не только играть, но и работать. Все свое время посвящал покеру.

В покере всегда есть возможность делать что-то, чего другие игроки пока не делают. Например, во времена, когда был только Holdem Manager, я после каждой хедз-ап сессии по 4-5 часов изучал игру соперников, чтобы подготовиться к следующему матчу. Если этого не делать, другие игроки тебя обгонят.

К тому моменту я уже 7 месяцев занимался только программированием и переговорами, в покер не играл. Деньги у меня заканчивались.

В той же книге «Договориться можно обо всем» сказано – кто торопится, тот получает меньше. Я хотел получить больше, поэтому когда делал потенциальным клиентам предложение, и они уходили подумать, я не подавал виду, что скоро меня выселят из квартиры, не теребил их. При этом новым людям я не мог рассказывать про программу.

В итоге я торговался с клиентами за $200,000, не соглашался на их предложения и не торопил с ответами. У меня оставалось $6,000, при том что только оплата квартиры стоила $1,500 в месяц.

Я был занят мыслями о сделке 100% времени. Доходило до абсурда…

Комп стоял в спальне, а я сам лежал в гостиной и читал книгу. Колонки были включены на максимальную громкость, и когда приходил «Кульк!» от сообщения в скайпе, я бежал к компу.

Однажды я услышал «Кульк!», подошел, а сообщения не было. Подумал, что это странный глюк. Потом на следующий день вновь услышал звук, но сообщения опять не было. Я был сбит с толку. Позже нашел объяснение: на кухне стоял старый холодильник, и у него булькал компрессор. Обычно эти звуки невозможно перепутать, но я был максимально чувствительно настроен на сообщения в скайпе, и все похожие звуки интерпретировал как нотификации.

Со скайпом была еще одна забавная история…

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

Я регулярно демонстрировал свой экран по Teamviewer, а у скайпа была особенность, что как его ни настраивай, он все равно иногда выскакивал поверх всех окон. Это было опасно, потому что я оберегал конфиденциальность клиентов (в том числе потенциальных), и без обоюдного согласия им друг про друга не рассказывал. Поэтому я в скайпе переименовывал всех в разные русские имена. Трутеллера переименовал в Тиму (первое что пришло в голову, потому что первая буква одинаковая).

Как-то раз показываю ему очередную версию программы, и он случайно видит, как я его записал в скайпе.

Трутеллер: «А разве я тебе говорил, как меня зовут?»

Я: «Нет…»

Повисает пауза на 2 секунды

Трутеллер (улыбаясь): «Ладно, будем знакомы».

Он понял, что спалился, и что я это тоже понял.

Сделку мы продумывали долго. Проблем была куча.

Проблема 1: Клиенты боятся, что я возьму деньги за эксклюзивность, а потом продам кому-то еще. Такие истории реально иногда происходят.

Решение: Тут остается просто поверить разработчику, поддерживать контакт с другими игроками, и платить по месяцам, а не всю сумму сразу.

Проблема 2: Я боюсь, что клиент заплатит за себя, а будет делиться программой с друзьями. У любого профессионального игрока в покер, как правило, есть 1-2 напарника, с которыми они обсуждают стратегию. С чужими делиться опасно, потому что они же потом за столами обыграют. Но если ты придумал или нашел что-то новое и интересное, то не поделиться с напарником нереально.

Решение: Я с самого начала это понимал, и напарников каждого клиента мы изначально включали в сделку. Это еще удобно тем, что у клиента будет с кем обсудить стратегию, кроме меня

Проблема 3: Если заплатить все сразу, то у клиента рычагов влияния на меня не остается, а апдейты наверняка будут нужны. А если платить по месяцам, то клиент за первые три месяца всю стратегию выучит, и дальше платить не будет.

Решение: оплата по месяцам, но первые месяцы дороже последних.

В апреле я договорился на сделку с группой из 6 игроков во главе с Алексом Милларом, а также отдельно с Трутеллером. Они знали о наличии других участников в сделке, но знакомиться не хотели.

Они получали эксклюзивный доступ к программе. Моё вознаграждение составляло $200,000 за полтора года, с неравномерной оплатой по месяцам. $10,000 в конце первого месяца, за следующие несколько месяцев по $15,000 и потом по убывающей.

Логика была такая: в первый месяц они знакомятся с программой и перепроверяют, что все сходится и разумно выглядит. При этом эксклюзивность они уже получают, поэтому совсем бесплатно месяц им давать было бы несправедливо.

Через 4 месяца после заключения сделки я поехал в Хорватию с друзьями.
Купил для поездки какой-то мелкий ноут, чтобы поддерживать солверы

Через пару дней после заключения сделки мне пишет Рауль, один из клиентов, и просит добавить какую-то фичу в интерфейс.

Интерфейс, конечно, был тогда абсолютно базовый. Уже спустя годы мы поняли, что интерфейс еще важнее, чем алгоритм, потому что удобство занятий критично.

Я: «Первый месяц у нас тестовый, когда вам все понравится и заплатите за него, я продолжу разработку».

Рауль: «Ок, сейчас переведу», и кидает мне на Moneybookers свою долю от оплаты за первый месяц – $2000.

Я: «Фичи я делаю для всей группы, поэтому оплата должна быть за всю группу»

Рауль: не отвечает на сообщение, просто кидает еще $8000

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

Рауль вообще был самым большим фанатом моего солвера. После очередного апдейта с удобными фичами для игры против солвера, Рауль улетел на две недели на какой-то остров, отрубил себе вай-фай, чтобы не отвлекаться, и тренировался с программой целыми днями.

Рауль тоже вспоминал покупку первого солвера в одном из интервью.

– Расскажи про покупку солвера в 2013-м. Как тебе вообще пришла эта идея в голову?

– За исключением двух игроков, все остальные были моими близкими знакомыми, с которыми мы вместе работали над игрой. Сам я о покупке даже не задумывался. Забавно, что чуть раньше разработчик написал мне тут в личке, но я его проигнорировал. Подумал, что это какой-то явный развод. Но потом солвер дошел до меня через третьих людей, подробности я даже не знаю. Был ошеломлен, когда увидел, что NLHE действительно можно решить.

Итоги

На основе солвера для холдема я в том же году дополнительно сделал солвер для омахи (еще одна популярная разновидность покера), который в итоге продал за $300,000. Вместе с $200,000 от холдема это принесло мне $500,000.

При этом про добытую кучу денег я никому не рассказывал, а главное – почти ничего не тратил, потому что жить хорошо я себе тогда не позволял. Это, конечно, был не очень здоровый подход.

Два года спустя, в 2015, на рынке появился мой первый публичный конкурент, другой солвер для No-Limit Holdem. Они продавали лицензии долларов по $500 за пользователя. Я не стал ввязываться в борьбу за копейки и сфокусировался на других проектах.

Сам факт посчитанного мною равновесия Нэша в покере вызывал радость и гордость. Во-первых, эта задача висела у меня открытой в течение 4 лет. Во-вторых, всё профессиональное комьюнити игроков в покер годами размышляло про оптимальную стратегию и пыталось приблизиться к ней, а у меня (и только у меня) появился окончательный ответ.

Я осознал, что создавать сложные программы мне интереснее, чем играть в покер. Дополнительным источником гордости для меня было то, что этот бизнес я создал полностью в одиночку, заработав за год в 8 раз больше, чем в предыдущий.

С тех пор, кроме солверов, я занимался разработкой покер-рума, инструментов для трейдеров и инвестициями.

Мои клиенты, сильнейшие в мире игроки в покер, с которыми у нас были изматывающие дискуссии в попытке договориться об условиях, в итоге стали моими друзьями. Мы продолжаем работать вместе, а уровень доверия, которого мы достигли, стал основой нашей дружбы и совместного бизнеса.

В следующих статьях я расскажу про техническую историю создания солвера и другие бизнес-приключения. Чтобы следить за следующими публикациями, подписывайтесь на мой Телеграм-канал.

Особая благодарность Ивану Богатому, без помощи которого я бы не записал эту историю.

Иван много лет вдохновлял меня своими эпичными публикациями про свои дерзкие и глубоко технические приключения: Иван сделал первый в мире фронтран на блокчейне, взломал криптовалюту Grin, прочитал лекцию о своей работе в Google AI Research.

Иван рассказывает про свою яркую карьеру исследователя/предпринимателя/инвестора в Кремниевой Долине с технической стороны в Твиттере, а с личной стороны – в Телеграм-канале, подписывайтесь и там, и там.

Спасибо Андрею Сомову за фотографии.

Спасибо Илье Лауту, Андрашу Густи, Сергею Бартунову, Тимофею Кузнецову, Дарье Фещенко, Екатерине Луриной, Александру Еленскому, Илье Городецкому, Дмитрию Филонову и Андрею Шеломенцеву за помощь в работе над статьей.

Следите за обновлениями GipsyTeam вконтакте, на фейсбуке, на YouTube, в твиттере, телеграме и инстаграме.
Поделиться новостью:
Еще по теме
Лучшие комментарии
  • Femenist

     

    Ценю твои размышления, но не думаю что можно было заработать сильно больше. 

    Маркетинг у меня был безусловно слабее чем технические умения. 

    Под "многомиллионной нишей" ты, полагаю, подразумеваешь публичную продажу солверов. 

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

    У публичного продукта есть минусы:
    -продукт должен быть вылизанный, потому что нельзя индивидуально каждому пользователю объяснить особенности
    -саппорт, прием платежей
    -наглый шеринг
    -у меня расчет одного флопа стоил порядка $20, для моих клиентов это были незначительные расходы, а для лицензий по $500 пришлось бы ускорять алгоритм, а это дополнительная работа
    -вылезать на публику дело довольно стрессовое 

    В итоге, с дополнительным гемором я бы мог заработать в пару-тройку раз больше на холдем солвере.

    Показать в ленте
    32
20 комментариев
1
Зачем регистрироваться на GipsyTeam?
  • Вы сможете оставлять комментарии, оценивать посты, участвовать в дискуссиях и повышать свой уровень игры.
  • Если вы предпочитаете четырехцветную колоду и хотите отключить анимацию аватаров, эти возможности будут в настройках профиля.
  • Вам станут доступны закладки, бекинг и другие удобные инструменты сайта.
  • На каждой странице будет видно, где появились новые посты и комментарии.
  • Если вы зарегистрированы в покер-румах через GipsyTeam, вы получите статистику рейка, бонусные очки для покупок в магазине, эксклюзивные акции и расширенную поддержку.