This document is about: FUSION 2
SWITCH TO

Simulating Network Conditions

概述

在本機測試時,建議始終在現實或甚至比現實更差的延遲和遺失下測試網路程式碼。好的已連網遊戲設計的複雜性,很大程度上圍繞著如何隱藏玩家之間的矛盾和時間差異。這允許了解程式碼庫將產生的實際玩家體驗。

為此,測試應該在真實的網際網路連線下運行,或者在開發管道需要在本機組建和測試的情況下進行模擬。

Fusion內建了網路條件模擬,在使用fusion.dll的調試版本時可以使用。使用發佈dll時,需要使用外部軟體,如Windows版的Clumsy。

內建網路條件

network conditions foldout
網路專案設置中的網路條件選項。

內建的網路條件與遲延(延遲)和遺失振盪器以及隨機值生成器結合一起運行。這些振盪器允許使用隨時間變化的值來模擬延遲和遺失(以允許模擬非常不佳的網際網路條件,如間歇性壅塞)。如果固定值優於振盪,只需設定最小值和最大值設定以匹配。

啟用網路條件

  1. 開啟NetworkProjectConfig(Unity選單Fusion > Network Project Config)。
  2. 找到名為Network Conditions的資料夾。
    • 如果資料夾不可見,則專案當前最有可能使用 發佈的 fusion.dll。在這種情況下,導航到Unity選單Fusion > Toggle Debug Dlls以切換到調試dll。注意: 可能需要重新啟動Unity編輯器才能使更改生效。
  3. 切換Enabled以啟用和停用網路條件模擬。

設定

network conditions
人為延遲和遺失的網路條件設定。

網路條件

  • 啟用:如果正在模擬不好的網路條件。
  • 延遲形狀:用於在DelayMinDelayMax值之間振盪的模式。
  • 延遲最小值:從DelayShape振盪器傳回的最低封包延遲值。
  • 延遲最大值:從DelayShape振盪器傳回的最高封包延遲值。
  • 延遲期間DelayShape振盪器的期間(延遲以秒為單位振盪的速率)。
  • 延遲閾值DelayShape在0和1之間振盪。低於此閾值的值將減少到零,導致值等於DelayMin
  • 附加抖動:在確定了DelayShape振盪器的延遲值後,將0和此AdditionalJitter之間的附加隨機值新增到延遲時間中。
  • 遺失機會形狀:用於在LossChanceMinLossChanceMax值之間振盪的模式。
  • 最小遺失概率LossChanceShape振盪器將產生的最低遺失概率值。0=0%遺失的可能性。1=100%遺失的可能性。
  • 最大遺失概率LossChanceShape振盪器將產生的最高遺失概率值。0=0%遺失的可能性。1=100%遺失的可能性。
  • 遺失概率閾值LossChanceShape波在0和1之間振盪。低於此閾值的值將減少到零,導致值等於LossChanceMin
  • 遺失概率期間LossChanceShape振盪器的期間(延遲以秒為單位振盪的速率)。
  • 額外遺失:在LossChanceShape振盪器生成遺失概率值後,將在(正常化)遺失概率上新增一個介於0和此AdditionalLoss之間的額外隨機值。

主機與伺服器模式

內建的網路條件在每個同儕節點上產生指示值的1/2。伺服器和客戶端都應用這些值,導致總延遲大約等於設定。換句話說,200ms的延遲將導致:

  • 伺服器保存封包約100ms;並且,
  • 客戶端持有它們的封包約100ms。

共享模式

在共享模式下,客戶端始終連線到線上的Photon遊戲伺服器。在共享模式下進行測試時,不需要模擬網路條件,因為本機客戶端正在觀看實際的線上遊戲。

然而,可能仍然需要添加一些延遲和損耗,以模擬比當前連線提供的更糟糕的條件。請注意,在共享模式下,只有客戶端會新增模擬延遲和損失,因此設定中指示值的一半(50%)將被實際應用。因此,共享模式測試的值應該加倍。此外,請注意,在共享模式下,這些值被新增到已經自然發生的線上延遲中。

第三方軟體

當使用fusion.dll的發佈版本時,仍然可以使用第三方應用程式來延遲和中斷網路流量,從而模擬不利的網路條件。

對於Windows,Clumsy是用於模擬惡劣網路條件的最常用和推薦的第三方應用程式。

clumsy user interface
Clumsy使用者介面與設定。

'udp與outbound' 的篩選字串應該適用於大多數用例。有關細節規格的更多資訊和詳細資訊,請參閱Clumsy文檔。注意: 必須知道使用的埠和網路IP位址。

Back to top