Simulating Network Conditions
概述
在本機測試時,建議始終在現實或甚至比現實更差的延遲和遺失下測試網路程式碼。好的已連網遊戲設計的複雜性,很大程度上圍繞著如何隱藏玩家之間的矛盾和時間差異。這允許了解程式碼庫將產生的實際玩家體驗。
為此,測試應該在真實的網際網路連線下運行,或者在開發管道需要在本機組建和測試的情況下進行模擬。
Fusion內建了網路條件模擬,在使用fusion.dll
的調試版本時可以使用。使用發佈dll時,需要使用外部軟體,如Windows版的Clumsy。
內建網路條件
內建的網路條件與遲延(延遲)和遺失振盪器以及隨機值生成器結合一起運行。這些振盪器允許使用隨時間變化的值來模擬延遲和遺失(以允許模擬非常不佳的網際網路條件,如間歇性壅塞)。如果固定值優於振盪,只需設定最小值和最大值設定以匹配。
啟用網路條件
- 開啟
NetworkProjectConfig
(Unity選單Fusion > Network Project Config
)。 - 找到名為
Network Conditions
的資料夾。- 如果資料夾不可見,則專案當前最有可能使用 發佈的
fusion.dll
。在這種情況下,導航到Unity選單Fusion > Toggle Debug Dlls
以切換到調試dll。注意: 可能需要重新啟動Unity編輯器才能使更改生效。
- 如果資料夾不可見,則專案當前最有可能使用 發佈的
- 切換
Enabled
以啟用和停用網路條件模擬。
設定
網路條件
- 啟用:如果正在模擬不好的網路條件。
- 延遲形狀:用於在
DelayMin
和DelayMax
值之間振盪的模式。 - 延遲最小值:從
DelayShape
振盪器傳回的最低封包延遲值。 - 延遲最大值:從
DelayShape
振盪器傳回的最高封包延遲值。 - 延遲期間:
DelayShape
振盪器的期間(延遲以秒為單位振盪的速率)。 - 延遲閾值:
DelayShape
在0和1之間振盪。低於此閾值的值將減少到零,導致值等於DelayMin
。 - 附加抖動:在確定了
DelayShape
振盪器的延遲值後,將0和此AdditionalJitter
之間的附加隨機值新增到延遲時間中。 - 遺失機會形狀:用於在
LossChanceMin
和LossChanceMax
值之間振盪的模式。 - 最小遺失概率:
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是用於模擬惡劣網路條件的最常用和推薦的第三方應用程式。
'udp與outbound' 的篩選字串應該適用於大多數用例。有關細節規格的更多資訊和詳細資訊,請參閱Clumsy文檔。注意: 必須知道使用的埠和網路IP位址。
Back to top