2014年8月13日

ネットワークプレイでのエクスプロイト

作成 Joe Graf 訳:Shota Imai

最近、ギアーズオブウォーのとあるファンとメールでやりとりをしていて、シリーズ3作品のネットワークの仕様の違いを聞かれたんだ。ネットワークの快適さにおいてひとつ言えることは、アンリアルエンジンに初めから入っているネットワークシミュレーション機能の使い方によるんだ。その機能を使って、対戦型だったり協力型の通信プレイの快適さをケースごとにテストする。僕らが一番大事にしていることは、プレイヤーに可能な限りストレスなく最高の状態で通信プレイをしてもらうことなんだ。だからゲームをリリースしてからユーザーの反応をみて調整するんじゃなくて、リリース前に品質管理の部署で徹底的にチェックしてるよ。

アンリアルエンジンで使うことが出来る設定一覧:

設定

説明

PktLag

ミリセカンド単位で指定した時間の分だけパケット送信を遅らせます

PktLagVariance

ミリセカンド単位でパケットの遅れに応じたプラマイでランダムな尺を提供します

PktLoss

パケットのロスをシミュレーションするために、破棄されるアウトバウンドパケットのパーセンテージでの割合を指定します

PktDup

パーセンテージで重複したパケットの確率を指定します

PktOrder

有効になっている時にパケットを順番に送信します(1=有効、0=無効)

3通りの方法で設定を変更できます> コマンドラインの引数、コンソール機のゲーム実行ファイル、エンジンのINIファイル。

コマンドラインでは、設定を下記のようにします。:

<SettingName>=<Value>

コンソールでは下記

Net <SettingName>=<Value>

DefaultEngine.iniで指定するには、下記の数行を書き足して数値を必要に応じて変えます。

[PacketSimulationSettings]

PktLag=0

PktLagVariance=0

PktLoss=0

PktOrder=0

PktDup=0

ギアーズ3の開発の時は、ネットワークのシミュレーションの設定をデイリービルドに入れていました。そうすることで、LANベースのゲームテストプレイは、現実世界の通信環境で常にテストできていました。また、普通では起こらないような通信環境のテストも取り入れていました(例えば500のping送受信で10%以上のパケットロスとか)。こういうテストはゲームを楽しむためのチューニング用と言うよりかは、特殊な状況でのみ発生するバグとエクスプロイト(セキュリティ上の抜け穴)を洗い出してチートされないようにするためです。

もしエクスプロイトを発見したら是非教えていただけると助かります。

楽しくネットワークプレイしましょう!