8人、1つの戦い

昨日の明細の未完成リストには、「もっと多くの人数でのオンライン」という一行がありました。オンラインのチーム戦は、あなたと友達それぞれにAIの味方が付く形でした。今では、すべての席に人が座れます。2v2から4v4まで、ルームには最大8人のプレイヤーと4人の観戦者です。空いている席は引き続きAIが埋めるので、友達4人とAI2人で3v3を遊ぶこともできます。
ルーム
ルームでは、各チームが席の列になっています。参加した人は、人数の少ない側の空いている席に座り、Sit hereで移動できます。Readyを押すまでは移動できます。空席には「AI slot」と表示されます。同じチーム内では誰も陣営が被らないようになっており(対戦モードで許可されている場合を除く)、Readyを押した時点で、味方と陣営が被っているとすぐに警告が出ます。ホストが試合を始めようとしてから気づく、ということはありません。公開のルーム一覧には、形式と既に参加している人数が表示されます。
ドラフトのモードでは、選択はすべてのプレイヤーにまたがる1-2-2-1の順番で回ります。一方の側の最初のプレイヤー、もう一方の側の2人、最初の側の2人、という具合です。AIの席は、順番が来ると自分で選びます。
星型であり、網目ではない
2人のときは、2台のコンピューターが直接命令を交換します。8人のときは、全員を全員につなぐと28の接続が必要になり、それぞれが独自の失敗をしうることになります。そこでオンラインのチーム戦は星型です。どのゲストもホストとだけ通信し、ホストが各プレイヤーの命令を他の全員に中継します。送られるのは相変わらず命令だけで、1ターンあたり数バイトです。そして1対1と同じく、すべてのコンピューターが戦闘全体を実行します。戦いの「指紋」チェックもホストを通ります。
誰かが切断したとき
1対1では、相手が切断すると試合は一時停止して待ちます。4v4では、残りの6人にとって不公平なので、ここでは仕組みが違います。AIが切断したプレイヤーの席をすぐに引き継ぎます。どのコンピューターでも同じターンから切り替わります。この切り替えは通常の命令として記録されるので、リプレイと観戦者には同じ内容が映ります。
切断したプレイヤーはゲームを開き、Rejoin matchを選びます。ホストが戦いの完全なスナップショットを送り、そのあいだAIがそのプレイヤーの分も戦い続けます。そしてプレイヤーのコンピューターが戦場を組み立てて追いつく間も続きます。同期が取れたら、プレイヤーは席を返してほしいと頼み、合意したターンから操作を引き継ぎます。そのターンは、全員がそこに到達する前に分かるように十分先に設定されています。誰も待つ必要はありません。
ホストが切断した場合はどうでしょうか。その場合、中継する者がいません。そこで他の全員が再接続カウントダウンで一時停止します。ホストが戻ってくると、各ゲストに切断後に何を見たかを尋ね、最も先まで進んでいたゲストのスナップショットを取り、他のゲストだけが受け取っていた命令をマージします。ホストが時間内に戻らなければ、そのチームは没収試合で負けます。
降参は、今では投票制です。チームの過半数が投票すると、そのチームは降参します。チームに自分一人しかいない場合は、以前と同じく、すぐに降参できます。
8つの開いたウィンドウが教えてくれたこと
グラフィックなしのテストでは、ゲストとホストが切断して戻る2v2から4v4を模擬し、全員が同じ戦いに収まるかを確かめました。しかし、実際のゲームも動かしました。2v2では4つのウィンドウ、4v4では8つのウィンドウを、すべて同じマシンで開き、それぞれの人物の代わりにAIが遊びました。試合の途中で、1つのウィンドウを閉じて開き直しました。すべてのウィンドウは、まったく同じ戦いで終わりました。その過程で、グラフィックなしのテストでは捕まらなかった4つの問題が見つかりました。
- 始まらないルーム。 全員がデフォルトの陣営で参加しました。チームは陣営を重ねられません。そこでReadyの警告が生まれました。
- 参加をあきらめたゲスト。 8つのウィンドウが同時に読み込むと、ホストの応答が遅くなり、参加リクエストは一度しか送られませんでした。今では最大20秒間、再試行し続けます。
- 一人を全員が待つ。 最初のバージョンでは、スナップショットが送られた時点で席が戻ってきたプレイヤーに返され、残りの7人は、その人の戦場が読み込まれるまで約30秒待ちました。AIがプレイヤーの追いつきを待つ間、席を保持していた理由はこれです。
- 開始時に最も遅いPC。 試合の準備に8秒以上かかった人は、最初のターンの前にAIに席を奪われました。今では、まだ読み込み中のプレイヤーに45秒が与えられます。
もう一つ微妙な問題がありました。コードを読んでわかったことですが、ゲストはホストより数ターン先を進むことがあり、AIとして既に通過したターンに席が戻ってくると、試合が壊れてしまいます。このケースには、今は専用のテストがあります。
まだ足りないもの
ホストが切断して戻らない場合、ルームを引き継ぐ者はおらず、そのチームは負けます。また、命令は、味方同士であっても常にホストを経由します。どちらも今後の予定に入っています。
— Castle Arenaチーム





