このページは編集中です。更新が保留になっている可能性があります。

ネットワーク状態のシミュレーション

概要

ローカルでテストするときは、常に現実的な、あるいは現実より劣る遅延と損失の下でネットワークコードをテストすることをお勧めします。優れたネットワークゲームデザインの複雑さは、プレイヤー間のパラドックスや時差をどのように隠すかにかかっています。このため、コードベースが生み出す実際のプレイヤー体験を意識することができます。

このため、テストは実際のインターネット接続で行うか、開発パイプラインでローカルに構築・テストする必要がある場合は、シミュレーションを行う必要があります。

Fusionにはネットワークコンディションシミュレーションが組み込まれており、デバッグ版のfusion.dllを使用することで利用可能です。リリース版DLLを使用する場合は、Clumsy for Windowsのような外部ソフトウェアの使用が必要です。

トップに戻る

組み込みのネットワーク条件

Network Conditions Foldout
Network Project ConfigのNetwork Conditionsのオプション。

内蔵のNetwork Conditionsは、Delay(遅延)とLossの発振器とランダム値ジェネレータの組み合わせで動作します。これらの発振器は、時間とともに変化する値を使用して、DelayとLossのシミュレーションを可能にします(断続的な輻輳のような非常にひどいインターネットの状態のシミュレーションを可能にするため)。もし、振動よりも固定値を好むのであれば、MinとMaxの値を一致させてください。

トップに戻る

ネットワーク条件の有効化

  1. NetworkProjectConfig を開きます(Unity menu Fusion > Network Project Config)。
  2. Network Conditionsという名前のフォルダを探します。
    • もし、このフォールドアウトが表示されていない場合、プロジェクトは現在、releasefusion.dll を使用している可能性が高いです。この場合、Unityのメニュー Fusion > Toggle Debug Dlls でデバッグDLLに切り替えてください。この変更を有効にするには、ユニティエディタの再起動が必要かもしれません。
  3. ネットワーク状態のシミュレーションを有効/無効にするには、Enabledをトグルします。

トップに戻る

設定

Network Conditions
人工的な遅延やロスを発生させるネットワーク条件設定。

トップに戻る

ネットワーク条件

  • Enabled:ネットワークの悪条件をシミュレートする場合。
  • Delay Shape: DelayMinDelayMax 値の間で振動するために使用されるパターン。
  • Delay Min: DelayShape発振器から返される最も低いパケット遅延値。
  • Delay Max:DelayShape オシレーターから返される最も高いパケット遅延の値。
  • Delay Period: DelayShape オシレーターの周期 (秒単位の遅延時間)。
  • Delay Threshold: DelayShapeは0から1の間で振動します。この閾値以下の値はゼロになり、結果としてDelayMinと等しい値になります。
  • Additional Jitter: DelayShape 発振器からの遅延値が決定された後、0 からこの AdditionalJitter の間のランダムな値が遅延時間に追加されます。
  • Loss Chance Shape: LossChanceMinLossChanceMax の間で揺れ動くパターンを指定します。
  • ロスチャンス最小値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が最もよく使われ、推奨されるサードパーティ製アプリで、不利なネットワーク状況をシミュレートすることができます。

Clumsy User Interface
Clumsyユーザーインターフェースと設定

'udp and outbound'のフィルタリング文字列は、ほとんどのユースケースで機能するはずです。より詳細な仕様については、Clumsyのドキュメントを参照してください。N.B.: 使用するポートとネットワークIPアドレスがわかっている必要があります。

ドキュメントのトップへ戻る