Код документа: RU2636367C2
Вводная часть
Настоящее изобретение относится к способам и к системам для проведения экземпляров игры. Конкретные варианты осуществления относятся к ставочным играм, например, играм покерного типа.
Онлайновые игровые системы проводят игры для участия игроков, использующих клиентские устройства для подключения к системе по сети (например, сети Internet). Игры распространенного типа включают в себя ставочные игры, например, игры покерного типа. Однако упомянутые игры могут подразумевать длительное время бездействия игрока. Например, после паса в начале руки в покере игрок может бездействовать в течение значительного времени, пока рука не заканчивается. Это может не только снизить качество впечатления пользователя, но также приводит к неэффективности использования системных ресурсов, так как от системы требуется поддерживать соединения с большим числом игроков, независимо от бездействия отдельных игроков в течение длительного времени.
Предлагаемые решения упомянутой проблемы длительных времен бездействия игроков включают в себя обеспечение быстрее действующих игровых моделей.
Данная система будет снабжать игроков равномерным потоком игр для участия в них посредством автоматического распределения игроку нового экземпляра игры (например, новый виртуальный покерный «стол»), как только игрок перестает активно действовать в предыдущем экземпляре игры, например, посредством выхода из игры (например, пасом руки в покере). Однако данная система создает ряд проблем в отношении реализации новых быстрее действующих игровых моделей, например, в порядке коммуникации между игроком и игрой.
Кроме того, при непрерывной передаче игроков новым покерным столам упомянутым образом желательно осуществлять управление позиционированием игроков за столами, чтобы исключить предоставление игрокам несправедливых выгодных или невыгодных условий (так как позиция игрока имеет стратегическое значение в некоторых играх, например, в таких вариантах покера, как Texas Hold ʹEm (Техасский холдем).
Поэтому целью настоящего изобретения является обеспечение эффективного решения, по меньшей мере, некоторых из вышеупомянутых проблем.
Сущность изобретения
В соответствии с изобретением предлагается компьютерно-реализуемый способ проведения экземпляров игры, при этом способ содержит: этап подключения клиентского приложения, связанного с игроком, к первому экземпляру игры, проводимой сервером; в ответ на прекращение участия игрока в первом экземпляре игры этап назначения игрока для второго экземпляра игры; этап подключения клиентского приложения ко второму экземпляру игры; и этап поддерживания подключения клиентского приложения к первому экземпляру игры во время участия игрока во втором экземпляре игры.
Таким образом, для игрока создается впечатление быстрого проведения игры, когда игроков перемещают к новому экземпляру игры, например, виртуальному покерному столу, как только они заканчивают свою текущую игру. Это исключает любые задержки, которые могут вызывать скуку у игрока. Кроме того, изобретение обеспечивает эффективный метод реализации данной функции между сервером и клиентским приложением. Это обеспечивает для игрового сервера удобный метод управлять несколькими экземплярами игр, одновременно связанными с игроком.
Способ может содержать этап получения указания в клиентском приложении о том, что игра в первом экземпляре игры закончена; и в ответ на указание этап прекращения подключения клиентского приложения к первому экземпляру игры. Таким образом, соединениями можно управлять так, что поддерживаются только те соединения, которые требуются.
Назначение предпочтительно выполняется в ответ на взаимодействие пользователя, указывающее на желание выйти из игры (например, пас или пас вне очереди). Кроме того, назначение может выполняться в ответ на взаимодействие пользователя, указывающее желание выйти из игры вне очереди. Это является эффективным методом исключения времени бездействия игрока, в частности, когда игрок делает пас вне очереди.
Приведенный способ согласно изобретению может включать в себя любые из этапов любого другого аспекта способа, изложенного в настоящей заявке.
В предпочтительных вариантах осуществления игра является ставочной игрой, например, игрой покерного типа. В данных случаях экземпляры игр могут также называться «столами», и игровые позиции могут также называться «местами».
В дополнительном варианте осуществления изобретения предлагается компьютерно-реализуемый способ проведения экземпляров игры, имеющей множество игровых позиций, которые могут быть заняты игроками, при этом способ содержит: этап связывания с игроком множества весов, относящихся к соответствующим игровым позициям, причем каждый вес указывает на соответствующую склонность к размещению игрока в соответствующей игровой позиции; в ответ на участие игрока в первом экземпляре игры в данной игровой позиции этап обновления множества весов для указания измененной склонности к размещению в каждой соответствующей позиции; и этап назначения игрока для второго экземпляра игры на основании одного или более из обновленных весов.
Таким образом, способ обеспечивает статистически справедливое назначение игроков на игровые позиции в течение множества рук. Кроме того, назначение игрока выполняется эффективно в вычислительном отношении.
Веса обычно содержат численную информацию, обычно одну (или более) численную(ые) меру(ы). В предпочтительном варианте вес имеет форму числа, указывающего уровень склонности к (или против) размещению(я) игрока в соответствующей игровой позиции. В предпочтительных примерах, описанных в настоящей заявке, меньшее весовое значение указывает большую (более сильную) склонность к игровой позиции (и, следовательно, склонность усиливается посредством уменьшения весового значения и ослабляется посредством увеличения весового значения). В предпочтительных примерах нулевое значение может указывать максимальную (наиболее сильную) склонность к размещению. Однако будет очевидно, что в других вариантах осуществления можно использовать другой подход, в котором большие весовые значения указывают на большую склонность, и малые весовые значения указывают на небольшую склонность. Ссылки на большие/малые весовые значения и на уменьшение, увеличение, прибавление/вычитание и другие математические операции, выполняемые с весовыми значениями, следует интерпретировать соответственно.
Весовое значение (или склонность) предпочтительно указывает на желательность или вероятность размещения игрока в конкретной игровой позиции. Кроме того, веса для игрока могут указывать или кодировать информацию относительно прошлых игровых позиций, занимаемых игроком, (например, игрок, в последнее время занимавший конкретную игровую позицию, может иметь вес, указывающий меньшую склонность к размещению в данной позиции в будущем, чем игрок, еще раньше занимавший данную игровую позицию).
В предпочтительном варианте вес связывается с каждой доступной игровой позицией. Веса игровых позиций называются в настоящей заявке также (в контексте игр покерного типа) «посадочными весами» (SW).
Посредством использования весовых значений для принятия решений о размещении игрока распределение игрока может эффективно выполняться наряду с удовлетворением требуемых критериев размещения. Кроме того, посредством модификации множества весов, относящихся к множеству игровых позиций, после того, как игрок участвовал в игре в конкретной игровой позиции (вместо того, чтобы модифицировать лишь вес для только что занимаемой позиции), назначение игрока может осуществляться с более точным управлением, например, для обеспечения перемещения игрока вдоль конкретной требуемой последовательности позиций.
Этап обновления предпочтительно выполняется в зависимости от данной игровой позиции, занимаемой игроком в первом экземпляре игры. В частности, для только что занятой игровой позиции к весу предпочтительно применяют модификации, отличающиеся от других игровых позиций. В одном примере первая модификация применяется к весу для только что занятой игровой позиции, и вторая модификация применяется ко всем остальным позициям.
Этап обновления предпочтительно содержит обновление веса для данной игровой позиции, чтобы указать уменьшенную склонность к размещению в данной позиции. Это уменьшает шансы того, что игрок будет размещен в той же самой позиции снова.
Этап обновления предпочтительно содержит обновление весов для одной или более (предпочтительно, каждой) из позиций, отличающихся от данной игровой позиции, чтобы указать повышенную склонность к размещению в одной или более позициях. Это повышает шансы, что игрок будет занимать отличающуюся позицию во втором (или последующем) экземпляре игры.
В предпочтительном варианте обновление весов для позиций, отличающихся от данной игровой позиции, поддерживает порядок следования упомянутых весов друг относительно друга. Это может допускать перемещение игрока вдоль конкретной требуемой последовательности позиций.
Веса предпочтительно обновляются так, что после обновления вес для данной игровой позиции указывает наименьшую склонность к размещению в данной позиции, по сравнению с весами для других позиций.
Обновление веса может содержать умножение веса на коэффициент обновления. Коэффициент обновления может выбираться в зависимости от числа игровых позиций в игре. Обновление веса, соответствующего данной игровой позиции, может содержать одно или то и другое из: умножения веса на коэффициент обновления и добавления предварительно заданного весового значения. Другими словами, для только что занятой игровой позиции обновление веса может содержать умножение веса на такой же или отличающийся коэффициент обновления и/или добавление (вычитание) фиксированного члена к (из) весу(а). Фиксированный член можно выбирать в зависимости от числа игровых позиций в игре.
В предпочтительном варианте способ содержит инициализацию весов перед участием игрока в игре. Например, веса могут инициализироваться перед участием игрока в первом экземпляре игры после присоединения к сеансу игры. В процессе сеанса игры игрок тогда предпочтительно перемещается из экземпляра игры к экземпляру игры с весами, обновляемыми после каждого экземпляра вышеописанным образом, пока игрок не прекращает участие в сеансе игры.
Инициализация может содержать установку веса для выбранной начальной позиции на заданное значение, указывающее первую склонность к размещению игрока в начальной позиции, и установку весов для других позиций на одно или более других значений, указывающих меньшую склонность к размещению в данных позициях в сравнении с первой склонностью. Таким образом, создается более высокая вероятность того, что алгоритм размещения будет помещать игрока в начальную позицию. По той же причине вес начальной позиции может быть установлен на значение, указывающее максимальную склонность к позиции (например, минимальное или максимальное доступное весовое значение, например, нуль).
Инициализация предпочтительно содержит установку весов на соответствующие значения, указывающие порядок следования склонностей игровых позиций, согласующийся с предварительно заданным порядком игровых позиций. Порядок следования склонностей может указывать максимальную склонность к размещению в первой (начальной) позиции, как изложено выше. Например, в игре покерного типа порядок следования склонностей может указывать склонность к размещению в месте блайнда, в частности, большого блайнда, со склонностью, уменьшающейся с данного места по посадочным позициям в обычном порядке рассаживания в покере/игры.
Этап назначения предпочтительно содержит: для данной игровой позиции во втором экземпляре игры выбор игрока из множества игроков на основании сравнения веса игрока для данной игровой позиции с весами для данной позиции, связанными с одним или более других игроков. Например, может быть выбран игрок с максимальной склонностью к позиции.
Этап назначения может содержать назначение игрока дополнительно на основании значения времени, связанного с игроком.
В предпочтительном варианте этап назначения содержит: для данной игровой позиции во втором экземпляре игры вычисления показателя склонности, указывающего на склонность к размещению игрока в данной игровой позиции в зависимости от веса игрока для данной игровой позиции и значения времени, связанного с игроком.
Показатель склонности предпочтительно вычисляется посредством модификации веса позиции на основании значения времени. Показатель склонности называется также в настоящей заявке «эффективным весом» или «эффективным посадочным весом (ESW)». Показатель склонности предпочтительно вычисляется так, что увеличение значения времени приводит к повышенной склонности к размещению игрока.
Значение времени предпочтительно указывает время бездействия или время ожидания игрока, предпочтительно время после того, как игрок прекратил участвовать в первом экземпляре игры, или другое указание времени, в течение которого игрок был бездействующим или ожидающим назначения для экземпляра игры. Таким образом, вероятность размещения игрока в конкретную игровую позицию экземпляра игры повышается с увеличением времени, которое игрок был бездействующим/ожидающим. Это может сокращать время бездействия игроков. Значение времени может взвешиваться весовым коэффициентом, который может быть фиксированным или переменным, например, переменным на основании числа участвующих игроков. Весовой коэффициент может выбираться (например, эмпирически) для достижения обоснованного компромисса между временами ожидания игроков и точностью размещения.
В предпочтительном варианте способ содержит для данной игровой позиции во втором экземпляре игры вычисление показателя склонности, относящегося к данной игровой позиции, для каждого из множества игроков (предпочтительно вышеизложенным образом); выбор игрока, имеющего значение склонности, указывающее максимальную склонность к размещению в данной игровой позиции; и назначение выбранного игрока для второго экземпляра игры на данную игровую позицию.
Способ может содержать назначение игрока для второго экземпляра игры в ответ на действие игрока в первом экземпляре игры. Действие игрока может содержать выход из игры (или круга или руки игры), например, пасом в игре покерного типа (пас может иметь место вне очереди, как поясняется в других местах настоящей заявки, при этом игрок назначается для второго экземпляра игры и может участвовать в нем до того, как действие паса реализуется в первом экземпляре игры в надлежащем очередном порядке). Способ может содержать подключение игрока ко второму экземпляру игры при одновременном сохранении подключения игрока к первому экземпляру игры.
Этап назначения предпочтительно выполняется в соответствии с алгоритмом размещения.
Алгоритм размещения можно выбирать, и/или один или более параметров алгоритма размещения можно изменять в зависимости от такого критерия, как число участвующих игроков.
Алгоритм размещения предпочтительно инициируется в ответ на условие запуска, при этом условие запуска предпочтительно содержит что-то одно или то и другое из: истечения предельного времени; и числа бездействующих игроков, превышающего порог. Например, алгоритм размещения может запускаться по возникновению любого из вышеприведенных условий. Предельное время может быть заданным временем с момента последнего выполнения алгоритма размещения.
В дополнительном аспекте изобретения предлагается компьютерно-реализуемый способ проведения экземпляров игры, имеющей множество игровых позиций, которые могут быть заняты игроками, при этом способ содержит: этап инициирования экземпляра игры; этап для каждой игровой позиции в экземпляре игры назначения игрока на игровую позицию, причем назначение содержит для каждой игровой позиции: для каждого из множества игроков, доступных для назначения на данную игровую позицию, вычисление показателя склонности, указывающего на склонность к размещению игрока в соответствующей позиции, причем показатель склонности вычисляется в зависимости от (i) информации о весах позиций, связанной с игроком, и (ii) информации о времени ожидания, указывающей время, которое игрок ожидал назначения на игру; этап выбора одного из множества доступных игроков в зависимости от вычисления показателей склонности; и этап назначения выбранного игрока на данную игровую позицию.
Этап выбора предпочтительно содержит выбор игрока, имеющего показатель склонности, указывающий на наибольшую склонность к размещению в данной игровой позиции, например, этап выбора может содержать выбор игрока, имеющего наименьший или наибольший показатель склонности. В данном и любом другом аспекте алгоритм размещения может начинать размещение игроков с предварительно заданной начальной игровой позиции (например, большого блайнда) или, в качестве альтернативы, может начинать размещение с начальной позиции, выбранной по случайному закону. Размещение в последующие позиции может выполняться в обычном игровом порядке, в другом предварительно выбранном порядке или снова в случайном порядке. Способ в данном аспекте может включать в себя любой из этапов любого другого способа, изложенного в настоящей заявке.
В дополнительном аспекте изобретения предлагается компьютерно-реализуемый способ проведения экземпляров игры, имеющей множество игровых позиций, которые могут быть заняты игроками, при этом способ содержит: этап для каждого из множества игроков связывания с игроком: множества весов, относящихся к множеству соответствующих игровых позиций, причем каждый вес указывает на соответствующую склонность к размещению игрока в соответствующей игровой позиции; и индикатора бездействия для указания, является ли игрок в текущий момент участвующим в игре или является бездействующим; этап инициирования экземпляра игры; этап для каждой игровой позиции, связанной с экземпляром игры, выбора одного из множества игроков в зависимости от индикаторов бездействия и весов игроков для игровой позиции, и назначения выбранного игрока на игровую позицию; и этап обновления каждого из множества весов, связанных с назначенным игроком, чтобы указать измененную склонность к размещению назначенного игрока в каждой соответствующей позиции.
Способ может дополнительно содержать этап, в ответ на прекращение участия данного игрока в экземпляре игры, установки индикатора бездействия для игрока, чтобы указать, что игрок является бездействующим.
Этап выбора предпочтительно выбирает только бездействующих игроков в соответствии с их индикаторами бездействия. Способ может дополнительно содержать этап связывания времени бездействия с игроками, указанными как бездействующие индикатором бездействия, и при этом этап выбора выбирает игрока на игровую позицию дополнительно в зависимости от времен бездействия игроков. Способ в данном аспекте может включать в себя любой из этапов любого другого способа, изложенного в настоящей заявке.
В дополнительном аспекте изобретения предлагается компьютерно-реализуемый способ проведения экземпляров игры, имеющей множество игровых позиций, которые могут быть заняты игроками, при этом способ содержит: этап связывания с каждым из множества игроков множества счетчиков, относящихся к соответствующим игровым позициям, причем счетчик игрока, соответствующий данной игровой позиции, обновляется (предпочтительно наращивается) в ответ на участие игрока в игре в данной игровой позиции; этап назначения игроков из множества игроков для экземпляра игры на основании счетчиков, причем этап назначения содержит для данной игровой позиции в экземпляре игры: определение весов позиций для каждого из набора игроков, причем определение веса позиции для игрока содержит вычисление веса позиции на основании счетчика игрока для данной игровой позиции и числа игр, сыгранных с участием в них игрока, (например, после присоединения к сеансу игры или после некоторого другого заданного момента); выбор одного из набора игроков на основании весов позиций; и назначение выбранного игрока на данную игровую позицию в экземпляре игры. Приведенная процедура предпочтительно выполняется для каждой игровой позиции.
Определение веса позиции для игрока предпочтительно содержит: определение отношения числа игр, сыгранных с участием в них игрока, (например, после присоединения к сеансу или некоторого другого заданного момента) и числа игровых позиций, доступных в игре, (например, размера стола в покере), и модификацию значения счетчика игрока на основании отношения. В данном контексте число игр, сыгранных с участием в них игрока, может именоваться числом кругов или рук в игре, например, игре покерного типа. Способ может содержать вычитание отношения из значения счетчика игрока.
Набор игроков может содержать всех игроков из множества игроков или всех доступных или бездействующих игроков из множества игроков.
Способ может содержать этап выбора набора игроков из множества игроков. Этап выбора набора игроков может содержать выбор игроков, которые являются в настоящий момент бездействующими, и/или выбор игроков на основании индикаторов бездействия, связанных с каждым из множества игроков (как изложено в другом месте настоящей заявки). Этап выбора набора игроков предпочтительно содержит выбор по случайному закону из доступных игроков. В предпочтительном варианте число игроков выбирается для набора, соответствующего числу доступных игровых позиций в экземпляре игры. Например, число игроков, достаточное для заполнения всех доступных игровых позиций, может быть выбрано (например, по случайному закону) из всех доступных (например, бездействующих) игроков, и затем игроки назначаются на игровые позиции из набора. Приведенный подход и вышеописанные признаки, относящиеся к выбору набора игроков для назначения для экземпляра игры, можно также использовать в контекстах выше- и нижеизложенных других аспектов способов и могут быть обеспечены как независимый аспект изобретения.
В предпочтительном варианте вес позиции определяется дополнительно в зависимости от значения времени, указывающего время, в которое игрок был бездействующим, предпочтительно таким образом, как изложено в другом месте настоящей заявки.
В любом из вышеприведенных аспектов этап назначения игроков может дополнительно содержать применение одного или более правил размещения игроков, при этом правило размещения игроков указывает предпочтение к или против помещению(я) игрока в конкретную позицию (например, баттон или блайнды) на основании позиций, сыгранных игроком в предыдущих экземплярах игры.
Способ в данном аспекте может включать в себя любые из этапов любого другого аспекта способа, изложенного в настоящей заявке.
В дополнительном аспекте изобретения предлагается компьютерно-реализуемый способ проведения экземпляров игры, имеющей множество игровых позиций, которые могут быть заняты игроками, при этом способ содержит: этап связывания с каждым из множества игроков значения позиции, относящегося к игровым позициям, сыгранным игроком в прошлых экземплярах игры; этап, в ответ на участие игрока в первом экземпляре игры в данной игровой позиции, обновления значения позиции для игрока на основании данной игровой позиции, причем значение позиции обновляется так, чтобы накапливать разность между позицией, сыгранной в каждом экземпляре игры, и предварительно заданным значением игровой позиции, предпочтительно средним значением игровой позиции или средней позицией (например, средней позицией стола в игре покерного типа); и этап назначения игрока для второго экземпляра игры на основании значения позиции. Способ в данном аспекте может включать в себя любые из этапов любого другого аспекта способа, изложенного в настоящей заявке.
В дополнительном аспекте предлагается машиночитаемый носитель, содержащий системную программу, адаптированную при выполнении в устройстве обработки данных с возможностью выполнения способа проведения экземпляров игры, имеющей множество игровых позиций, которые могут быть заняты игроками, при этом системная программа содержит код для: связывания с игроком множества весов, относящихся к множеству соответствующих игровых позиций, причем каждый вес указывает на соответствующую склонность к размещению игрока в соответствующей игровой позиции; в ответ на участие игрока в первом экземпляре игры в данной игровой позиции обновления каждого из множества весов для указания измененной склонности к размещению в каждой соответствующей позиции; и назначения игрока для второго экземпляра игры на основании одного или более из обновленных весов.
В дополнительном аспекте предлагается система для проведения экземпляров игры, имеющей множество игровых позиций, которые могут быть заняты игроками, при этом система содержит: средство для связывания с игроком множества весов, относящихся к множеству соответствующих игровых позиций, причем каждый вес указывает на соответствующую склонность к размещению игрока в соответствующей игровой позиции; средство для, в ответ на участие игрока в первом экземпляре игры в данной игровой позиции, обновления каждого из множества весов для указания измененной склонности к размещению в каждой соответствующей позиции; и средства для назначения игрока для второго экземпляра игры на основании одного или более из обновленных весов.
Изобретение дополнительно обеспечивает машиночитаемый носитель, содержащий системную программу, адаптированную при выполнении в устройстве обработки данных с возможностью выполнения любого способа, изложенного в настоящей заявке; систему, содержащую средства для выполнения любого способа, изложенного в настоящей заявке; и игровой сервер, при этом серверное устройство или клиентское устройство содержит процессор и связанную память, сконфигурированные с возможностью выполнения (или участия в) любого(ом) способа(е), изложенного(ом) в настоящей заявке.
В общем, изобретение обеспечивает также компьютерную программу и компьютерный программный продукт для выполнения любого из способов, описанных в настоящей заявке, и/или для осуществления любого из признаков устройства, описанных в настоящей заявке, и машиночитаемый носитель с сохраненной на нем программе для выполнения любого из способов, описанных в настоящей заявке, и/или для осуществления любого из признаков устройства, описанных в настоящей заявке.
Изобретение обеспечивает также сигнал, осуществляющий компьютерную программу для выполнения любого из способов, описанных в настоящей заявке, и/или для осуществления любого из признаков устройства, описанных в настоящей заявке, способ передачи упомянутого сигнала и компьютерный продукт, содержащий операционную систему, которая поддерживает компьютерную программу для выполнения любого из способов, описанных в настоящей заявке, и/или для осуществления любого из признаков устройства, описанных в настоящей заявке.
Любой признак устройства, описанный в настоящей заявке, может быть также обеспечен как признак способа, и наоборот. В контексте настоящей заявки признаки средства плюс функции могут быть выражены в качестве альтернативы в виде их соответствующей структуры, например, соответственно запрограммированного процессора и связанной памяти.
Любой признак в одном аспекте изобретения может быть применен к другим аспектам изобретения в любой подходящей комбинации. В частности, аспекты способа можно применять к аспектам устройства, и наоборот. Кроме того, любые, некоторые и/или все признаки в одном аспекте можно применять к любым, некоторым и/или всем признакам в любом другом аспекте в любой подходящей комбинации.
Следует также понимать, что конкретные комбинации различных признаков, описанные и заданные в любых аспектах изобретения, могут быть реализованы и/или заданы, и/или применены независимо.
Кроме того, признаки, реализованные в аппаратном обеспечении, могут быть, как правило, реализованы в программном обеспечении, и наоборот. Любая ссылка на признаки программного обеспечения и аппаратного обеспечения в настоящей заявке должна интерпретироваться соответствующим образом.
Изобретение распространяется на способы и/или устройства, по существу, описанные в настоящей заявке со ссылкой на прилагаемые чертежи.
Подробное описание
Приведенные и другие аспекты настоящего изобретения будут очевидны из нижеприведенных примерных вариантов осуществления, которые описаны со ссылкой на следующие фигуры, на которых:
Фигура 1 - блок-схема последовательности операций способа для сокращения времени бездействия игрока в онлайновой игровой системе;
Фигура 2 - пример экрана вступительного взноса;
Фигура 3 - стол, за который игрок посажен и ожидает оппонентов;
Фигура 4 - пример игры, исполняемой в текущий момент;
Фигура 5 - информация, которая генерируется в отношении конкретного типа игры;
Фигура 6 - пояснение алгоритма размещения;
Фигура 7 - структура данных для управления игроками;
Фигура 8 - игроки, подключенные к более чем одному столу одновременно;
Фигура 9 - анализ параметров процесса размещения;
Фигура 10 - влияние коэффициента времени ожидания на скорость размещения;
Фигура 11 - влияние коэффициента времени ожидания на равномерность распределения позиций; и
Фигура 12 - система для проведения игр и сокращения времени бездействия игроков.
Общее представление
Схемы, описанные в настоящей заявке, предназначены для снабжения игроков равномерным потоком игр, в частности покерных игр, в онлайновой среде посредством игры нового типа, называемой в настоящей заявке «игрой с быстрым размещением».
На фигуре 1 приведена схема процесса проведения игрой с быстрым размещением. Игрок вводит (100) и выбирает данный тип игры, затем выполняет необходимую регистрацию или делает взнос (102). Затем игрок ожидает размещения (114). Игрока размещают за столом (104), и игра начинается (106). Как только игрок выбирает пас (108) в очередь или вне очереди (и при условии, что игрок не выбрал окончание игры (110), а также не выбрал неучастие (112)), система начинает поиск новой игры для данного игрока в то время, как игрок ожидает размещения (114).
В некоторых играх опции игрока и информация, доступная игроку, зависят от места (или позиции) игрока за столом. Таким образом, в некоторых вариантах покерной игры стратегическая позиция и/или шансы выигрыша игрока могут зависеть от его посадочной позиции за столом. В частности, для покерных игр со слепой структурой позиция может быть важной. Для игр, в которых позиция не влияет на ведение игры, например, Draw (Дро) или Stud (Стад), игроки могут перемещаться от одного стола за следующий стол, не взирая на позицию. Для игр, в которых позиция влияет на ведение игры, например, игр со слепой структурой, позиция за столом должна учитываться, когда игроки перемещаются от одного стола за следующий стол. Чтобы обеспечить справедливость в отношении игроков, обеспечен алгоритм размещения. В частности, алгоритм размещения может быть предназначен для содействия тому, чтобы распределение отведенных посадочных позиций было статистически равномерным.
В описанной покерной игре с быстрым размещением игроки перемещаются от одного к другому столу немедленно после паса или окончания руки. Это сокращает время, в течение которого игроки должны ожидать, пока все оппоненты не возьмут свои терны и игра не закончится. Если, например, игрок играет приблизительно 65-70 рук в час за обычным безлимитным (NL) полным столом, то, посредством перемещения игрока немедленно после паса или окончания руки, игрок может играть приблизительно 200 рук в час (в зависимости от размера пула игроков и других переменных параметров).
В одном варианте осуществления последовательность действий является следующей:
• Присоединяющийся игрок немедленно усаживается (или размещается или распределяется) за стол.
• Рука начинается, как только достаточное число игроков присоединилось к столу.
• После того, как игроки закончили действие по своей руке (посредством паса или окончания путем вскрытия), игроки перемещаются к новому столу.
○ Если стол с игроками имеет свободное место: игроков усаживают за данный стол.
○ Если не существует столов со свободными местами: создается новый стол, и игрок усаживается.
Некоторые альтернативные подходы также описаны ниже.
Одно преимущество состоит в увеличении числа рук, играемых на одном столе. Ниже приведены требования, которые принимаются во внимание:
• Отслеживать позицию игрока, по возможности (вести игру подобно обычному круглому игровому столу).
• Обеспечивать насколько возможно справедливое распределение мест в продолжение орбит.
Ниже обеспечено быстрое пошаговое разъяснение с точки зрения игрока. Более подробное описание по каждому этапу приведено впоследствии.
Основной экран: игрок выбирает участие и выполняет любую необходимую регистрацию или вносит взнос. (Фигура 2 представляет пример экрана этапа 102 вступительного взноса)
Посадка за стол: игрок размещается за столом. Возможно, игрок является единственным игроком за данным столом. Возможно отображение графики или простого текста, указывающих или поясняющих, что система производит поиск игроков, и игра скоро начнется. (Фигура 3 представляет пример экрана стола, за который игрок посажен и ожидает размещения за столом, 114, или ожидает оппонентов)
Появление игроков: оппоненты заполняют стол, и игра начинается. (Фигура 4 представляет пример экрана игры, исполняемой в текущей момент, 106). После того, как игрок пасует, игрок перемещается к столу (пустому или частично пустому) для ожидания новой игры, и процесс повторяется.
Нижеприведенная таблица поясняет упрощенный пример стола для Техасского Холдема с 6 игроками. Для каждого типа игры десятки или сотни игроков ведут игру одновременно, и поэтому постоянно создается много новых столов.
Таблица 1. Пример последовательности действий и соответствующих результатов
С точки зрения Ричарда:
• Он начинает играть и усаживается за стол 1. Рука начинается.
• Он пасует и перемещается к столу 2. Рука начинается.
• Он пасует и перемещается к столу 3.
• Как только Фил, Дэниел и Крис добавляются к столу 3, рука начинается.
С точки зрения игрока его немедленно перемещают к новому столу после каждой руки без открытия или закрытия окон.
Следует отметить, что в вышеприведенном примере игроки размещаются за новым столом немедленно после паса за предыдущим столом и затем ожидают, чтобы стол заполнился, прежде чем игра начинается. В альтернативных вариантах осуществления система создает новый стол только после того, как становится достаточно бездействующих игроков для заполнения стола, и затем распределяет игроков для стола в соответствии с алгоритмом размещения.
Таким образом, при данном подходе, все игроки нового стола перемещаются на их места одновременно. С точки зрения игрока, когда он пасует:
• Игрок находится в данный момент за столом в одиночестве (как показано на фигуре 3)
• Все оппоненты перемещаются со стола
• Все фишки, карты и т.п. убираются со стола
• Никаких новых игроков нет
Когда новый стол собирается (после любой задержки, которая необходима для сбора нового стола):
• Все оппоненты размещаются на местах вокруг игрока.
• Баттон устанавливается
• Принимаются блайнды
• Карты сдаются
• Рука начинается
Время существования стола
Столы создаются при необходимости, например, если не существует столов со свободными местами и игрок ищет стол; или если существуют столы со свободными местами, но существует экземпляр игрока, пробующего занять место за каждым из них. Время существования стола является следующим:
• Стол создается/активизируется - стол в данный момент вакантен и принимает игроков
• Стол заполнен игроками
○ Стол больше не принимает дополнительных игроков
○ Рука вступает в игру
• Каждый оставляет стол - Стол помечается как неактивный. Стол либо разрушается, либо используется вторично.
Неучастие
Игрок может не участвовать по многим причинам, включая:
• Игрок выбрал флаговую кнопку «Неучастие в следующем большом блайнде» («Sit out Next Big Blind»), и в следующей руке игрок был большим блайндом.
• Игрок выбрал флаговую кнопку «Неучастие в следующей руке» («Sit out Next Hand»), и его предыдущая рука закончилась.
• Игрок превысил лимит времени в течение руки и закончил в состоянии блокировки по времени.
Игрок, который не участвует, может оставаться за текущим столом или сам переместиться к столу ожидания. Стол ожидания требует другого перемещения. Оставление игрока за текущим столом может привести к путанице, если несколько игроков не участвуют одновременно. Если игрок остается за текущим столом, но все другие игроки убираются с дисплея игрока (даже если оппонент не участвует в то же самое время), данная задача решается.
Игрок со статусом «неучастие» остается за текущим столом. Данный стол имеет функциональные возможности обычного стола, например, добавления фишек, изменения темы и т.п. На данном столе обеспечена кнопка, называемая [Обратно] ([Iʹm Back]). Щелчок на данной кнопке инициализирует размещение игрока за новым столом. Разрушать стол, за которым находятся неучаствующие игроки, не разрешается. Если несколько игроков не участвуют в одной и той же руке, они могут либо пропадать, либо оставаться видимыми с/на дисплее стола друг для друга, как только текущая рука заканчивается:
• игроки пропадают с дисплея друг для друга: когда игрок щелкает на кнопке [Обратно], с его точки зрения, он перемещается к другому столу, и появляются другие новые активные игроки.
• игроки остаются видимыми на дисплее друг для друга: когда игрок щелкает на кнопке [Обратно], с его точки зрения, он перемещается к другому столу, другие неучаствующие игроки пропадают, и появляются другие новые активные игроки. С точки зрения других «неучаствующих» игроков, данный игрок удаляется со стола.
Неучастие в следующем большом блайнде
Игроки обеспечиваются возможностью оптимизировать их оплаченные блайнды. Игроки имеют опцию выбора неучастия в следующем большом блайнде, что автоматически делает игрока неактивным, если он посажен за большой блайнд. В процессе размещения следующая посадочная позиция может не соответствовать обычной последовательности. Если игрок использует функцию «Неучастие в следующем большом блайнде» («Sit Out Next Big Blind»), его следующее место может смещаться к месту около большого блайнда (BB).
Если игроком выбрано «Неучастие в следующем BB», и сервер разместил бы его в большом блайнде в следующей руке, то игрок не размещается и, вместо этого, не участвует. Он больше не производит поиска стола и должен либо закрыть окно для выхода, либо нажать кнопку «Обратно», чтобы возобновить игру.
Если непрерывность позиций сохраняется в течение сеансов, то может потребоваться адаптация. Например:
• Игрок покидает стол в позиции 4
• Игрок начинает играть снова на следующий день
• Первая рука игрока будет в позиции 5 вместо большого блайнда
Неполучение «Неучастия в следующем большом блайнде» будет срывать планы игроков, которые имеют привычку «оптимизировать свои блайнды» и намерены передавать право перед своим большим блайндом. Это то, как игроки намереваются заканчивать сеансы, и как они в настоящее время заканчивают сеансы в казино (ручном) и на других их круглых игровых столах.
Превышение лимита времени
Когда игрок превышает лимит времени, его помещают в стандартное состояние «неучастия».
• Игрок в данном состоянии пасует, если имеет дело с бетом
• Если игрок заканчивает руку в состоянии «неучастия», он остается за своим текущим столом.
• Имеется кнопка [Обратно]. Нажатие данной кнопки снова делает игрока активным и перемещает его к активному столу, за которым он играет свою следующую руку.
Закрытие стола
Когда игрок закрывает стол (возможно, после дополнительного подтверждения, что он желает выйти из сеанса), игрок отключается от стола (игрок будет пасовать) и устанавливается в «не производящего поиск нового стола» («not looking for a new table»). Его сеанс закончен.
Быстрый пас
Быстрый пас (или моментальный пас) доступен всем игрокам, кроме как при большом блайнде, при котором кнопка быстрого паса имеется только, когда кто-нибудь делает рейз. На фигуре 4 показана кнопка 400 «Быстрый пас», которую может выбрать игрок. Результатами выбора быстрого паса являются:
• На экране игрока: Игрок пасует руку и немедленно производит поиск другого стола; он перемещается к другому столу как можно быстрее, без ожидания своей очереди.
• На экранах всех остальных игроков: Нет никакого визуального изменения относительно игрока, который нажал кнопку быстрого паса, пока не настает его очередь, тогда его рука сбрасывается.
Игрок может снабжаться рекомендацией, касающейся использования его опции, например, сообщением, высказывающим «Совет: Пасуйте свою руку и переходите к другому столу» («Tip: Fold your hand and move to another table»). Столы, за которыми доступна опция быстрого паса, могут иметь специальное указание; в игры с данной опцией можно включаться посредством специального выбора.
История рук
Возможно, что каждый игрок за столом играл на совершенно другом столе во время последней руки. Кроме того, последняя рука, сыгранная игроком, может быть еще незаконченной. Это учитывается при обеспечении информации истории рук.
Игровое лобби
Фигура 5 представляет пример 500 экрана информации такого типа, которая генерируется и обеспечивается касательно конкретного типа игры. Данная информация может, например, отображаться для предполагаемого участника. Вместо отслеживания отдельных столов, статистика отслеживает каждый стол, связанный с конкретным типом игры (например, с игрой с быстрым размещением). Средний размер банка рассматривает все играемые руки за всеми столами. Так как игрока можно связать с более чем одним столом одновременно (например, с вышеописанной функцией быстрого паса или посредством присоединения к игре более чем один раз, как изложено выше), то может быть показано число экземпляров каждого игрока. Среднее число рук в час может быть рассчитано посредством усреднения по игрокам или по экземплярам игроков.
Размещение игроков
Нижеследующие разделы дают описание различных подходов к размещению игроков. Характерные особенности данных подходов можно объединять любым подходящим образом.
Сервер периодически производит поиск игроков, которые находятся в состоянии «готов к следующей руке» («ready for next hand») или «бездействие» («idle»). Если имеется достаточно ожидающих игроков для заполнения стола, то создается новый стол, и игроки перемещаются. Приоритет игрока определяется по параметру «Время ожидания» («WaitingTime») и по его требованию конкретной позиции. Игроки рассаживаются оптимально по возможности. Новый игрок обычно размещается в большом блайнде первым. Если имеется несколько новых игроков, готовых к размещению, то один может быть размещен в другой позиции; иначе начало новых игр будет затрудняться, и для некоторых игроков потребуется слишком много времени, чтобы начать игру. Может быть задан параметр «Максимальное время ожидания» («MaximumWaitTime»), посредством которого, если параметр «Время ожидания» игрока равен или больше, игроку дается разрешение для размещения в любой позиции. До того, как время ожидания игрока достигает упомянутой длительности, принимаются меры для размещения игрока в оптимальной позиции.
Игроки могут размещаться за новыми столами по отдельности (один за другим) или все сразу. Размещение игроков по отдельности обеспечивает сокращение времени отклика за счет менее оптимального размещения. Гибридный подход показывает на дисплее игрока, что он перемещается к новому столу немедленно, и, как только полный стол находится, все игроки появляются вокруг игрока. Однако игрок фактически не перемещается или не размещается, пока не находится полный стол.
Позиция нового игрока
Когда новый игрок включается в сеанс, он предпочтительно назначается на позицию немедленного BB для первой игры. Если имеется множество игроков, начинающих одновременно, то назначение позиции может быть затруднительным. Существует несколько способов решения данной задачи:
• Допустить назначение игрока на BB на одном из последующих кругов. Приоритет нового игрока на место BB выше, чем любого из игроков уже на ротации, поэтому очень маловероятно, что его BB будет задержан больше, чем на одну очередь
• Установить более длительную задержку для нового игрока и не размещать его, пока не доступно место немедленного BB
• Поставить BB для упомянутых игроков и рассматривать это подобно тому, что они заняли место фактического немедленного BB (поэтому они не назначаются на данное место на следующем круге)
Статистика позиций и оптимальная позиция игрока
Сохранение информации о позиции игроков допускает позиционирование игроков с попыткой размещения игроков в последовательных позициях. Размещение игроков в последовательных позициях делает игру, подобной обычным играм, когда игрок обычно перемещается из позиции под прицелом (UTG) в позицию большого блайнда (BB), в позицию малого блайнда (SB), в позицию баттона (по меньшей мере, когда имеется высокая ликвидность). В частности, целесообразно исключить или минимизировать следующее:
• Игрок находится в позиции BB несколько раз в последовательности
• Игрок находится в любом блайнде три или более раз в последовательности (например, BB, SB, BB)
• Игрок находится в позиции SB несколько раз в последовательности
• Игрок играет много рук (например, размер стола * 2) без игры на баттоне
• Игрок должен ожидать долгое время несмотря на большие количества игроков
• Игрок играет любую неблайндовую позицию (например, позицию UTG) несколько раз в последовательности
Если система не может поместить игрока в оптимальную позицию в течение некоторого периода времени (например, 1000 миллисекунд), игрок может быть помещен в субоптимальную позицию. Данный отказ от (краткосрочной) точности размещения дает преимущество в скорости размещения.
Чтобы способствовать размещению, для каждого игрока отслеживается следующее:
• Позиции в последней сыгранной руке
• Счет позиций в течение последних X рук
На позиционный статус игрока влияют следующие критерии:
• Число раз в каждой позиции в течение последних X рук. Чем больше число раз в некоторой позиции, тем холоднее становится место.
• Последняя позиция (LastPosition) - особое внимание (например, посредством множителя) к позиции, сыгранной в последней руке. Это уменьшает шанс игрока находиться в одной и той же позиции дважды в последовательности, что следует избегать.
• Естественная позиция (NaturalPosition) - Естественная позиция игрока (следующая позиция после его последней руки) дает бонус. Это помогает воспринимать игру естественно, то есть подобно реальным обычным играм, когда игрок перемещается из позиции UTG в позицию BB, в позицию SB и т.п.
Посредством обеспечения, чтобы вышеприведенные критерии выполнялись при размещении, поддерживается естественное течение игры (как при обычной игре). Субоптимальное размещение игрока компенсируется со временем, например, посредством повышения приоритета оптимального размещения в течение следующего периода; или посредством обеспечения того, что со временем для игрока обеспечивается справедливое (равномерное) распределение размещений.
Например: в последней руке игрок находился в средней позиции (делающей позицию UTG естественной следующей позицией). При множителе 0,9 «естественной позиции» и множителе 1,1 «последней позиции» вычисляются следующие веса размещения:
Таблица 2. Пример вычисления посадочного веса
Веса размещений для следующего круга дают следующую привилегию размещений: в первом привилегированном положении с минимальным весом находится позиция UTG; во втором привилегированном положении находится любая из позиций кат-офф, BB или SB; в третьем привилегированном положении находится средняя позиция; в последнем привилегированном положении находится позиция баттон.
Размещение на основании весов позиций
В следующем разделе приведено более подробное описание конкретной реализации алгоритма размещения, который использует некоторые из вышеописанных признаков.
Фигура 6 поясняет работу алгоритма размещения. В данном случае игроки A и B выбрали пас вне очереди за своими соответствующими столами (с помощью вышеописанной опции быстрого паса). Процесс размещения инициализируется и выполняется. Процесс размещения назначает игроков A и B, в данном примере, за один и тот же новый стол.
После того, как размещение за новым столом закончено, все игроки, выбранные для нового стола, включая игроков A и B, подключаются к данному столу, после чего новая рука начинается. После того, как игроки A и B пасовали вне очереди, они еще сохраняют подключения к их первоначальным столам, пока руки на данных столах не завершаются. Когда упомянутые руки заканчиваются, игроки A и B отключаются от их первоначальных столов, и данные столы переводятся в пул бездействующих столов.
Процесс размещения может запускаться, например, таймером, при этом процесс размещения организован с возможностью периодического запуска (например, через каждые 1000 миллисекунд). В качестве альтернативы, процесс размещения может запускаться на основании комбинации факторов, например, по таймеру и числу игроков, статус которых переменился на бездействующий, превышающему порог. Например, размещение может запускаться, когда число бездействующих игроков становится равным 4*размер стола (TableSize), или при превышении лимита времени 1 секунда, в зависимости от того, что наступает раньше.
Фигура 7 более подробно представляет структуру 702 данных для управления игроками. Для каждого игрока запись 700 игрока содержит все данные, релевантные в отношении финансов игрока, игры и статуса связности, а также статистики, характерной для типа игры. Статистика может, в частности, относиться к размещению игроков в последовательных кругах игры. Упомянутая запись создается, как только игрок подключается (после взноса) к сеансу игры с быстрым размещением, и удаляется после того, как игрок выходит из сеанса игры. В процессе проведения игры статус игрока соответственно обновляется.
Статусная информация используется, чтобы указывать, ожидает ли игрок размещения за новым столом посредством флага «бездействие» или чего-то подобного. Процесс размещения может выполнять действие для идентификации, ожидает ли игрок размещения, и если ожидает, для попытки разместить игрока. Идентификация статуса игрока может выполняться в начале каждого цикла размещения посредством обращения к данным отслеживания каждого игрока и проверки статусной информации.
При альтернативном подходе игроки могут назначаться за новый стол немедленно, когда они оказываются бездействующими, при размещении игроков, реорганизуемом, как только стол заполняется, на основании требований к размещению, определенных алгоритмом.
Ниже поясняется ряд разных подходов к алгоритму размещения игроков. Характерные особенности данных подходов можно объединять любым подходящим способом.
Размещение игроков: Первый подход
Процесс размещения выполняется в порядке следующего потока:
1. Покерная игра инициализируется оператором, и создается несколько идентичных игровых столов в бездействующем состоянии.
2. Игроки записываются для игры; их состояние устанавливается бездействующим (показывающим, что игроки ожидают размещения).
3. Для каждого игрока матрица посадочных весов (SW) инициализируется следующим образом:
a. SW3 = AvgWeight (статистическое среднее посадочного веса в течение длительного периода игры)
AvgWeight = 1/(N*(1 - (МНОЖЕСТВО((N-1)/N, Размер стола))))
где N является конфигурируемым параметром, обычно N = 3* Размер стола
b. Для каждого последующего места, следующего в порядке игры:
SWj+1 = (N-1)SWj/N
c. SW2 = 0 (установка веса на нуль для позиции 2 вынуждает новых игроков, которые присоединяются к сеансу игры с быстрым размещением, начинать в позиции большого блайнда, как принято в покере)
Получаемое (первоначальное) распределение посадочных весов имеет целью имитацию распределения, которое игрок получил бы после розыгрыша многих кругов за столом с идеальным порядком изменения посадочных позиций. Это делает характеристики размещения новых игроков, присоединяющихся к игре, похожими на характеристики игроков, которые уже играли длительное время.
Во взятом примере стола с 6 местами и с использованием N = 18 при применении вышеприведенных пунктов a) и b) распределение для идеальной игры вычисляется, как показано в таблице 3.
Таблица 3
Распределение в таблице 3 отражает выполнение игроком полного обхода после начала в позиции BB. С дополнительным учетом вышеприведенного пункта c) первоначальное распределение посадочных весов для 6-местного стола показано в таблице 4. Единственное отличие в сравнении с идеальным распределением в таблице 3 состоит в том, что посадочный вес для позиции № 2 (большой блайнд) искусственно снижен до 0. Никакой игрок, который уже сыграл, по меньшей мере, одну позицию BB, не может иметь свой вес его места, равный нулю, поэтому новые игроки, присоединяющиеся к игре, всегда имеют более высокий приоритет для занятия упомянутого места, чем игроки, уже находящиеся в игре.
Таблица 4
4. Алгоритм размещения инициализируется, как изложено выше.
5. Алгоритм выбирает первый бездействующий стол из списка и начинает поиск игрока для размещения в позиции большого блайнда (в качестве альтернативы алгоритм может начать в другой позиции, например, случайно выбранной позиции).
6. Алгоритм перебирает игроков, которые помечены как бездействующие и выбирает игрока с минимальным SW (весом места) для данной позиции. В качестве альтернативы вместо SW можно воспользоваться эффективным посадочным весом (ESW), вследствие чего:
ESWj = SWj - Q * Время ожидания, где
- Q означает эмпирически выбранный коэффициент времени ожидания,
- время ожидания является временем с момента, когда игрок был маркирован как бездействующий, до текущего круга размещения.
Применение ESW вместо обычных посадочных весов позволяет сбалансировать алгоритм, чтобы исключить ситуации, в которых игроки ожидают долгое время размещения в идеальную позицию. С добавлением коэффициента времени ожидания алгоритм учитывает время, которое игроки провели, ожидая размещения, и размещает их более энергично. Влияние коэффициента времени ожидания и оптимальный выбор значения коэффициента времени ожидания подробно описаны ниже.
7. Кроме того, алгоритм проверяет следующие условия:
a. Игроков нельзя назначать на позицию, которую они занимали в предыдущем круге, если данная позиция требует от них ставить блайнд.
b. Игроков, которым были распределены 2 блайнда в двух предыдущих кругах игры, нельзя назначать на любую позицию из большого или малого блайнда.
8. Процесс размещения повторяется для всех остальных позиций стола: малого блайнда, затем баттона, затем остальных мест против часовой стрелки.
9. Как только стол заполняется, матрица посадочных весов каждого игрока (который только что играл в позиции «Номер позиции») обновляется следующим образом (для каждого номера (n) позиции):
a. Если (n = Номер позиции, и SWn = 0), то SWn = AvgWeight (как определено выше на этапе 3).
b. Или, если (n = Номер позиции), то SWn = ((N-1 )SWn + 1)/N (для увеличения веса только занимаемого места).
c. Или SWn = (N-1)SWn/N (для уменьшения веса всех остальных мест).
Во взятом для примера распределении посадочных весов после идеального круга, представленном в таблице 3, игрок только что играл в позиции № 3 и, как предполагается, в идеальной игре принимает после этого большой блайнд (BB). После того, как игрок сыграл в позиции BB, его посадочный вес для позиции BB обновляется в соответствии с формулой на этапе 9.b: Новый вес = 1/18 + (18-1)/18 * 0,1438 = 0,1914. Посадочный вес для позиции № 3 обновляется в соответствии с формулой на этапе 9.c: Новый вес = (18-1)/18 * 0,1914 = 0,1807 и так далее. В результате имеет место циклический сдвиг влево в распределении весов, как показано в таблице 5.
Таблица 5
10. Затем за столом начинается игра.
После того, как карты сданы, игрокам предоставляется опция для паса вне очереди в дополнение к обычным опциям покерной игры. Игроки, которые пасуют вне очереди, помечаются как бездействующие, но остаются подключенными к тому же самому столу, так что игра может продолжаться как обычно, и их намерение пасовать не раскрывается другим игрокам за столом.
Игроки, которые использовали опцию паса вне очереди, могут размещаться за следующим столом до того, как игра заканчивается за первоначальным столом. В данном случае они подключаются к более чем одному столу одновременно, но являются активными только за одним из столов. Данная ситуация показана на фигуре 8.
На фигуре 8 игрок первоначально размещается за столом A в позиции далеко от большого блайнда. Карты сдаются, и игрок немедленно выбирает опцию быстрого паса. В данный момент игрок помечается как бездействующий. Алгоритм размещения помещает его за стол B в следующем событии размещения. В этот момент клиент еще подключен к первоначальному столу и другим игрокам за столом A представляется ожидающим своей очереди сделать мув. За столом B игрок также немедленно выбирает быстрый пас и затем помещается за стол C. Тогда клиент подключен к трем столам одновременно. Как только наступает очередь игрока действовать за столом A, мув (пас) игрока отображается для других игроков, и игрок отключается от стола A. Аналогично, он отключается от стола B, как только подходит его очередь за столом B, и он сделал свою игру (пас).
Игроки, которые пасуют обычным путем, когда наступает их очередь, с использованием обычной опции паса, также помечаются как бездействующие.
Когда круг игры завершается, все игроки остающиеся за столом, помечаются как бездействующие. Когда упомянутые игроки помещаются за другие столы, стол становится свободным и добавляется в список бездействующих столов. Когда число бездействующих столов оказывается ниже установленного порога, порождается предварительно установленное число новых бездействующих столов. Когда число бездействующих столов превышает установленный предел, предварительно установленное число столов может быть удалено аналогичным образом.
В конце руки могут распределяться специальные бонусы. Они могут распределяться соответствующим игрокам, а не только тем, которые остаются в конце руки.
Игрокам предоставляется возможность присоединиться к игре одного и того же типа более чем один раз, каждый раз с обеспечением отдельного взноса. В данном случае может существовать потолок или ограничение числа экземпляров, которые может получать игрок.
Алгоритм размещения проверяет личность игроков, уже размещенных за столом в стадии обработки, и не допускает размещения одного и того же игрока более одного раза за одним и тем же столом.
Размещение игроков - Второй подход
По мере того, как новые столы создаются каждую руку, при каждой руке имеет место размещение игроков. Возможно, предпочтительно реализовать простой алгоритм позиционирования, например, если отслеживание всех позиций слишком трудоемко или ухудшает впечатление игроков. Другая версия алгоритма размещения использует отличающийся метод определения посадочных весов, который также обеспечивает справедливое и удобное назначение игроков на места.
При данном подходе процесс размещения осуществляется в следующей последовательности:
1. Игра с быстрым размещением инициализируется оператором, и создается несколько идентичных игровых столов в бездействующем состоянии.
2. Игроки записываются на игру с быстрым размещением; и их состояние устанавливается бездействующим (показывающим, что игроки ожидают размещения).
3. Каждый игрок имеет матрицу посадочных весов (SWj, где j означает диапазон 0 … 8 для 9-местных столов), соответствующих местам за столом (0 … 8 для 9-местного стола);
Посадочные веса инициализируются как нули для всех мест.
4. Каждый раз, когда игрок занимает место, посадочный вес игрока для данной позиции увеличивается на единицу.
5. Когда посадочные места сравниваются, чтобы определить игрока, наиболее подходящего для занятия места, используется эффективный посадочный вес (ESW), в соответствии с чем:
ESWj = SWj - nКругов/Размер стола,
где nКругов означает число рук, сыгранных с начала сеанса.
В качестве альтернативы может учитываться время ожидания, в соответствии с чем:
ESWj = SWj - nКругов/Размер стола - Q * время ожидания,
где Q означает эмпирически выбранный коэффициент времени ожидания, и время ожидания является временем с момента, когда игрок был маркирован как бездействующий, до текущего круга размещения. Как изложено выше, посредством учета времени, в течение которого игрок был бездействующим, можно уменьшить суммарные времена ожидания игроков.
6. Алгоритм размещения инициализируется, как изложено выше (например, активизируется по таймеру; активизируется по числу игроков, имеющих статус бездействующих; или активизируется по разным событиям или комбинациям).
7. Алгоритм выбирает первый бездействующий стол из списка и по случайному закону выбирает необходимое число бездействующих игроков для данного стола.
8. Алгоритм размещения проверяет личность игроков, уже размещенных за столом в стадии обработки, и не допускает размещения одного и того же игрока более одного раза за одним и тем же столом.
9. Начиная с позиции большого блайнда, алгоритм перебирает игроков, которые выбираются для данного стола, производя поиск игрока с минимальным ESW для данной позиции.
10. Кроме того, алгоритм проверяет следующие условия:
a. Новые игроки являются первыми кандидатами для большого блайнда. Например, для новых игроков, которые только что присоединились к сеансу, может быть установлен специальный флаг («Новый»). Игроку с данным флагом могут выбираться для позиции BB независимо от весов других игроков без флага. Если имеется несколько игроков с установленным флагом «Новый», то один из них может быть выбран для позиции BB по случайному закону. Как только игрок назначен на позицию BB в первый раз, его флаг «Новый» может быть сброшен.
b. Игроки, которые отыграли 2 блайнда в двух предыдущих кругах игры, являются последними кандидатами для позиции либо большого, либо малого блайнда.
c. Игроки, которые были назначены на большой блайнд в предыдущем круге, являются последними кандидатами для большого блайнда.
11. Процесс размещения повторяется для всех остальных позиций стола, малого блайнда, затем баттона, затем остальных мест против часовой стрелки.
12. Затем игра начинается за столом.
Такие же условия применяются, как изложено выше, по отношению к: игрокам, пасующим вне очереди; игрокам, использующим обычную опцию паса; игрокам, остающимся за столом, когда круг игры заканчивается; бездействующим столам; и/или нескольким экземплярам игрока.
Эффективный посадочный вес ESWj вычисляется предпочтительно с использованием дробных значений, не округленных или целочисленных значений. В качестве альтернативы можно использовать арифметику с разбиением чисел на целую и дробную части, например: ESWj = SWj * Размер стола - nКругов. Значения ESW используются для сравнения, и поэтому относительные значения ESWj могут иметь большое значение. Следовательно, вычисления являются достаточно точными, и округление предпочтительно исключается или минимизируется.
При данном подходе к размещению (nКругов/размер стола) вычитается перед сравнением чисел. Кроме того, размещение начинается с позиции большого блайнда. При альтернативном подходе (применимом к любому из описанных алгоритмов размещения), размещение может начинаться в любой другой выбранной позиции или в позиции, выбранной по случайному закону.
Размещение игроков - Третий подход
При дополнительном подходе процесс размещения осуществляется в следующей последовательности:
1. Игра с быстрым размещением инициализируется оператором, и создается несколько идентичных игровых столов в бездействующем состоянии.
2. Игроки записываются на игру с быстрым размещением; и их состояние устанавливается бездействующим.
3. Для каждого игрока значение AvgPos (средняя позиция) инициализируется с нуля.
4. Алгоритм размещения инициализируется, как изложено выше (например, активизируется по таймеру; активизируется по числу игроков, имеющих статус бездействующих; или активизируется по разным событиям или комбинациям).
5. Алгоритм выбирает первый бездействующий стол из списка и по случайному закону выбирает бездействующих игроков для заполнения стола.
6. Алгоритм размещения проверяет личность игроков, уже размещенных за столом в стадии обработки, и не допускает размещения одного и того же игрока более одного раза за одним и тем же столом, гарантируя, что игроки за столом являются однозначно определяемыми.
7. Начиная с максимальной позиции за столом, алгоритм перебирает список выбранных игроков и находит игрока с минимальным значением AvgPos. Данный игрок назначается на данную позицию. Кроме того, алгоритм проверяет следующие условия:
a. Игроки, которые отыграли 2 блайнда в двух предыдущих кругах игры, являются последними кандидатами для позиции либо большого, либо малого блайнда.
b. Игроки, назначенные на позицию BB в предыдущем круге, являются последними кандидатами для BB.
8. Процесс размещения повторяется для всех позиций стола от максимальной до минимальной (например, с позиции 8 по позицию 0 для 9-местного стола).
9. После того, как стол заполняется, значение AvgPos каждого игрока обновляется следующим образом:
AvgPos = AvgPos + Pos - (Максимальное число игроков за столом - 1)/2,
где Pos означает текущую позицию за столом (нумерованную от нулевой).
10. Затем игра начинается за столом.
Такие же условия применяются, как изложено выше, по отношению к: игрокам, пасующим вне очереди; игрокам, использующим обычную опцию паса; игрокам, остающимся за столом, когда круг игры заканчивается; бездействующим столам; и/или нескольким экземплярам игрока.
При данном подходе к размещению значение AvgPos накапливает разность между фактической позицией (Pos) и средней позицией за столом ((Максимальное число игроков за столом - 1)/2). Например, за 9-местным столом игрок, назначенный на место больше 4 в первой руке, вероятнее всего, должен быть назначен на место меньше 4 в следующей руке. Статистически, это обеспечивает справедливое распределение относительно позиций блайндов. Значение AvgPos предпочтительно вычисляется с использованием дробных значений, не округленных или целочисленных значений. В качестве альтернативы можно использовать арифметику с разбиением чисел на целую и дробную части. Значения AvgPos используются для сравнения, и относительное значение AvgPos может иметь большое значение. Следовательно, вычисления являются достаточно точными, и округление предпочтительно исключается или минимизируется.
Другие подходы
Возможно применение других подходов к размещению игроков. Например, в дополнительном алгоритме позиционирования на основе счетчиков:
• Каждый игрок первоначально усаживается за столом по случайному закону.
• Правила определяют, какой игрок получает назначение на большой блайнд:
○ Каждый игрок имеет счетчик «истекшего времени после большого блайнда» («last time since Big Blind»).
○ Когда игрок был в позиции BB в последней руке: BigBlindCounter (Счетчик большого блайнда) = 0.
○ Когда игрок не был в позиции BB в последней руке: BigBlindCounter наращивается на 1.
○ Когда новые игроки начинают сеанс, BigBlindCounter = бесконечности (или любому подходящему большому числу).
○ Когда игрок возвращается из неучастия: BigBlindCounter = значению в момент, когда игрок решил не участвовать.
○ Если два игрока имеют одинаковые значения BigBlindCounter: назначение одного из игроков на BB выполняют по случайному закону.
• Остальные позиции следуют естественному порядку стола: малый блайнд находится справа от большого блайнда; баттон находится справа от малого блайнда и т.п.
Влияние коэффициента времени ожидания на качество размещения
Следующий раздел поясняет соображения выбора коэффициента (Q) времени ожидания, рассматриваемого в связи с некоторыми версиями вышеописанного алгоритма размещения. Несмотря на принципиальное рассмотрение в связи с первым описанным подходом к размещению, упомянутые соображения равным образом применимы к другим версиям алгоритма размещения, в которых используется коэффициент времени ожидания или подобный фактор.
Качество размещения обычно определяется двумя параметрами, а именно, скоростью размещения и беспристрастностью и справедливостью посадочной позиции. Скорость важна потому, что цель состоит в том, чтобы дать игрокам возможность сыграть столько рук в час, сколько можно. Посадочная позиция очень важна в некоторых вариантах покера, например, Холдеме. Игроки, ставящие блайнды, находятся статистически в невыгодном положении, а игрок, занимающий позицию дилера (баттона), имеет статистическое преимущество. Следовательно, чтобы игра была справедливой, распределение мест, осуществляемое в процессе игры, должно быть близко к равномерному в течение сеанса игры. Алгоритм размещения разрабатывается и настраивается по ряду параметров, связанных с качеством игры. Это демонстрируется моделированием, как показано на фигуре 9.
Фигура 9 представляет пример моделирования для 40 игроков, играющих за 9-местными столами. Число игроков сохранялось небольшим потому, что ожидается, что любые недостатки алгоритмов должны быть наиболее заметными в данной ситуации. Для реальных применений полезно, если алгоритм размещения хорошо работает с малым числом игроков. Кроме того, ликвидность игры распределяется между играми разных типов/уровнями ставок, поэтому может происходить так, что менее популярные комбинации не привлекают сотни игроков.
Моделирующая программа вычисляет несколько метрик, имеющих отношение к качеству алгоритма размещения:
Число рук в час: Наиболее важный параметр, показывающий общий успех алгоритма. Типичные значения начинаются с 200 рук в час с относительно небольшими числами игроков (с 4-5-кратным размером стола) и достигают 230 рук в час, когда числа игроков вырастают до 40-50-кратного размера стола. Моделирующая программа может использовать статистические данные, полученные из функционирования обычных игр Холдем в его игровой модели.
Время ожидания: Осуществляется управление как средним значением, так и распределением. Одно только среднее число может быть дезориентирующим, так как неправильно сбалансированный алгоритм может оставлять некоторых игроков в ожидании размещения в течение 20 или более секунд.
Избыточность BB / наиболее неравномерное распределение: Избыточность BB определяется как разность между фактическим числом BB и статистическим средним (числом рук, деленным на размер стола). Моделирующая программа находит игрока с наихудшим (наибольшим) значением избыточности BB и показывает распределение позиций, принимаемых для данного игрока. Аналогично, моделирующая программа находит игрока с наиболее неравномерным распределением позиций, а также представляет это распределение на схеме.
Дополнительные статистические данные: Данный раздел представляет другие параметры, которые определяют качество впечатления игрока. Получение более чем одного блайнда в последовательности связывают с оставлением отрицательного воздействия на игрока, даже если статистически позиции выравниваются в конечном итоге. Аналогично, получение трех блайндов в последовательности (например, BB-SB-BB) считается неприемлемым впечатлением пользователя. Среднее отклонение является важным показателем равномерности распределения позиций, который вычисляется в дополнение к наихудшим сценариям. Оно определяется как средняя по игрокам разность между максимальным числом раз, сыгранных в одном споте, и минимальным числом спотов. Например, если один игрок сыграл 100 раз на баттоне и 105 раз под прицелом, то отклонение для данного игрока равно 5. Среднее отклонение равно арифметическому среднему отклонений всех игроков.
Выборка размещений: Данная таблица показывает историю размещений для одного игрока, выбранного по случайному закону.
Коэффициент времени ожидания оптимизируется посредством анализа результатов моделирования. Хотя интуитивно ясно, что игроки, которые ожидали дольше, должны размещаться более срочно, следует находить баланс между намерением помещения игрока в наиболее подходящую позицию при одновременном исключении длительных времен ожидания.
На фигуре 10 показано распределение времени размещения при разных значениях коэффициента времени ожидания. Данная диаграмма показывает, что несмотря на обеспечение общего подходящего размещения, версия алгоритма, которая не учитывает время ожидания, (коэффициент времени ожидания = 0,0, линия с маркерами в виде крестиков на схеме) имеет длинный хвост, и значительное число игроков должно ожидать размещения очень долго. В частности, в 1,3% случаях игроки должны ожидать размещения в течение 9 или более секунд. Как только коэффициент времени ожидания устанавливается на 0,005, ситуация значительно улучшается. Только в 0,23% случаях игроки должны ожидать в течение 8 секунд, и число случаев, в которых ожидание равно 9 секундам или более, уменьшилось до 0,1%. Дополнительное увеличение коэффициента до 0,02 не обеспечивает никакого заметного выигрыша в сравнении со значением 0,005.
Использование коэффициента времени ожидания отрицательно влияет на равномерность распределения мест (т.е. увеличивает отклонение), так как алгоритм побуждает к скорому принятию решений. Влияние на среднее отклонение показано на фигуре 11. Можно видеть, что среднее отклонение начинает быстро возрастать после того, как коэффициент времени ожидания становится больше, чем 0,002. При 0,005 влияние на среднее отклонение еще достаточно мало, тогда как сокращение времен ожидания почти полностью исключило случаи с продолжительными ожиданиями. С этой точки зрения, значение 0,005 считается близким к оптимальному.
Анализ системы
Примерная система для реализации вышеописанных алгоритмов размещения изображена на фигуре 12.
Как показано на фигуре 12, для проведения игр обеспечен игровой сервер 1200. Сервер 1200 содержит процессор 1202 и память игровых состояний, например, базу данных 1204 (база данных может быть в качестве альтернативы внешней относительно сервера). База данных 1204 выполнена с возможностью хранения данных, относящихся к игрокам, включая записи 700 игроков. Процессор выполнен с возможностью выполнения программных модулей, включая, например, модуль 1216 игрового оператора и лоббирующие модули, например, модуль 1218 основного экрана. Игроки могут подключать клиентские устройства 1214 к игровому серверу 1200, например, через соединение сети Интернет. Модуль 1216 игрового оператора может запрашивать, создавать, модифицировать или удалять данные из базы данных 1204; создавать, модифицировать или удалять таблицы, размещать игроков и поддерживать игру.
Записи 700 игроков создаются (если ни одна не существует) или вызываются (если уже существуют), когда игроки 1214 делают взнос за игру. Запись 700 игрока содержит информацию о соответствующем игроке, включая статус, денежную информацию и различные статистические параметры. Изменения статуса игрока отражаются в данной записи. Когда игрок присоединяется к столу, несколько структур, относящихся к игре, создается для записи состояния игрока в игре. Это может выполняться модулем 1216 игрового оператора.
Записи 700 игроков могут передаваться в базу данных 1204 посредством администратора 1212 базы данных. Это гарантирует, что общий статус игр можно восстановить в случае, если существует проблема.
Модуль 1218 основного экрана включает в себя соответствующие лоббирующие структуры данных, которые могут содержать информацию о местоположении каждого игрока, зарегистрированного в системе. Структура данных основного экрана, например, содержит идентификатор (ID) игрового лобби, в котором играет игрок. Данная структура может также содержать ID стола, за которым игрок играет в текущее время. Данную информацию можно использовать, например, для функции поиска игрока (Find Player).
Структуры данных столов могут создаваться (и разрушаться, когда больше не требуются) модулем игрового оператора. В процессе проведения игр модуль 1216 игрового оператора может затем связывать игроков с (и прекращать связь игроков с) соответствующими структурами данных столов при назначении игроков за столы.
Лоббирующие структуры данных и структуры данных столов также могут храниться в базе данных 1204 вместе с данными игроков.
Для участия игроков в игре они могут иметь возможность загрузить или, иначе, сохранить клиентское приложение в клиентском устройстве 1214. Игрок может также иметь возможность выполнять удаленное приложение с клиентского устройства для участия в игре (например, посредством веб-приложения, вызванного посредством браузера). Подходящие клиентские устройства включают в себя персональные компьютеры, компактные компьютеры, интеллектуальные телефоны и другие мобильные телефонные устройства, планшетные компьютеры, игровые пульты, телевизоры с микропроцессорами, медиа-плейры и т.п. Клиентское устройство 1214 может подключаться к игровому серверу 1200, например, по проводному или беспроводному соединению сети Internet, например, резидентной цифровой абонентской линии (DSL) или кабельному соединению сети Internet, или по мобильной телефонной сети. Клиентское устройство 1214 и соответствующее клиентское приложение обмениваются информацией с игровым сервером 1200 и получают сообщения из игрового сервера 1200 по сети.
Соединение устанавливается между клиентским приложением и игровым сервером, и затем клиентское приложение назначается для экземпляра игры, называемого также столом. Соединение между клиентским приложением и столом может управляться клиентским приложением или игровым сервером. Клиентские приложения передают пользовательские команды, например, ставку, включая сумму; колл; чек; или пас в очередь или вне очереди. Клиентское приложение получает информацию об игре, например, карты, которые он сдал, и действия других игроков за его столом, из игрового сервера. Если игрок, использующий клиентское приложение, пасует, то клиентское приложение назначается для нового стола, одновременно оставаясь подключенным к первому столу. Когда рука на первом столе завершается, соединение между клиентским приложением и данным экземпляром игры прекращается, так как в нем больше нет необходимости.
Игра с быстрым размещением может быть особенно полезна для использования, когда клиентское устройство является мобильным телефоном или любым другим устройством с ограниченной площадью дисплея. В случае игры с быстрым размещением, игрок может немедленно перейти к новой игре и не остается в игре, в которой он больше не заинтересован, в то время, когда игра заканчивается. Обычно данная необходимость ожидания возмещается игрокам посредством участия в одновременных играх за несколькими столами. В данном случае от клиентского устройства может требоваться отображение более чем одного стола одновременно. В частности, в устройстве с относительно небольшой площадью дисплея, например, мобильном телефоне, имеется мало пространства для отображения нескольких столов одновременно. Поэтому игра с быстрым размещением дает преимущество, так как необходимость ожидания снижается, и стимул участия в одновременных играх уменьшается, и пространство дисплея не засоряется.
Следует понимать, что настоящее изобретение описано выше исключительно для примера, и в пределах объема изобретения можно выполнять модификации в деталях.
Каждый признак, раскрытый в описании и (в подходящем случае) формуле изобретения и на чертежах, может обеспечивать независимо или в любой подходящей комбинации.
Числовые позиции в формуле изобретения приведены только для иллюстрации и не должны ограничивать объем притязаний формулы изобретения.
Заявленное решение относится к компьютерно-реализуемому способу проведения экземпляров игры, имеющему множество игровых позиций, которые могут быть заняты игроками, например, игры покерного типа. Способ содержит этап назначения игроку множества весов, относящихся к игровым позициям, где каждый вес указывает склонность к размещению игрока в игровой позиции. Когда игрок сыграл в первой игре в данной позиции, веса обновляются для указания измененной склонности к размещению в каждой позиции. Затем игрок назначается для второй игры на основании обновленных весов. При этом поддерживается подключение клиентского приложения к первому экземпляру игры во время участия игрока во втором экземпляре игры. Благодаря данной реализации обеспечивается исключение несправедливых выгодных или невыгодных условий, поскольку позиция игрока имеет стратегическое значение. Вместе с тем обеспечивается реализация новых быстродействующих игровых моделей. 4 н. и 3 з.п. ф-лы, 12 ил., 5 табл.