Photon Cloud or Photon Server?
Photon Cloud
是一個全面管理的軟體服務(SaaS)解決方案。
您可以完全專注於您的應用程序客戶端,而主持、伺服器操作和擴展都是由Exit Games負責。
Photon Server
是一個企業內部的伺服器應用程序,您可以在您選擇的機器上運行和主持。
完全可定制,授權控制讓您可以自由地設置您自己的多人遊戲後台。
Photon Cloud運行在Photon伺服器上。
<img alt="Photon Software Layers" class="no-border" src="data:image/gif;base64,R0lGODdhAQABAPAAAMPDwwAAACwAAAAAAQABAAACAkQBADs=" data-src="/docs/img/photon-product-software-layers.jpg">
<figcaption>
Photon多人遊戲後端
</figcaption>
比較
Photon Cloud | Photon 伺服器 | |
---|---|---|
伺服器管理 | 再也沒有伺服器引發的麻煩。 放鬆,讓我們專家負責運行伺服器。 | 您將獲得為您的應用程序運行Photon的全部權限。 您可以運行自己的伺服器或租用合適的伺服器,並確保它們對您的用戶可用。 Photon的日誌和性能計數器提供所有關於性能和穩定性的必要信息。 |
靈活性 |
Photon Cloud可以自動擴展,以適應您所有的用戶。 使用我們的SDK,您的客戶端應用程序可以建立一個有效的負載平衡工作流程。 |
我們的負載平衡是以源代碼形式提供。 程式扎實的基礎,可以跨越多個伺服器進行擴展。 由您負責為您的客戶運行正確數量的伺服器。 |
遊戲邏輯 | 通過Photon Realtime、Photon Voice、Photon Chat和PUN,您可以獲得用於所有多人遊戲類型的金鑰解決方案。 每一個 可供免費下載客戶端SDK包含多個源碼樣本,可讓您快速開始使用Photons API 進行同步和異步遊戲和應用。 | 伺服器的邏輯可以在C#中完全定制。 幾個範例應用程序的源代碼與免費伺服器SDK一起提供給您的應用程序一個高性能的現成框架。 受益於我們的協議和概略基本功能,可添加您可能缺少的任何功能。 |
立即開始 | Photon Cloud 讓您立即注冊並立即運行您的應用程序。 不需要設置。 不需要伺服器。 | 下載後,在不到5分鐘內啟動您的Photon伺服器。 Photon的設置非常簡單,可以在本地和遠程運行。 |
認證 | 在各種訂閱中選擇,與您的月度活躍用戶數相匹配。 無論您是獨立公司、初創公司還是AAA工作室,您都會找到一個匹配的計劃。 Photon Realtime有一個免費計劃,最多可容納20個CCU。 | CCU.認證可以一次性購買或訂閱,並以下載方式提供。 使用企業認證主持任何數量的伺服器和應用程序。 Photon伺服器可提供最多100個CCU的免費許可証。 |
查看模式 | 查看模式 | |
Features | ||
虛擬應用程序 | ||
伺服器名稱 | ||
Supported Products | ||
Photon Realtime | ||
PUN | ||
Photon 對話 | ||
Photon 語音 | ||
Photon Bolt | ||
Authentication Providers | ||
自訂 | ||
Oculus | ||
Vive | ||
Steam | ||
Xbox | ||
PlayStation | ||
Nintendo |
自v4.0.29.11263版本以來的重要變更
Photon Cloud會不斷地進行修復、增強或新功能的更新。
盡管我們努力發布Photon Server SDK的新版本以趕上Photon Cloud,但兩者不可能一直保持同步。
在此,我們列出了自Photon Server SDK的最新公開版本(v4.0.29.11263)以來Photon Cloud的重要變更。
此外,如果您同時針對Photon Cloud和Photon Server環境,或者從一個環境切換到另一個環境,這份清單將給您提供可能破壞您的遊戲的內容。您也可以找到解決方法的建議。
在v4.0.29.11263中缺少的Photon Cloud功能
一旦房間被創建,PlayerTTL和EmptyRoomTTL不能被改變。它們是後來作為已知的房間屬性添加的。
"刪除空屬性 "選項不可用(
RoomOptions.DeleteNullProperties
)。具有空值的屬性將不會在伺服器上被刪除。"廣播屬性改變 "選項不可用(
RoomOptions.BroadcastPropsChangeToAll
)。除非使用CAS,否則調用SetProperties的客戶端將不會收到PropertiesChange事件。CAS是一種變通方法,使Photon Cloud和Photon Server之間同步。GetGameList操作(也稱為 "GetCustomRoomList "或 "GetRoomList",不要與GetGameList WebRPC 或[PUN Classic的GetRoomList](https://doc-api.photonengine.com/en/pun/v1/classphotonnetwork. html#aeef2085375accb7d4bc88e60cbe15eb9)混淆),在SQL大廳無法使用。
V4.0.29.11263版本中已知的問題
在客戶端或認証提供者沒有設置的情況下,伺服器不返回UserId。該值應該是在伺服器上生成的GUID。這可能導致玩家無法加入房間,錯誤代碼為-2(錯誤信息。"加入失敗。UserId沒有設置,checkUserIdOnJoin=true期望有UserId。")。 作為一個變通方法,如果它沒有被用戶明確設置,客戶端的C# SDK現在發送一個GUID作為UserId。
另外,在認証過程中,如果Nickname沒有被認証提供者設置,伺服器將返回一個空的Nickname,它將覆蓋任何先前在客戶端設置的值。作為一種變通方法,您可以在連接後設置一個Nickname。
這個值將在房間內使用,以後可以改變(和同步)。
伺服器不支持1.8版本的序列化協議。如果您試圖從一個相對較新的、以1.8為默認值的客戶端SDK連接到自帶的Photon伺服器,連接將會失敗。在C# SDK中,客戶端將以
DisconnectByServerReasonUnknown
被斷開連接。解決方案是在連接前將版本設置為1.6。設置loadBalancingClient.LoadBalancingPeer.SerializationProtocolType
為SerializationProtocol.GpBinaryV16
。在PUN2中,它應該是PhotonNetwork.NetworkingClient.LoadBalancingPeer.SerializationProtocolType
。伺服器允許同一對象被添加到同一興趣組,這導致多次收到該對象發送到該興趣組的同一事件。
Ther伺服器不完全支持快速重合功能(
ReconnectAndRejoin
),因為它無法執行會話令牌。