マガジン

一手の間隔:相手の思考時間は長い方が強く見えるか

遊びをつくる

執筆にClaudeを使用しています。

ガラスの覆いの中でボールと振り子が静止し、ゲームの一時停止を表した写真風イメージ。
記事のテーマをもとに制作したAI生成イラスト。

盤面を見た瞬間に手を返してくるCPUと、少し間を置いてから駒を動かすCPUがいるとします。中身の強さがまったく同じだったとき、プレイヤーはどちらを強いと感じるでしょうか。 先に結論の見通しを述べると、「間が長いほど強く見える」とは単純には言えません。間は強さの証拠にはなりませんが、相手が考えていると解釈する手がかりにはなります。ただし、その手がかりが効くのは、間の長さが局面の難しさと釣り合っているときと、待たされる側が待ち時間を負担に感じていないときに限られます。この二つが崩れると、間は強さの演出ではなく、ただの待ち時間になります。 この記事では、アソバースの公式作品のうち確認済みの事実から読み取れることを整理し、待たせすぎの境界を決める条件を考えます。最後に、自作のCPU対戦で読者自身が答えを出すための実験の設計を示します。実際に測った結果はここには載せません。数字は読者が自分で取るものとして扱います。

この記事の目次
  1. 公式作品の設計から読み取れること
  2. 間隔が伝えるものと、伝えられないもの
  3. 待たせすぎの境界を決める四つの条件
  4. 自分で確かめる実験の設計
  5. 次の行動
  6. 参考資料

公式作品の設計から読み取れること

CPUと対戦できる公式作品は、「潮目のオセロ」と「灯りのチェス」です。どちらもCPUの強さは3段階から選べます。

確認済みの事実で、間隔に直接関わるのは、「灯りのチェス」のCPUの思考時間が約450msに制限されている点です。約0.45秒は、対局中に一手ごとに繰り返されても待たされた感覚が積もりにくい、短い長さです。ここから読み取れるのは次の二点です。

  • 思考時間が「制限」されているのは、CPUが考えすぎて手番が返ってこない状態を避ける設計だということです。強さを示すために長く待たせる方向ではなく、待ち時間に上限を置く方向で作られていると読めます。
  • 「制限」は上限を指す言葉なので、すべての手が450msちょうどで返るとは限りません。実際の応答時間が段階ごと、局面ごとにどう違うかは、確認済み事項にありません。この部分は作品を開いて確かめます。

「潮目のオセロ」について、CPUの応答時間の長さは確認済み事項にありません。3段階の相手があること、返る石のプレビューや理由付きヒントがあることまでが確かな範囲です。オンライン対局では置けない手番が自動でパスされますが、そのパスが即座に処理されるのか間を置くのかも、この部分は作品を開いて確かめます。

確かめるときは、次のような観点で観察します。

  • 3段階それぞれで、自分が置いてから相手の石や駒が動き出すまでの体感の長さを見比べます。
  • 序盤と終盤で、応答の長さが変わるかを見ます。
  • 局面が複雑なときと単純なときで、差があるかを見ます。

感覚だけで済ませたくなければ、画面を録画して動画のコマ数から数える方法や、手元のストップウォッチで同じ操作を何回か測る方法があります。この場合も、結果は読者自身の環境での値として扱います。

間隔が伝えるものと、伝えられないもの

対局ゲームにおける「間」には、少なくとも三つの役割があります。

  1. 手番の受け渡しを知らせる役割。 自分が置いた直後に相手の駒が動くと、何が起きたのか目で追えないことがあります。少し間があると、自分の手の結果を確認してから相手の動きを見る余裕ができます。
  2. 考えているという解釈を促す役割。 人間同士の対局では、難しい局面ほど考える時間が長くなるのが普通です。そのため、プレイヤーは間の長さを局面の難しさの手がかりとして読みがちです。
  3. 相手に存在感を持たせる役割。 一瞬で返る相手は機械的に、少し間のある相手は人間らしく感じられる、という方向の効果が期待できます。

一方で、間には伝えられないものがあります。間は強さそのものを変えません。CPUの強さは、先を何手読むか、どう評価するかといった中身で決まります。間を延ばすだけでは、弱いCPUが強くなるわけではありません。見かけの強さと実際の強さがずれたままだと、次のような問題が起きます。

  • 間が長いのに悪手が返ってくると、考えていたのに弱いという落差が目立ちます。
  • 間が一定だと、簡単な局面でも長考するように見え、考えているふりに見えかねません。
  • 逆に、強い手を即座に返すと、読んだのではなく決まった手を出しているように見えます。

つまり、間は強さを足すものではなく、強さの印象を増幅も減衰もさせる飾りです。中身と釣り合っているときだけ味方になります。

待たせすぎの境界を決める四つの条件

では、どこから待たせすぎになるのでしょうか。画面の応答時間の目安として、およそ0.1秒、1秒、10秒を節目にする考え方がよく引用されます。0.1秒程度までは操作の結果が即座に返ったと感じやすく、1秒前後までは思考の流れが途切れにくく、10秒を超えると注意が離れやすい、という整理です。ただしこれは一般的な目安で、対局ゲームの一手の間にそのまま当てはまるとは限りません。境界は作品ごとに自分で決めることになります。

