出典: automaton-media.com

Activisionは『Call of Duty: Modern Warfare 4』に、壁越しに敵の位置を把握するウォールハックへの対策「サーバーカリング」を導入します。この仕組みでは敵の位置情報をクライアントへ送らず、発売時のマルチプレイヤーマップとDMZ、Combat Outpostの各モードに適用する予定です。

出典: automaton-media.com

敵の位置情報をクライアントへ送らない

ウォールハックは、壁などで見えない敵の位置を不正に表示するチートです。通常、ゲームサーバーは各プレイヤーの位置情報を送り、画面に映っていない敵の位置もゲーム内部で把握されています。

サーバーカリングでは、プレイヤーから見えない敵の位置情報を原則として送信しません。クライアントに情報がなければ、チートが読み取って敵の位置を表示することもできない仕組みです。

Activisionは、マップ内の建物などに設ける「遮蔽レイヤー」を使い、その向こう側にいるプレイヤーの情報をクライアントへ送らないと説明しています。壁が視界だけでなく位置情報も遮ります。

視認判定と情報送信の仕組み

敵が見えるかどうかをサーバー側で判定し、見えない相手の情報を送らない方式は、『VALORANT』の「Fog of War」にもあります。サーバーが見る側と対象の組み合わせごとに送信の要否を決め、不要な敵の情報をスナップショットから省きます。

Robloxの開発者フォーラムで公開された技術解説によると、この方式を実装する際、すべてのプレイヤーの組み合わせに毎回レイを飛ばすと計算負荷が大きくなります。プレイヤー数が増えると判定の組み合わせも増えます。また、遮蔽物によって見え方が変わるため、単純な判定では表示がちらつくこともあります。

同じ技術解説が紹介する「Potentially Visible Set(PVS)」は、マップを区画に分け、区画間の見通しを事前に計算する方式です。実行時は区画ごとの表を参照し、見通しがない組み合わせをレイ判定の前に除外します。

事前計算でレイ判定を絞る

PVSで見通しがないと判断された組み合わせは、レイ判定をせず処理から外せます。一方、見通しがある可能性を示す組み合わせは、それだけで敵が見えると確定せず、実際の位置に基づくレイ判定へ進みます。

技術解説では事前計算の例として、マップをセルに分割し、セル間に見通しがあるかをサンプル光線で調べる手順を挙げています。少なくとも一つのサンプルが遮られなければ、そのセルの組み合わせを見通しありとして記録します。

この実装例はRoblox向けです。Activisionは、『Modern Warfare 4』がPVSや同じ判定手順を採用するとは公表していません。Activisionが公表したのは、遮蔽レイヤーを使って見えない敵の位置情報を送らないサーバーカリングです。

発売時の対象と今後の対応

サーバーカリングは、発売時に実装されるすべてのマルチプレイヤーマップと、DMZ、Combat Outpostの各モードで適用される予定です。シーズン1以降に追加されるマップとモードにも対応するとActivisionは説明しています。

『Modern Warfare 4』はPC、Xbox Series X|S、PS5、Nintendo Switch 2向けに10月23日発売予定です。