概要
筆者は今週2月3日に自分のポーカーゲームアプリ”Exotic Poker”をリリースしたが、世の中的には同時期に注目されるポーカーアプリがリリースされていて、DeNAと世界のヨコサワがタッグを組んで開発したゲーム”Edge Poker”が1月27日にリリースされていた(筆者がこれを知ったのは1月30日だった・・・)。もちろん、筆者のアプリは完全に無名だろうし、比較対象にもならないだろうが、AIを用いたポーカーアプリというところに何らかの期待を寄せたアプリという意味では、似たような期待を持って開発されたアプリなのかもしれない。
”Edge Poker”の評判は賛否両論という感じで、初心者やライトユーザに近いプレイヤーは賞賛、上級者やストイックにプレイしたいプレイヤーは否定的という印象だろうか。実際に使ってみた感じでは、”たぶんライト層向けだろうな”という印象を受けたが実際のところがどうなのかはよくわからない。筆者は大概ライトユーザだろうけど、批判する人がいうほどには悪い印象を受けなかった(と思ったけど、やっているうちにNPCの中にオールインばかりしている奴とかフォールドしかしない奴とかがいて、イライラするようになってきた。スタミナ制もライト勢なら平気かと思ったけど、やっぱり厳しいかも)。
ゲームのリリースがひとまず終わって、次の機能追加のネタを考えようかと思っていたが、ちょうど”Edge Poker”の機能でFast Foldという機能があって、これはエムホールデムやポーカーチェイスには無い機能だったし、筆者は知らない内容だった。ということで、気になったのでFast Fold機能について調べてみたというのが本稿の内容である。
Fast Foldとは
Fast Foldはオンラインポーカー特有のゲーム形式で、フォールドした瞬間にテーブルを離れることができ、新しいテーブルに即座に移動する仕組みであるらしい。数百人規模でリングゲームをやっているとフォールドするとすぐに次のテーブルがマッチングするぐらいの感覚になるらしく、暇に対戦相手の行動を待っているという時間が大幅に削減され、非常に効率的にポーカーがプレイできるゲーム形式のようである。代表例として
- Poker Starsの”Zoom”
- GG Pokerの”Rush & Cash”
というゲームが挙げられる(いずれもキャッシュを賭けるゲームで日本からプレイしていたプレイヤーはもれなく違法ギャンブルをやっていた人に相当する(まあ、時効の人も多いだろうけど)ということで、日本ではあまり深く語られることがない原因になっているのかもしれない)。プレイヤーのスタックはそのまま持ち越され、特にリセットされたりリバイしたりすることは明示的な操作をしない限りないということで、上記の特徴を除けば、基本的にはリングゲームとルールは同じであるようである。
戦略的な特徴
Fast Foldのゲームは一般的なリングゲームとは異なる戦略が求められる(最適な戦略はライブゲームや通常のリングゲームとは異なるようである)。ChatGPTによると以下のような性質があるらしい。
- ゲームの進行速度が速く、対戦相手は毎回変わるため、対戦相手のクセを読んでエクスプロイトするといった戦略は全くといっていいほど行われず、GTOに近いプレイが推奨される。
- 待ち時間が少なく済むため、狭い(タイト)レンジを採用するプレイヤーが多い。最適なVPIPは通常のゲームより低めになる傾向がある。
- 回転が速いため、弱いハンドで粘るプレイヤーが少なく、ブラフが少なめであるし、そもそもブラフが通りづらい。バリュー重視の戦略やブラフするなら大きめのベットをぶつける必要がある。
短時間で大量のゲームをこなすことができるため、ポーカーの練習に良いと思うかもしれないが、若干ルールの差異による影響を受けることには注意が必要であろう。
システムの実装方法
自分のポーカーアプリをリリースしたということで、筆者は自由に機能追加できるポーカーアプリを個人で所有している、世の中にあまりいない特権を持つ人物になったということで、この機能をどう実装したらよいかということを考察しよう。単一プレイヤーのポーカーアプリはそれほど難しくなく開発できるが、マルチプレイヤーのポーカーアプリ開発は比較的高難易度であり、相応のサーバーサイドの開発能力が必要とされるという意味で、将来的にもポーカーアプリが乱造されるということには多分ならないのではないだろうか。
Fast Foldのリングゲームを実装する場合は、テーブルごとの管理ではなく、マルチテーブルトーナメントのように参加者全員を一つのプールに入れて管理する必要がある。FoldやShowdown終了時にプレイヤーをプールに戻して、人数が揃ったら即座に新しいテーブルを生成するという処理を繰り返す必要がある。数十から数百テーブルを同時に進行して、リアルタイムで処理の要求を受け付ける必要があるということで、マルチテーブルトーナメント同様の司令塔になるサーバ機能が必要になる。マルチスレッドで多数の通信処理をさばいていく必要があるということで、この辺りが実装が難しいところかもしれない。
もう一つ難しいのが、Fast Foldではディーラーボタンやポジションが順番に回ってくるわけではないため、ランダムにポジションを割り当てるとポジションが偏って不公平が生じることも少なくないようである。理想的には、各プレイヤーのポジション割り当て回数をカウントしておいて、なるべく均等になるように最適割当問題をハンガリー法で解くなどして、公平なポジション割り当てを実現するようにした方が良いかもしれない。
MTTでFast Foldを用いることができるか
最後に、MTTにおいてもFast Foldを適用することで効率的なゲームができるかについて考察しよう。”Edge Poker”でもFast Fold導入の対象はリングゲームであるより、トーナメントであるように見える。
当然のことながら、この程度のアイデアは誰でも思いつくことで、Poker StarsではZoom TournamentというゲームがFast Fold MTTに近いゲームである(あった?)らしい。ただし、問題があったらしく、あまり面白いゲーム設計にはならなかったようである。以下のような課題があったということだった。
- 早期敗退が極端に増えて、ブラインドのレベルアップにあまり意味がない
- プレイ数が爆発的に増え、短時間でスタックが多いプレイヤーとショートスタックのプレイヤーに分かれる
- 対戦相手のクセを読むなどトーナメントで有効な要素が消失する(単純に面白くなくなる)
- ブラインドの不公平性がプレイヤーの勝敗に相応の影響を持ってしまう(割り当てられるポジションの運要素が強め)
Fast Foldとトーナメントを融合するにはこれらの課題を解決した(あるいは、別の面白さをゲームに導入した)ゲームの設計が必要になるのだろう。筆者自身も将来的には、こういったゲームの開発に挑戦してみたいが、具体的なゲームの設計は実際に組み込むときに再度議論を書いてみようと思う。
