1 台のマシンでマルチプレイヤー ゲームをテストするには、ゲームの複数のインスタンスを実行して、1 つのインスタンスをサーバーとして、その他のインスタンスをクライアントとして実行する必要があります。この方法により、通常、レプリケートされたデータに最適な環境が構築されます。レプリケートされたデータは、実際のネットワーク環境と同じように該当するシステムを通過するものの、遅延やパケット ロスが発生しないため、エンドユーザーの環境にデプロイされた際にどのように動作するかを正確に把握することができません。同様に、LAN ベースのテストでも、このような条件を再現することはできません。
ネットワーク エミュレーション では、サーバーおよびクライアントの遅延やパケット ロスをシミュレートします。これは、ネットワーク環境で発生する可能性のある問題を特定するうえできわめて重要です。ネットワーク エミュレーションを使用するには、[Project Settings (プロジェクト設定)] > [Level Editor (レベル エディタ)] > [Play (プレイ)] > [Multiplayer Options (マルチプレイヤー オプション)] を選択して、[Enable Network Emulation (ネットワーク エミュレーションの有効化)] を オン に設定します。これで、ネットワーク エミュレーションの設定が有効になります。

設定のリファレンス
ネットワーク エミュレーションの設定は、エディタ、コンフィグ ファイル、およびコンソールを使用して設定できます。これらの設定は、高レイテンシー、パケット ロス、またはジッターのテストなど、さまざまな状況で使用できる複数の方法を提供します。
設定 | 説明 |
---|---|
PktLag | パケットの送信をミリ秒単位で指定した時間だけ遅延させます |
PktLagVariance | パケットを遅延させる時間をランダムにし、ミリ秒単位で指定した量を増減させます |
PktLoss | パケット ロスをシミュレートするために、送信パケットが破棄される確率 (%) を指定します |
PktDup | 重複するパケットが送信される確率 (%) を指定します |
PktOrder | 有効な場合 (1 = 有効、0 = 無効)、パケットを順不同で送信します |
これらの設定を行うには、コマンドラインからの設定、コンソール の [Play (プレイ)] での実行、および「Engine.INI」ファイルでの実行という 3 通りの方法があります。
コマンドライン引数
コマンドライン からは、次の方法を使用して設定を指定します。
<SettingName>=<Value>
コンソール
コンソール では、次を使用します。
Net <SettingName>=<Value>
Default Engine.Ini
「DefaultEngine.ini」ファイルからこれらの値を設定するには、次のセクションを追加して、各変数にテストする必要のある値を割り当てます。
[PacketSimulationSettings]
<SettingName>=<Value>
<SettingName>=<Value>
...
使用方法に関する推奨事項
マルチプレイヤー ゲームが最適な接続環境で実行されている場合、接続性に問題があるときにのみ生じるバグの多くは発生しません。これらのバグを確実に検出するため、ローカル テストや LAN ベース テストは、きわめて厳しい条件でを実行してください。次に例を示します。
-
ping のラウンド トリップ タイム:500 ms
-
パケット損失率:10% 以上
Epic Games では、このような条件で、連携ゲームプレイや対戦ゲームプレイのテストを実施しています。これにより、その他のテスト方法では見過ごされる可能性のある数多くのバグやエクスプロイトを検出できるため、ネットワーク パフォーマンスの最適化を強化することができます。