This page is a work in progress and could be pending updates.

Fusion Introduction

概述

Fusion是Unity的一個新的高性能狀態同步網路庫。通過一個單一的API,它支持許多網路架構,如專用伺服器、客戶端托管和共享/分布式權限。

它在構建時考慮到了簡單性,可以自然地集成到普通的Unity工作流程中,同時也提供了先進的功能,如數據壓縮、客戶端預測和開箱即用的停滯補償。

Fusion實現了一個強大基於tick的模擬和狀態快照系統,並內置了調節功能。這使得Fusion能夠與非決定性程式庫(如Unity PhysX)無縫接軌。

除了基於雲端的共享模式,即每個客戶端對自己的對象有完全的權限(就像之前的PUN),Fusion還包括兩種完全的伺服器權限模式。

  • 嚴格的客戶/伺服器設置,有專門的無標頭Unity事件;或者,
  • 玩家即主機,其中一個客戶端既是伺服器又是客戶端(主機);

Back To Top

PUN, Bolt & Fusion 比較

盡管PUN和Bolt是可靠的網路解決方案,但它們的架構不允許進一步優化。Fusion融合了PUN和Bolt的所有最佳概念,同時以高性能的架構從頭開始構建,以實現開箱即用的最先進的功能。下方圖片總結了以下改進內容。

Table - PUN vs Bolt vs Fusion
PUN vs Bolt vs Fusion

Back To Top

最先進的功能

Fusion在基礎SDK中直接包含了最先進的功能。

  • Delta SnapshotsEventual Consistency狀態傳輸模式:Fusion可以傳輸:a)壓縮的完整狀態(使用新的和獨特的delta壓縮技術,意味著非常低的CPU負載);或者b)受控塊中的狀態變化(最終一致性)-在這種情況下,我們也啟用所有的利益管理變化。
  • * Client side prediction + server reconciliation*:使用內部本地數據緩衝區意味著Unity-held數據在渲染時始終保持滑順,調和和插值自動(或自定義)處理。
  • Lag Compensation:簡單的設置命中箱與全面的停滯補償查詢API相結合,可以與同步動畫相結合,以獲得精確的電競級射擊機制的刻度或子刻度。
  • RPCs:高性能的RPCs也是Fusion的API中的一流概念。
  • Made for Unity MonoBehaviours:遊戲狀態被完全定義為Unity行為的一部分。不需要寫序列化或任何其他復雜的代碼。它與所有Unity最新的預制件功能(如嵌套和變數)一起工作。

Back To Top

一庫多重架構

Fusion的開發是為了發展和取代現有的兩個用於Unity的Photon狀態轉移產品(Bolt和PUN);它包括所有支持的架構和更多!

  • Single Player: 本地使用相同的代碼,不需要連接。
  • Dedicated Server: 部署具有完全伺服器權限的Unity無標頭事件。
  • Client Hosted: 玩家托管伺服器+客戶端,內置打通功能,中繼作為後備功能,並可實現完全的主機遷移(由Photon Cloud提供支持)。
  • Shared Mode: 客戶對Photon Cloud的授權,由數據驅動的伺服器管理快照,使用 Eventual Consistency(EC)和興趣管理(AoI:興趣區域),可擴展到高玩家數量。
  • Shared Mode with Custom Server: Fusion的Photon伺服器插件可以完全訪問遊戲狀態,即使沒有Unity。編寫輕量級的伺服器遊戲邏輯只需一些努力就可實現。

Back To Top

預制構件

Fusion支持所有Unity最新的預制構件功能,而且開箱即用。

  • 預制件變數
  • 嵌套預制構件
  • 嵌套的聯網對象(非預制板)


To Document Top