ネットワーク状態のシミュレーション
概要
ローカルでテストするときは、常に現実的な、あるいは現実より劣る遅延と損失の下でネットワークコードをテストすることをお勧めします。優れたネットワークゲームデザインの複雑さは、プレイヤー間のパラドックスや時差をどのように隠すかにかかっています。このため、コードベースが生み出す実際のプレイヤー体験を意識することができます。
このため、テストは実際のインターネット接続で行うか、開発パイプラインでローカルに構築・テストする必要がある場合は、シミュレーションを行う必要があります。
Fusionにはネットワークコンディションシミュレーションが組み込まれており、デバッグ版のfusion.dll
を使用することで利用可能です。リリース版DLLを使用する場合は、Clumsy for Windowsのような外部ソフトウェアの使用が必要です。
組み込みのネットワーク条件
内蔵のNetwork Conditionsは、Delay(遅延)とLossの発振器とランダム値ジェネレータの組み合わせで動作します。これらの発振器は、時間とともに変化する値を使用して、DelayとLossのシミュレーションを可能にします(断続的な輻輳のような非常にひどいインターネットの状態のシミュレーションを可能にするため)。もし、振動よりも固定値を好むのであれば、MinとMaxの値を一致させてください。
ネットワーク条件の有効化
NetworkProjectConfig
を開きます(Unity menuFusion > Network Project Config
)。Network Conditions
という名前のフォルダを探します。- もし、このフォールドアウトが表示されていない場合、プロジェクトは現在、release の
fusion.dll
を使用している可能性が高いです。この場合、UnityのメニューFusion > Toggle Debug Dlls
でデバッグDLLに切り替えてください。この変更を有効にするには、ユニティエディタの再起動が必要かもしれません。
- もし、このフォールドアウトが表示されていない場合、プロジェクトは現在、release の
- ネットワーク状態のシミュレーションを有効/無効にするには、
Enabled
をトグルします。
設定
ネットワーク条件
- Enabled:ネットワークの悪条件をシミュレートする場合。
- Delay Shape:
DelayMin
とDelayMax
値の間で振動するために使用されるパターン。 - Delay Min: DelayShape発振器から返される最も低いパケット遅延値。
- Delay Max:
DelayShape
オシレーターから返される最も高いパケット遅延の値。 - Delay Period:
DelayShape
オシレーターの周期 (秒単位の遅延時間)。 - Delay Threshold:
DelayShape
は0から1の間で振動します。この閾値以下の値はゼロになり、結果としてDelayMin
と等しい値になります。 - Additional Jitter:
DelayShape
発振器からの遅延値が決定された後、0 からこのAdditionalJitter
の間のランダムな値が遅延時間に追加されます。 - Loss Chance Shape:
LossChanceMin
とLossChanceMax
の間で揺れ動くパターンを指定します。 - ロスチャンス最小値:
LossChanceShape
が作り出すロストチャンスの最小値です。0 = 失われる可能性は0%です。1 = 失われる可能性が100%です。 - Loss Chance Max:
LossChanceShape
オシレーターが作り出す最も高い損失確率の値。0 = ロストする可能性は0%です。1 = ロストする可能性が100%。 - Loss Chance Threshold:
LossChanceShape
は0と1の間で振動します。この閾値以下の値はゼロになり、結果としてLossChanceMin
と等しい値になります。 - Loss Chance Period:
LossChanceShape
の振動子の周期(秒単位で遅延振動する割合)です。 - Additional Loss:
LossChanceShape
発振器によって損失チャンス値が生成された後、0からこのAdditionalLoss
の間の追加のランダムな値が(正規化された)損失チャンスに追加されます。
ホストとサーバーモード
内蔵のNetwork Conditionsは,各ピアで表示値の1/2を生成します。サーバーとクライアントの両方がこれらの値を適用するため、合計の遅延は設定とほぼ同じ結果になります。言い換えると、200msの遅延は、次のようになります。
- サーバーはパケットを~100ms保持します。
- クライアントはパケットを~100ms 保持します。
Shared Mode
Shared Modeでは、クライアントは常にPhoton Game Serversのオンラインに接続します。Shared Modeでのテストでは、ローカルクライアントは実際のオンラインプレイを見ることができるため、ネットワーク条件をシミュレートする必要はありません。
しかし、現在の接続状態よりも悪い状態をシミュレートするために、遅延や損失を追加することが望ましい場合があります。Shared Modeでは、クライアントのみが遅延と損失のシミュレーションを行うため、設定に示された値の半分(50%)しか実際に適用されないことに注意してください。そのため、Shared Modeのテストでは、値を2倍にする必要があります。さらに、Shared Modeでは、これらの値は、オンラインであることからすでに自然に発生している遅延に追加されることに注意してください。
サードパーティーソフトウェア
リリース版の fusion.dll
を使用している場合でも、サードパーティ製のアプリを使用して、ネットワークトラフィックを遅延させたり妨害することで、ネットワークの悪条件をシミュレートすることが可能です。
Windowsでは、Clumsyが最もよく使われ、推奨されるサードパーティ製アプリで、不利なネットワーク状況をシミュレートすることができます。
_'udp and outbound'_のフィルタリング文字列は、ほとんどのユースケースで機能するはずです。より詳細な仕様については、Clumsyのドキュメントを参照してください。N.B.: 使用するポートとネットワークIPアドレスがわかっている必要があります。
Back to top