ネットワーク状態のシミュレーション
概要
ローカルでテストするときは、常に現実的な、あるいは現実より劣る遅延と損失の下でネットワークコードをテストすることをお勧めします。優れたネットワークゲームデザインの複雑さは、プレイヤー間のパラドックスや時差をどのように隠すかにかかっています。このため、コードベースが生み出す実際のプレイヤー体験を意識することができます。
このため、テストは実際のインターネット接続で行うか、開発パイプラインでローカルに構築・テストする必要がある場合は、シミュレーションを行う必要があります。
Fusionにはネットワークコンディションシミュレーションが組み込まれており、デバッグ版のfusion.dllを使用することで利用可能です。リリース版DLLを使用する場合は、Clumsy for Windowsのような外部ソフトウェアの使用が必要です。
組み込みのネットワーク条件
 
    内蔵のNetwork Conditionsは、Delay(遅延)とLossの発振器とランダム値ジェネレータの組み合わせで動作します。これらの発振器は、時間とともに変化する値を使用して、DelayとLossのシミュレーションを可能にします(断続的な輻輳のような非常にひどいインターネットの状態のシミュレーションを可能にするため)。もし、振動よりも固定値を好むのであれば、MinとMaxの値を一致させてください。
ネットワーク条件の有効化
- NetworkProjectConfigを開きます(Unity menu- Fusion > 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