マガジン

オンライン対局の一手はどこを通るか:ブラウザからサーバーへ

遊びを見つける

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

チェスと白黒の石の盤面を青いリボンでつなぎ、招待対戦を表した写真風イメージ。
記事のテーマをもとに制作したAI生成イラスト。

「潮目のオセロ」で友達と対局している場面を考えてみます。自分は黒で、盤面の一か所をクリックしました。数瞬のあと、石が置かれ、挟まれた白が返り、手番が相手に移ります。この間に、一手はどこを通り、「その手は置いてよい」と最終的に決めているのはどこなのでしょうか。 アソバースの案内では、オンライン対戦の手番・合法手・勝敗はサーバーで確認されます。クリックを受け取るのはブラウザですが、その手を認めるかどうかを確かめるのはサーバー側です。この記事では、この流れを確認済みの事実と、そこから読み取れる設計の考え方に分けて整理します。通信の細かな形式は案内されていないので、最後にご自身のブラウザで確かめる手順も示します。

この記事の目次
  1. 先に押さえる範囲:オンライン対局があるのは2作品だけ
  2. 一手が通る道筋を、段階に分けて考える
  3. なぜ合法手の判定をサーバーが持つのか
  4. 途中で切れたとき、時間の上限はどうなるか
  5. 自分のブラウザで確かめる手順
  6. 次の行動
  7. 参考資料

先に押さえる範囲:オンライン対局があるのは2作品だけ

アソバースでオンライン対戦ができるのは「潮目のオセロ」と「灯りのチェス」の2作品です。投稿作品向けの共通対戦APIは未提供で、フレンドやチャットの機能もありません。投稿画面にある「遊び方・最大参加人数」は作者の任意の申告にすぎず、共通対戦を有効にするものではありません。

対戦の始め方は次のとおりです。

  • メール確認済みのアカウントで部屋を作ります。
  • 発行されたリンクで友達を1人招待します。
  • 「潮目のオセロ」では黒が先手です。置ける場所がない手番は自動でパスになります。
  • 「灯りのチェス」では黒側の盤面が反転して表示されます。
  • どちらも投了ができ、対戦履歴が残ります。

ここで一つ、確認しておきたい点があります。13の公式作品は、どれも独立したHTMLで外部通信なしに動くと案内されています。一方でオンライン対局では、サーバーが手を確認します。この二つがどうつながっているのか、つまり盤面の画面がどの経路でサーバーと話すのかは、確認済みの事項には含まれていません。この記事ではその部分を推測で埋めず、「確かめる」項目として扱います。

一手が通る道筋を、段階に分けて考える

実装の細部は不明でも、「サーバーが手番・合法手・勝敗を確認する」という案内から、一手の流れを一般的なモデルとして組み立てられます。以下は確認済みの仕様そのものではなく、考え方を整理するための骨組みです。

  1. 手を打つ側のブラウザで、クリックや矢印キーとEnterの操作が「この場所に置きたい」という意思になります。
  2. その意思が、対局中の部屋に対する「着手の申し出」としてサーバーへ届きます。
  3. サーバーは、申し出た人が今の手番か、その手がルール上の合法手かを確認します。
  4. 認められれば、サーバーが持つ盤面が更新されます。勝敗がついたかどうかもここで確認されます。
  5. 更新結果が、打った側と待っている側の両方の画面に反映されます。

ポイントは、2から4で「申し出」と「決定」が分かれていることです。ブラウザが送るのはあくまで希望で、採用するのはサーバーです。認められなかった申し出が画面上でどう見えるのかは、作品を開いて確かめる部分です。

自動パスも同じ考え方で読めます。「置ける場所がないので手番が移る」という判断は、合法手の一覧が分かって初めてできます。合法手を確認する仕組みがあるから、パスもルールどおりに処理できると読み取れます。

なぜ合法手の判定をサーバーが持つのか

ここからは「設計から読み取れること」です。開発者の意図を断定するものではありません。

画面は見せる役、サーバーは決める役

ブラウザの中で動くコードは、遊ぶ人の手元の環境で動いています。そのため、ブラウザ側だけで勝敗や手の正しさを決める作りでは、画面の状態と相手の画面の状態がずれる余地が残ります。対戦では、二人が同じ盤面を前提にしていることが大切です。判断する場所を一つにしておけば、二人の画面が食い違ったときも「サーバーの盤面が正」と決められます。

もちろん、ブラウザ側にも判定の仕組みはあります。たとえば「灯りのチェス」は判定エンジンとしてchess.jsを同梱し、キャスリング、アンパッサン、選択式の昇格、標準の終局判定に対応しています。「潮目のオセロ」には返る石のプレビューがあります。ただし案内では、オンライン対戦で手番・合法手・勝敗を確認するのはサーバーと書かれています。画面上の判定が操作の分かりやすさのためのもので、対局の確定はサーバーの確認という二段構えで読めます。オンライン対局で両者がどう使い分けられているかの詳細は、確認済みの事項にありません。

