どうも。最近定期的に、テキサスホールデムポーカーのゲーム開発について会議をやっています。
そこで話した内容について、自分自身が忘れないようにするためと、会議の内容が少しでも誰かの役に立つなら嬉しいなと思っています。
そこで、話し合った内容について、ある程度まとめておこうと思います。
ゲーム開始時の各ポジションの決め方
ゲーム開始時のD、BB、SBなどの決め方ですが、これはゲーム開始と同時にランダムに決定しようと思っています。
トーナメント等であれば、本来はトランプをもちいて、席決めをしますが、それをやっているとゲーム上のスピード感がなくなってしまうように感じます。
実際多くのポーカーサイトでも、こういった席決めという手順は踏んでいないというのが現状です。
リアルゲームでは「D」のポジションを決めるためにトランプで席決めを行います。
今回作成するPCのオンラインゲームの場合はBB基準に、BBの位置をランダムに決めようと思っています。
そしてBBが2回、同じ人に回らないように、プログラムを組むようにしていきます。
ブラインドアップの速度と持ち点について
多くのポーカーサイトにおいて、ブラインドアップの速度は、いくつかの種類があるのが一般的になっています。ノーマル、ターボ、ハイパーターボのような感じです。
ブラインド速度をどのように設定するかで、ゲームの戦術が大きく変わってきます。
ブラインドがあがる速度をはやくしすぎると、技術介入度が下がって、オールイン合戦になってしまいます。逆に遅すぎると、技術介入度は上がりますが、冗長なゲームになってしまいます。
技術の介入レベルがある程度あり、冗長にならないゲームの速度をキープできるようなブラインドUPの速度と、持ち点は、今後の課題になりそうです。
ある程度ユーザーの意見も取り入れながら、こまめにかえていくというようなことを繰り返していきたいと思います。
各プレイヤーのアクション制限時間
各プレイヤーのアクション時間についても、考えなくてはいけません。無制限に時間を設けてしまうと、いろいろと厄介なことが起こります。
例えば嫌がらせで、ずっと接続しつつアクションを起こさない人がいた場合、ゲームが成り立たなくなってしまい、ユーザー全体の満足度が下がってしまいます。
かといって、アクションの制限時間を短く設定しすぎても、慌てさせるだけになってしまいかねません。
そういった制限時間の設定の難しさはありますが、いろいろな制限時間の設定の仕方はあると思います。
1.長考というボタンを設けることもできます。長考ボタンを押せば、そのタイミングなら長時間考えることができるというものです。
2.その一方で、まったく長考ができない一手15秒というように制限時間が一律で決まっているものもあります。
3.他には基本的には15秒以内に打ちますが、長考したいときは30秒間長考できるようなシステムもあります。
4.囲碁・将棋のように30秒の秒読みと10回の考える時間があるというのが一般的には一番いいような気がします。
ポーカーの場合、基本的には短い時間でプレイできますが、ここぞという時には1分とか2分は考えたいときが出てきます。
制限時間についても、どのようにGUIとして表示するかというのは考えるところがあります。
なるべく制限時間の表示が、ゲームの邪魔にならないようにすること、でも制限時間がわかりやすいようにするということは考えなくてはいけません。
GUIのデザインについて
GUIについては、主に対戦画面についてがメインです。その他のロビー画面等はそこまで重要と考えていません。
対戦画面において、なるべくノンバーバルなGUIにしたいと思っていることと、リアルになるべく近いゲーム性を持たせたいと思っています。
たとえば、ゲームによってはフロップが出てくると自分の役の強さを表示してくれるものがあります。
フロップの時点でツーペアの強さですよとかって、ゲーム側が教えてくれるというものです。
そういったものを否定するつもりはありませんが、ぼくが目指しているのはそういうものではありません。
リアルゲームだとそんなことは、自分の頭で覚えておかないといけないからです。
なのでそういった部分をゲームで補うようなことはしたくないと思っています。
結局、ゲームとしての良さは残しつつ、最大限にリアルゲームの良さは残したいと思っているので、その部分の境界線は常に考える余地があります。
各種アクションボタンが表示される条件
今まではゲームの進行をすべてロジックとして書き出そうとしていました。プリフロップのアクション、フロップのアクション、ターンのアクション等それぞれです。
ところがそれらを書き出しても、重複するところが多く、特にレイズ、ベット、コール、チェック、フォールドのアクションは、すべて共通です。
なので、ゲームの各ラウンドと、アクションを分けて考えることにしました。
ゲームの各ラウンドはプリフロップ、フロップ、ターン、リバー、ショウダウンで、ボタンについてはレイズ、コール、チェック、フォールドです。
各種ボタンの表示上の優先順位などについても考えないといけませんが、そのあたりをまたつめていきたいと思っています。
ポットの作り方とサイドポット
ポットの作り方についても現状議論しています。とりあえず、だいたいは出来てきています。
簡単に説明すると、各プレイヤーがかけたチップの量を保持しておいて、ラウンド終了時に、最小ベット金額×プレイヤー数という形で、合計ポットをつくるようにします。
この方法を使うと、サイドポットも作ることができます。例えばオールインなどのプレイヤーがいて、1番金額の少ないオールイン者の金額を保持して、そのポットに参加しているプレイヤーの人数をかけると、メインポットを作ることができます。
そしてその1番少ない金額のオールイン者の金額を、他のプレイヤーのベットした金額から減算して、再計算すれば、サイドポットを作ることができます。
サイト名について
あとはサイト名についてです。サイト名を決めたいというような話もあるんですが、なんていうんでしょうかね。名前を決めるっていうのは、大変難しいです。それぞれに思いがあって、名前に思いがこもってくるからです。
とりあえず、それぞれに意味を考えながら、名前の候補をまず出して、そのうえで考えていきたいと思っています。譲りたくないですね。
デザインに関連する素材について
少し後になるかと思いますが、今の話し合いの中で、デザインに関係する部分が多くあります。
このデザイン部分については、かなり意見が分かれるところではあるんですが、どうしたら、いいデザインになるのかというところを、しっかりと考えていきたいと思っています。
特に他の追随になるんではなく、独自に考えられるいいものを作り出していきたいと思っているので、そのための話し合いはとことんしていきたいです。
役判定のことについて
役判定についてのロジックもまとめておかないといけません。特に同じ役の強さの場合だった時の判定が一番重要だとおもっています。
ワンペア同士の役の強さの判定もそうですし、フルハウス、フォーカードなどについても、ショウダウン時に同じ役だった場合、キッカーで判断することになります。キッカーでの役の強さの判定ができないといけません。
役判定のプログラムについては、かなりオープンにされている部分もあり、ソースが転がっているので、それを参考に作っていきたいなと思っています。
効率の良い話し合いについて
最近思うのは、やはり話し合いが長引きすぎてしまうことです。話し合いたいことが、結局、別の場所に波及してしまって、なかなか先に進みません。
もちろん話していることは、重要なことなんですが、その内容は今でなくてもいいようなことのことが多いです。
そうすると結局何も決まらないまま、会議が進んでいってしまうことになります。これに対する対応策は、あらためて考えていきたいと思います。
とりあえず現時点ですぐできることは、前日から話し合う内容についてしっかり決めておくこと、何をきめるのかということをはっきりさせておくこと。これが重要だと思っています。
あとは座長を決めて、時間通りに終わらせられるように進めていきたいと思います。
まとめ
ということで今回のゲーム開発で話し合っていることについて、箇条書きのようになってしまいましたが、まとめました。
これらのことは、現状決まっていることもありますが、まだまだ改善の余地がある部分がたくさんあります。
その部分についてしっかり話し合っていって、よりよいものを作っていけるようにしたいと思っています。