This document is about: FUSION 2
SWITCH TO

Dedicated Servers

Level 4

概述

Fusion支援使用客戶端-伺服器拓撲開發遊戲。在這種情況下,專用遊戲階段執行個體在主機提供者提供的專用伺服器上運行,玩家透過客戶端連線到該伺服器

利用專用伺服器拓撲涉及幾個部分,包括:

  • Fusion Headless組建;
  • 在專用伺服器上運行的專用遊戲階段執行個體;
  • 您首選主機提供者的專用伺服器機器;
  • 帶有Fusion Cloud外掛程式的Photon Cloud;及,
  • 將連線到專用遊戲執行個體的客戶端。
Dedicated Server Overview Flow
專用伺服器概述流程
Photon Server SDK與Fusion中的專用伺服器拓撲無關!

主機模式vs伺服器模式

在Fusion中開發具有客戶端-伺服器架構的第一步,是在Host ModeServer Mode之間進行選擇。兩者都提供相同的功能集,就程式碼庫而言,它們的工作方式也完全相同。唯一需要注意的區別是:

  • Host Mode下,「伺服器」將具有狀態授權,玩家將具有輸入授權;而,
  • Server Mode下,「伺服器」將具有狀態授權,但 沒有玩家 或輸入授權附加到它。

這意味著開發可以從Host Mode開始,因為測試更簡單,一旦專案團隊準備好處理在一個或多個專用遊戲伺服器上,運行遊戲階段執行個體所需的伺服器編排方面問題,就可以轉移到Server Mode

專用伺服器

要在Server Mode下運行Fusion,需要一個專用伺服器來託管無周邊遊戲構建。

Fusion環境中有兩種類型的專用伺服器:

  1. 專用遊戲階段伺服器;及,
  2. 專用Photon Cloud伺服器。

專用遊戲階段伺服器

主機提供者提供專用的遊戲階段伺服器來託管無周邊遊戲構建。要根據玩家的加入請求來啟動遊戲階段執行個體,需要涉及編排服務(通常也由主機提供者提供)。

專用Photon Cloud伺服器

訂閱Photon PUBLIC CLOUD就足夠了!
Photon ENTERPRISE CLOUD訂閱僅在存取只在專用環境中提供的功能和服務時必需。

專用 Photon Cloud 伺服器由Photon提供。要申請一個,需要Enterprise訂閱。專用Photon Cloud伺服器為遊戲需求提供並分配專用的 雲端 資源。

Photon Cloud處理:

  • 連線處理;
  • 中繼回退;及,
  • 伺服器遷移的狀態備份;

此外,企業訂閱還提供:

  • 運行Fusion Cloud外掛程式自訂版本的能力(尚不可用);
  • 專用IP;
  • SLA;
  • 24/7 NOC團隊;
  • 更多功能。

要在Server Mode下運行遊戲,需要一個專用的遊戲伺服器以及Photon Fusion Cloud訂閱。

遊戲階段主機提供者

受歡迎的主機提供者包括但不限於:

當然,如果需要,也可以使用自訂解決方案和獨立的Docker執行個體。

遊戲階段執行個體

根據編排服務的請求,遊戲階段執行個體在專用伺服器上啟動。此過程工作獨立於Fusion,並與遊戲階段主機提供者和編排服務自己的系統相關聯。請聯絡他們並閱讀他們關於這一主題的檔案。

建立無周邊組建

Fusion Headless組建支援Unity能夠組建的所有64位元平台。要建立無周邊組建,只需:

  1. 在Unity編輯器中導航到File > Build Settings...
  2. 選擇Target Platform
  3. 確保Architecture設定為64位元。
  4. 按一下Build
Dedicated Server Build Platforms in Unity Build Settings
Unity組建設定中的專用伺服器組建平台

遊戲伺服器編排

Photon並提供專用的遊戲階段伺服器編排。編排服務通常由遊戲階段主機提供者自己提供,並專注於維護連結到其系統的遊戲伺服器二進位檔案,以進行管理。

伺服器編排是指管理Game Servers的方式;這包括根據需要加強它們,以及根據玩家的要求在它們上建立遊戲階段。因此,伺服器編排服務的主要目的可以概括為一組規則或系統,這些規則或系統將控制玩家加入和玩遊戲的伺服器的可用性。這也將有助於在玩家需求較低時(例如在午夜或白天)透過節省計算能力來盡可能降低成本。

Orchestration Service負責:

  1. 存儲Game Server組建的副本,以便可以使用它進行部署。
  2. 管理能夠運行Game Server的機器基礎設施。每個提供者使用的模型可能會有所不同,可以是裸機伺服器或虛擬機器,甚至是Docker容器。這裡沒有對錯模型之分,因為它們適合具有不同伺服器環境要求的不同遊戲的需求。
  3. 提供一個生成和銷毀控制系統,使開發人員能夠選擇部署哪個Game Server,在哪裡(通常可以部署在多個地區),以及使用哪些設定(讓其適合玩家)。此系統可以透過API手動管理,也可以透過一組觸發規則自動管理。

從Fusion的角度來看,這一切都是透明的,因為在這個管理級別,它正在處理如何運行執行個體以及在哪裡運行,因此不會直接影響開發。
另一方面,大多數編排和主機提供者利用Game Server本身的內部整合來提取以下資訊:

  • 關於比賽的資訊,例如遊戲模式或地圖;
  • 當前玩家數量和最大玩家數量;
  • 伺服器健康狀態(例如啟動、準備好供玩家使用、關閉);
  • 及更多資訊。

編排系統使用這些資訊,以了解哪些伺服器可用於加入,哪些伺服器可以回收,並建立隨時間變化的統計資料,例如在一天中有更多活躍玩家的時期內,某些地區將增加的伺服器數量。

Fusion SDK提供了所有資訊和方法,輕鬆公開它們,以方便與每個提供者的SDK整合。

Back to top