状態を預かっているから、復帰や履歴が成り立つ

サーバーが盤面を確認しているなら、その盤面を預かっているとも考えられます。次の機能は、この前提と相性がよいものです。

  • 「潮目のオセロ」は再読み込みしても同じ部屋へ復帰できます。
  • 再接続に対応しています。
  • 投了や対戦履歴が用意されています。

ブラウザの画面を開き直すと、画面側の状態は一度なくなります。それでも続きから戻れるのは、対局の状態が画面の外にあるからだ、と読み取るのが自然です。あくまで読み取りであり、保存の仕組みそのものは案内されていません。

ひとり対局との違いも手がかりになる

ヒントと「一手戻す」は、「潮目のオセロ」ではひとり対局のみです。「灯りのチェス」のオンライン対局で一手戻すがどう扱われるかは、確認済みの事項にありません。

対戦相手がいる場合、一手を取り消すと相手の画面や、サーバーが確認済みの盤面とも整合させる必要が生じます。ひとり対局のみとされている点は、サーバーが手を確定していくオンライン対局の性格と矛盾しません。

途中で切れたとき、時間の上限はどうなるか

部屋と対戦履歴には期限があります。部屋は24時間で、部屋と対戦履歴は作成から7日後に削除対象です。「対局を再開できるのは部屋が有効な間」と考えて、続きは早めに指しておくのが安全です。履歴を長く手元に残したい場合は、別の方法を自分で用意する必要があります。

再読み込みや再接続でどこまで戻れるかは、条件によって変わりえます。たとえば、ネットワークが切れた直後と数時間後では状況が違うかもしれません。こうした境界は案内にないため、「戻れる」と決めつけず、実際に試して確かめてください。

注意点があります。招待リンクは友達を1人招くためのものです。公開の場所に貼ると、意図しない人に部屋へ入られるおそれがあります。リンクは友達にだけ渡してください。

自分のブラウザで確かめる手順

一手の経路は、ブラウザの開発者ツールで観察できます。ここでは観察の設計だけを示し、結果は書きません。観察するのは自分の対局だけにしてください。他人の対局を狙う操作や、通信内容を書き換える操作は行わないでください。

準備するもの

  • メール確認済みのアカウント、または友達のアカウント
  • パソコンのブラウザ(開発者ツールの「ネットワーク」タブを使います)
  • 対戦相手になってくれる友達、または別の端末と別のアカウント

手順と記録

  1. 部屋を作成し、リンクで相手を招待します。
  2. ネットワークタブを開き、記録を一度クリアします。
  3. 一手を打つ前後で、通信の一覧に変化があるかを見ます。
  4. 記録するのは、1手ごとの通信の件数、通信の宛先(ドメイン名)、方向(送信か受信か)です。
  5. 相手が打った手が自分の画面に届くとき、通信が見えるかも同じ単位で記録します。
  6. 5手ほどを1セットとし、同じ観察を2回行います。

結果の読み方

  • 自分の1手に対応して通信が毎回見えるなら、一手が画面の外へ送られている可能性が高いと読めます。ただし通信の内容が着手の申し出かどうかまでは、この観察だけでは言い切れません。
  • 通信が見えない場合は、開発者ツールの表示範囲に入っていない通信経路かもしれません。この場合も、「サーバーで確認していない」とは結論できません。
  • 通信の宛先がアソバースの領域か別の領域かは、記録から読み取れます。13作品は外部通信なしと案内されているため、この点は作品単体の仕組みとの関係を考える材料になります。

起こりやすい誤り

  • 自動更新や広告関連の通信を、一手の通信と取り違える。1手ごとに前後を比べ、一手に連動した件数だけを数えてください。
  • 一度きりの観察で結論を出す。回数を分けて、同じ傾向かを確かめてください。
  • 通信内容の書き換えを試みる。この記事の目的は仕組みの理解であり、不正な操作は想定していません。

さらに、再読み込みの挙動も同じ形で確かめられます。対局の途中でページを再読み込みし、同じ部屋に戻れるか、盤面と手番がどうなるかを記録します。「潮目のオセロ」は再読み込みで同じ部屋へ復帰すると案内されているので、その案内と実際の動きを照らし合わせる形になります。

次の行動

友達と「潮目のオセロ」か「灯りのチェス」で部屋を作り、5手ほど指しながら、ネットワークタブで1手ごとの通信を記録してみてください。再読み込みでの復帰も一度試すと、「画面の外に対局の状態がある」という読み取りが自分の目で確かめられます。結果が案内の範囲を超える内容になった場合は、現在の案内で確認してください。

参考資料

  • アソバース 公式作品13本の案内(潮目のオセロ、灯りのチェス)
  • アソバース オンライン対戦に関する案内