境界を左右する条件を、四つに分けて考えます。

  • 待っている間に何が見えるか。 「考え中」の表示や盤面の小さな動きがあれば、同じ長さでも待たされた感覚は和らぎます。画面が固まったように見えると、短くても不安になります。
  • 待っている間に何ができるか。 一手戻すやヒントのような操作が、相手の番でも触れる状態なのか、触れない状態なのかで、感じ方は変わります。「灯りのチェス」と「潮目のオセロ」には一手戻す機能がありますが、相手の思考中に操作できるかは確認済み事項にありません。この部分は作品を開いて確かめます。
  • 何回繰り返されるか。 初手では気にならない1秒も、数十手続くと積み重なります。チェスは手数が多いため、一手の許容時間は短くなります。
  • 間が一定か、変動するか。 毎回同じ長さの間は、機械的に感じられます。局面の複雑さに応じて変わる間は、考えているという解釈を支えますが、極端に長い手が混ざると、その一手だけが印象に残ります。

この四つは、実験で動かせる変数としてもそのまま使えます。次の節で、どう確かめるかを組み立てます。

自分で確かめる実験の設計

問いの立て方

問いは一つに絞ります。「同じ強さのCPUで、応答までの間隔だけを変えたとき、プレイヤーの強さの評価と待ちのストレスはどう変わるか」です。強さの評価とストレスは別々に聞きます。両方を同時に見ることで、強く見えるが苦痛だという状態と、強く見えないのに苦痛だという状態を区別できます。

準備するもの

  • 応答までの間隔を設定値として切り替えられる、自作のCPU対戦ゲーム(チェス、オセロ、五目並べなど)。CPUの中身(読みの深さや乱数の種)は条件間で固定します。
  • 対局を遊んでくれる人。人数が少なくても、傾向は読めます。
  • 対局ごとに記録するシート。

投稿するゲームは、HTMLやZIPで直下にindex.htmlを置く形で、外部サーバーなしで動かせます。実験用の条件切り替えも、URLの末尾の値やボタンで切り替える形にすれば、サーバーなしで実装できます。

条件の例

  • A、応答までの間隔(例):描画に必要な最小限、見たいこと:間がない場合の基準
  • B、応答までの間隔(例):約0.5秒、見たいこと:短い間が手番の受け渡しに効くか
  • C、応答までの間隔(例):約1.5秒、見たいこと:長めの間が強さの印象を上げるか
  • D、応答までの間隔(例):局面に応じて約0.3〜1.5秒、見たいこと:変動する間が自然に感じられるか

数値は出発点として置いた例です。自分のゲームの一手の重さに合わせて調整します。

記録の取り方

  • 単位は「1人が1条件で遊ぶ対局」です。条件ごとに最低でも3局ずつは遊んでもらいます。1局だけでは、運や相性の影響が大きいためです。
  • 条件の順番は人ごとに入れ替えます。全員がA→B→C→Dの順だと、慣れや疲れが条件の差に混ざります。
  • 各条件の終了後に、「強さ」と「待ちのストレス」をそれぞれ1〜5点で答えてもらいます。「どちらが強いと思いましたか」という比較の質問より、1条件ずつの点数のほうが条件間の差を比べやすくなります。
  • 応答までの間隔の実測値も記録します。ブラウザのperformance.now()で、プレイヤーの手を確定した時刻から相手の駒が動く時刻までを測ります。設定値と実測値がずれていないか、実験の前提として確認します。
  • 参加者には、目的を事前に伝えません。「CPUの強さを比べる」とだけ伝え、間隔を変えていることは終わってから説明します。

結果の読み方

自分で取った数字は、次のように読みます。

  • 強さの点数がA→B→Cと上がり、ストレスの点数はあまり動かない。 間は強さの印象に効いていて、まだ待たせすぎではありません。もう少し長い条件も試せます。
  • 強さの点数が上がり、ストレスの点数も同時に上がる。 境界に近づいています。ストレスが急に上がる条件の一つ手前が、候補になります。
  • 強さの点数が条件間でほとんど変わらない。 間の長さは強さの手がかりになっていません。待ち時間を短くするほうが得です。
  • 強さの点数はAが最も低いが、BとCでほとんど差がない。 間を置く効果は短い間で足りています。Cの長さは不要です。
  • Dだけ評価が高い。 間の長さそのものより、局面との対応が効いている可能性があります。

起こりやすい誤り

  • CPUの強さが条件ごとに変わってしまう。 乱数の種を固定せず、たまたま弱い手が続いた条件が低く評価されることがあります。同じ局面では同じ手を返す設定にします。
  • 「考え中」表示の有無を同時に変える。 間の長さと表示の効果が分離できなくなります。表示は全条件で同じにします。
  • 間隔の測定に描画の時間が混ざる。 設定値が500msでも、重い端末では実際の応答がずれます。実測値を必ず記録します。
  • 評価の質問で間隔に気づかせてしまう。 「待ち時間は長かったですか」と聞くと、それ以降の回答が待ち時間に引きずられます。先に強さ、次にストレスの順で聞きます。
  • 少人数の結果を一般化する。 数人の結果は傾向であり、結論ではありません。条件を絞って人数を増やすか、結果は自分のゲームだけに当てはめます。

公式作品を観察対象に使う場合は、応答時間を変えられないため、3段階の相手のあいだで間の感じ方がどう違うかを記録する形になります。その場合も、確認済み事項にない仕様は、見た範囲の観察として書き留めます。

次の行動

自作のCPU対戦ゲームがあれば、応答までの間隔を変数にして、まず条件AとCの二つだけで3人に遊んでもらってください。強さの点数とストレスの点数を1〜5で書き留めると、間が自分のゲームに効くかどうかが見えてきます。まだ作品がない場合は、「灯りのチェス」と「潮目のオセロ」で3段階の相手を順に遊び、一手ごとの間の感じ方をメモすることから始められます。どちらもログインなしで遊べます。

参考資料

  • Nielsen Norman Group によるユーザーインターフェースの応答時間に関する解説