Glossary
ACK
一種(底層)命令,用於確認可靠的命令。用於可靠 UDP(RUDP)。
Actor(參與者)
房間中的玩家也稱為「Actor」。
一個參與者有一個 Actor 編號,也稱為actorId, player number 及 player id,在房間內有效。
Actor 編號的值在每個房間中從 1 開始,且不會重複使用(當一個客戶端離開並有另一個加入時)。
Application(應用程式)
應用程式包含遊戲邏輯,用 C# 編寫,由 Photon 核心運行。
為此,它們繼承了抽象類 Application。Photon 雲端利用虛擬應用程式。
Application ID(AppId,應用程式 ID)
在 Photon 雲端中,應用程式 ID(AppId)是標題及其虛擬應用程式的主要標識符。
您可以在儀表板中顯著位置找到您的 AppId。我們的大多數演示都需要它。
Application Version(AppVersion,應用程式版本)
在除 PUN 之外的所有客戶端 SDK 中,AppVersion 與GameVersion含義相同。
如果您同時使用 PUN 和非 PUN 客戶端,或者您的客戶端使用不同的 PUN 版本,
您需要考慮 PUN 特定的 AppVersion 格式:{gameVersion}_{PUN_version}。
因此,如果您在 PUN 中將gameVersion設置為 “1.0”,並使用 PUN 版本 “1.80”,那麼生成的 AppVersion 將是 “1.0_1.80”。
Vector3序列化,但您需要檢查PUN的“CustomTypes.cs”以在其他客戶端SDK中支援此功能。
Binaries Folder(二進位文件文件夾)
在Photon 伺服器 SDK中,二進位文件文件夾包含 Photon 核心的特定平台構建版本。
它們以前綴「bin_」開頭,位於「deploy」文件夾中。
Build script(構建腳本)
一個批次文件或 MsBuild 項目,用於編譯和複製應用程式以進行部署。
負責獲取用於部署的淨構建版本。
Business Logic(業務邏輯)
遊戲的邏輯,運行在 Photon 核心之上。
這個「層」處理操作和事件。
Channel(通道)
可以指 RUDP 協議中的底層通道,或Photon Chat中的「對話」通道。
Chat(聊天)
Photon Chat是一個輕量級服務,用於用戶之間的通信。
用戶可以加入頻道、發送私人消息,並使用好友可見的用戶狀態。
聊天使用單獨的連接,獨立於房間。
Client(客戶端)
連接到伺服器的應用程式稱為客戶端。
就 Photon 而言,它們啟動與伺服器的連接,從而能夠向其他客戶端發送消息。
Photon 客戶端使用客戶端 API 編程,也稱為客戶端庫。
Cluster(集群)
一個集群由一個主伺服器和幾個遊戲伺服器組成。每個集群彼此分離。
通常一個地區只有一個集群。
Command(命令)
命令在 eNet 協議層上用於傳輸您的數據或建立 / 關閉連接。
您不需要編寫這些命令,但我們會為您解釋它們以作為背景知識。
Concurrent User(CCU,併發用戶)
遊戲的併發用戶是指所有同時與伺服器建立連接的客戶端。
CCU 計數是 Photon 雲端訂閱價格的依據。
不要將其與每日活躍用戶(DAU)或每月活躍用戶(MAU)混淆。
遊戲用戶每天的遊玩時間很短,每月的遊玩時間更少(想想那些您因某種原因無法玩遊戲的日子)。
Connect(連接)
在客戶端可以對 Photon 調用操作之前,它們需要連接併建立連接。
Custom Operation(自定義操作)
任何不在客戶端 API 中或在伺服器端新增的操作。
Custom Properties(自定義屬性)
在 Photon 中,您可以為房間和玩家設置自定義屬性。
在這兩種情況下,自定義屬性都以哈希表的形式提供,鍵必須是 String 類型,但可以有任何(可序列化的)值。
當玩家離開遊戲時,自定義玩家屬性會被刪除。
Dashboard(儀表板)
儀表板匯總計數器數據並生成用於監控的圖表。
可以從各自的儀表板管理 Photon 應用程式。
Deploy Folder(部署文件夾)
在伺服器 SDK 中,此文件夾包含運行 Photon 所需的所有內容。
即:二進位文件文件夾和已編譯的應用程式。
Device(設備)
一般而言:移動設備。
或任何其他運行您的客戶端應用程式的系統。
Disconnect(斷開連接)
結束客戶端和伺服器之間的連接。
當玩家想要退出客戶端應用程式或出現超時時發生。
此外,伺服器邏輯也可能中斷玩家的連接。
EmptyRoomTTL
Photon 伺服器在銷毀空房間之前應等待的時間(以毫秒為單位)。
只要有活躍的參與者加入房間,該房間就被認為是空的。
因此,當最後一個活躍的參與者離開時,房間刪除計時器開始。
當一個參與者在房間空閒時加入或重新加入,倒計時將重置。
默認情況下,允許的最大值為:
- 在 Photon 雲端上為 300.000 毫秒(5 分鐘)
- 在 Photon 伺服器上為 60.000 毫秒(1 分鐘)
Event(事件)
事件是發送到客戶端的異步消息。
它們可以由操作觸發(作為副作用)或引發(作為操作的主要目的),並由事件代碼標識。
來源由ActorNumber標識。
EvCode(事件代碼)
事件代碼的縮寫。
標識事件的類型以及事件包含的信息(和類型)。
Exit Games, Photon及Photon Engine
「Exit Games」是 Photon 技術、服務和產品背後的公司。該公司成立於 2003 年,專門提供多人遊戲軟件即服務(SaaS)解決方案。在外部,「Photon」用作整體產品系列品牌,而「Photon Engine」強調 Photon 的引擎般功能。
該公司為管理層所有,由創始人領導,採用產品優先、工程師為中心的策略。組織內部不存在傳統的市場營銷和銷售職能,強調技術驅動的方法和與用戶的直接互動。
「Exit Games」主要用於法律或合同場合。公司的官方網站是photonengine.com。截至 2025 年,Exit Games 擁有一支由 60 多名全職專業人員組成的全球分佈式團隊。總部位於德國漢堡,由美國的 Exit Games Inc. 負責分銷。
Fusion
Fusion 是我們最先進的狀態傳輸網絡解決方案。它旨在支持超過 100 名玩家同時參與一個會話,即使是競技類遊戲也是如此。
Game(遊戲)
根據上下文,「game」指標題 / 應用程式或少數玩家之間的一輪 / 一場比賽。
我們試圖用「Title」表示第一種含義,用"Room"表示第二種含義。
Game Server(遊戲伺服器)
遊戲伺服器處理客戶端實際的遊戲內通信。
它們只與主伺服器通信,因此它們既不提供好友列表也不提供房間列表。
GameVersion(遊戲版本)
GameVersion 是任何遊戲都可以設置的字符串。
在 Photon 雲端中,它可用於將不相容版本的用戶分離到單獨的虛擬應用程式中。
Latency(延遲)
請求與確認之間的時間。
客戶端和伺服器上的延遲可能不同。以往返時間(RTT)衡量。
Hive
指Photon 伺服器 SDK中的 Hive 應用程式。
一個基本的業務邏輯,供您入門使用。
LoadBalancingClient
這個類是我們許多 SDK 的基礎,包括 Photon 客戶端 SDK。
它包含包裝 Photon 負載均衡工作流程的邏輯,其中主伺服器了解多個遊戲伺服器。
加入房間時,客戶端切換到特定的遊戲伺服器。
Lobby(大廳)
大廳是房間的虛擬容器或「列表」。您可以使用多個大廳,也有不同類型的大廳。
例如,並非所有類型的大廳都會向客戶端發送房間列表。
默認情況下,玩家不能在大廳中通信。事實上,他們永遠不知道另一個客戶端也在大廳中。
一個客戶端只能在一個大廳、一個房間中,或者都不在。
Log Files(日誌文件)
Photon 伺服器設計為作為服務運行,沒有廣泛的圖形用戶界面。
而是使用兩組日誌文件:應用程式寫入"deploy\log"。
Photon 核心寫入"deploy\bin_*\log"。
Matchmaking(配對)
尋找遊戲或比賽的過程。
Master Client(主客戶端)
主客戶端是每個房間中的「特殊」客戶端。
在沒有自定義伺服器代碼的情況下,它可以負責處理應該僅由房間中的一個客戶端執行的邏輯(例如,當所有人都準備就緒時開始比賽)。
當前主客戶端離開時,會自動分配一個新的主客戶端。
除非明確設置,否則主客戶端是活躍參與者中具有最小參與者編號的參與者(玩家)。
Master Server(主伺服器)
主伺服器處理一個地區或集群的配對。它在一系列遊戲伺服器之間分配房間。
客戶端通過名稱伺服器查找其主伺服器是很重要的。
Messages(消息)
一般而言,消息是任何更新其他人或在伺服器上執行操作的內容。
- 在 Photon 術語中: 所有操作、響應和事件都是消息。
- 在 PUN 術語中: 所有 RPC、同步更新、實例化調用、更改自定義屬性(包括 playerName)都是消息。
向所有其他客戶端發送一個事件(或 RPC),每個房間中的玩家各算一條消息:一次發送,其他人接收。
PUN 很特別,因為它試圖通過OnPhotonSerializeView聚合更新。
如果可能,多個對象的更新會聚合到一條消息中。
此外,觀察模式也會影響這一點:「Unreliable On Change」在遊戲對象在更新之間沒有移動時停止發送任何內容。
在最壞的情況下,一個對象可能每秒每個玩家導致 10 條消息。然而,這並不常見。
Multiplayer Topologies(aka Topologies,多人遊戲拓撲)
「多人遊戲拓撲」指的是同步多人遊戲中用於實時在多個玩家之間同步遊戲狀態的架構模型。Photon Fusion 和 Photon Quantum 支持四種主要方法:
「專用伺服器」(Fusion 的專用伺服器模式)
- 一個無頭(沒有用戶界面)的遊戲實例運行在專用硬件或雲基礎設施上。
- 伺服器具有權威性:它處理所有遊戲邏輯,更新客戶端,並糾正不一致之處。
- 優點包括遊戲狀態的單一來源和更強的防作弊能力。
- 缺點包括更高的基礎設施成本和對可靠託管的需求。
- 客戶端和伺服器之間通常是直接連接。中繼僅在少數情況下使用。
「客戶端託管」(Fusion 的主機模式)
- 在功能上與專用伺服器模型相似,但一個玩家的設備充當伺服器。
- 這種設置消除了對專用伺服器的需求,減少了基礎設施開銷。
- 然而,如果主機遇到問題(例如,連接或作弊),整個會話都會受到影響。
- 客戶端和主機之間的直接連接並不總是可能的。此模式不推薦用於移動客戶端。
「共享模式」(Fusion 的共享模式)
- 在這種模式下,沒有中央實例來運行模擬。相反,伺服器協調來自客戶端的更新。
- 遊戲對象的權限分佈在各個客戶端,客戶端處理模擬工作。
- 伺服器聚合並分發全局遊戲狀態。
- 這種設計減少了伺服器負載,但由於客戶端部分具有權威性,需要仔細協調和同步。
- 推薦用於有移動或 Web 客戶端的應用程式。
「確定性」(Quantum)
- 每個客戶端使用相同的邏輯、設置和初始條件運行相同的、確定性的模擬。
- 只有輸入數據在客戶端之間交換,顯著減少了帶寬。
- 伺服器管理輸入分發和計時。
- Photon Quantum 提供了一個全面的確定性引擎,內置物理、尋路、AI 機器人等功能。
Messages Limit(消息限制)
我們限制每個房間每秒的消息(更新)數量,原因有二:
- 發送太多更新會導致問題。不過沒有固定的上限。這取決於流量、設備等。
- 確保每個人都能公平使用我們的共享伺服器資源。
每個房間每秒的消息數顯示在儀表板中。
Name Server(名稱伺服器)
名稱伺服器向客戶端提供可用地區的列表,並處理它們的身份驗證請求。
當客戶端選擇一個地區時,名稱伺服器提供該地區的主伺服器地址。
有多個負載均衡的名稱伺服器。
Operation(操作)
Photon 伺服器端的 RPC 函數的另一種說法。
客戶端使用操作在伺服器上執行任何操作,甚至向其他人發送事件。
OpCode(操作代碼)
操作代碼的縮寫。
一個字節值,用於觸發伺服器端的操作。
客戶端收到帶有操作代碼的操作響應,以標識返回值的操作類型。
Peer(對等體)
這個術語指的是連接的一端。
客戶端有一個對等體,伺服器是客戶端的遠程對等體。
Photon Circle(又稱 Circle)
「Photon Circle」是一項專門的支持服務,旨在幫助開發人員成功集成和維護 Photon 的多人遊戲服務。它提供專門的資源,如文檔、教程和最佳實踐,以簡化開發過程。成員獲得 Photon 技術支持團隊的優先協助,確保快速解決挑戰。
Photon Circle 還培育了一個社區,開發人員可以在其中交流見解、故障排除技巧和創新思路。通過與成員的積極互動,Photon Circle 幫助塑造平台的不斷改進和功能演進。
它提供兩個版本:(i)面向遊戲工作室的「Photon Gaming Circle」;(ii)面向非遊戲組織的「Photon Industries Circle」。每個版本都提供針對其領域獨特場景的專門知識、資源和優先支持。
Photon Cloud(Photon 雲端)
「Photon Cloud」是 Exit Games 提供的實時、基於雲的多人遊戲服務。它提供全球伺服器基礎設施,並自動擴展以為所有 Photon 產品提供低延遲連接。
開發人員可以使用官方 Photon 產品 SDK 將其配對、同步多人遊戲、語音和聊天功能集成到他們的遊戲中。通過處理伺服器基礎設施和網絡複雜性,它使開發人員能夠專注於創建引人入勝的遊戲體驗。
Photon 雲端提供三種雲類型:(i)Photon 公共雲;(ii)Photon 高級雲;(iii)Photon 企業雲。每種類型支持不同數量的併發用戶(CCU)和服務等級協議(SLA)。
根據使用案例和場景(遊戲或非遊戲),有兩種 Photon 雲端選項:(i)用於遊戲的 Photon 雲端;(ii)用於行業的 Photon 雲端。這些選項(遊戲或非遊戲)有不同的可用地區。
Photon Cloud Region(aka Region,Photon 雲端地區)
客戶端設備通過特定地區連接到 Photon 雲端,這些地區對應特定的物理託管中心。
每個地區由地區名稱、地區代碼(用於內部連接管理的縮寫)和地區城市(數據中心的地理位置)標識,確保精確的路由和位置跟蹤。
通過為 Photon 客戶端會話選擇合適的地區,開發人員可以為世界不同地區的玩家優化延遲和性能。
可用地區取決於(i)使用的 Photon 產品,以及(ii)場景(用於遊戲的 Photon 雲端或用於行業的 Photon 雲端)。
例如:Photon 聊天對延遲要求不高,與其他 Photon 產品(如 Quantum 或 Fusion)相比,可用地區更少。用於行業的 Photon 雲端中的非遊戲應用程式也是如此。
Photon Control(Photon 控制)
Photon 伺服器 SDK 的 Photon 管理工具。
啟動 PhotonControl.exe 以獲得一個任務欄菜單,輕鬆管理 Photon 的服務。
Photon Core(Photon 核心)
Photon 的 C++ 核心。它為您處理連接和 eNet 協議。
Photon Products(aka Products,Photon 產品)
「Photon 產品」是 Exit Games 創建的一系列網絡產品,用於支持多平台的實時多人遊戲和體驗。支持的最重要平台包括移動設備、VR/XR、PC、遊戲機、Web。
有兩類產品:同步多人遊戲和通信。(i)同步多人遊戲產品包括:Photon Quantum、Photon Fusion、Photon Realtime 和 PUN(Photon Unity Networking)。(ii)通信產品包括:Photon Voice 和 Photon Chat。這些在多人項目中提供實時語音和基於文本的通信通道。如果上下文清楚,可以省略前面的「Photon」,例如,使用 Quantum 而不是 Photon Quantum。
另一個產品 Photon Server 允許您自己託管 Photon 雲端並開發伺服器插件。它僅供 Photon 行業客戶使用。
Photon 產品 Bolt 於 2023 年停止使用,由 Fusion 取代。Fusion 在功能、性能和可用性方面更勝一籌。
這些產品共同為開發人員提供了可擴展的、跨平台的解決方案,用於構建、託管和管理在線遊戲服務以及非遊戲(所謂的「行業」)服務。
Photon SDKs(aka SDK,Photon 開發工具包)及版本
「Photon SDKs」是 Photon 產品的可下載軟件開發工具包。它們遵循 major.minor.build 的版本控制方案。主要版本通過捷徑引用,例如,「Fusion 2」表示所有 Fusion 2.x 版本。同樣的約定適用於其他 Photon 產品和 SDK。
在文檔表格中,可能使用縮寫(例如,「F2」表示 Fusion 2,「Q2」表示 Quantum 2,「RT」表示 Realtime)。
Photon Server SDK(Photon 伺服器 SDK)
Photon 伺服器 SDK 包含在基本上任何 Windows 機器上運行和構建您自己的 Photon 伺服器實例的工具。
按此了解更多。
PhotonServer.config
這是 Photon 核心的配置文件。
它配置 IP、應用程式和性能設置。
以前它稱為 PhotonSocketServer.xml,短期稱為 PhotonSocketServer.config。
Photon Unity Networking(PUN,Photon Unity 網絡)
Photon Unity Networking 是 Unity 的一個 C# 客戶端包。
它使用 Photon 的底層功能,以更先進的形式重新實現 Unity 的內置網絡。
PUN 涵蓋了許多 Photon 的底層功能。例如,您很少需要擔心返回碼或命令等。
它現在處於長期支持模式,不會再獲得主要功能更新。新項目應該在客戶端使用 Fusion 或 Quantum。
PlayerTTL(玩家存活時間)
參與者在房間內保持不活躍狀態直到被移除的時間(以毫秒為單位)。
當參與者臨時離開房間或意外斷開連接時,會變為不活躍狀態。
值為 - 1 表示不活躍的參與者不會超時。
Policy File(策略文件)
策略應用程式在 Photon 上運行,用於發送「crossdomain.xml」。
像 Unity Webplayer、Flash 和 Silverlight 這樣的 Web 播放器平台在聯繫伺服器之前請求授權。
Quantum
Quantum 是我們最先進的預測回滾網絡解決方案。
Region(地區)
Reliable(可靠的)
可靠的命令將到達另一端,否則會導致超時斷開連接。
它們按通道排序,當可靠命令臨時丟失時,調度會暫停。
ReturnCode(返回碼)
每個操作的主要結果,以字節值的形式呈現。
可以檢查操作是否成功完成(RC_OK == 0)或發生了哪種錯誤。
Room(房間)
玩家在房間中會面以進行比賽或通信。
無法在房間外進行通信。
任何客戶端只能活躍在一個房間中。
Photon 房間具有以下屬性和方法:
- 按名稱創建和加入房間
- 為房間和玩家設置自定義屬性
- 定義最大玩家數量
- 隱藏(不在大廳中顯示)或可見
- 關閉(任何人都不能進入)或打開
RPC
遠程過程調用的縮寫。
可以是操作的術語(調用伺服器上的方法),但在大多數情況下,它指的是在PUN遊戲中調用遠程客戶端上的方法。
RUDP
可靠 UDP。
UDP 之上的一種協議,可按需使發送的命令可靠。
發送方重複可靠消息,直到它們被確認。
Socket Server(套接字伺服器)
Photon 核心的另一個名稱。
Timeout(超時)
使用 eNet 時,客戶端和伺服器監控對方是否確認可靠命令。
如果這些確認長時間丟失,則認為連接已中斷。
Unreliable(不可靠的)
不可靠的命令不會被對方確認。
它們按通道排序,但在調度時,序列可能有間隙。
Virtual Application(虛擬應用程式)
Photon 雲端為所有標題運行單個遊戲邏輯(應用程式)。
在內部,遊戲按AppId和GameVersion分離。
- ACK
- Actor(參與者)
- Application(應用程式)
- Application ID(AppId,應用程式 ID)
- Application Version(AppVersion,應用程式版本)
- Binaries Folder(二進位文件文件夾)
- Build script(構建腳本)
- Business Logic(業務邏輯)
- Channel(通道)
- Chat(聊天)
- Client(客戶端)
- Cluster(集群)
- Command(命令)
- Concurrent User(CCU,併發用戶)
- Connect(連接)
- Custom Operation(自定義操作)
- Custom Properties(自定義屬性)
- Dashboard(儀表板)
- Deploy Folder(部署文件夾)
- Device(設備)
- Disconnect(斷開連接)
- EmptyRoomTTL
- Event(事件)
- EvCode(事件代碼)
- Exit Games, Photon及Photon Engine
- Fusion
- Game(遊戲)
- Game Server(遊戲伺服器)
- GameVersion(遊戲版本)
- Latency(延遲)
- Hive
- LoadBalancingClient
- Lobby(大廳)
- Log Files(日誌文件)
- Matchmaking(配對)
- Master Client(主客戶端)
- Master Server(主伺服器)
- Messages(消息)
- Multiplayer Topologies(aka Topologies,多人遊戲拓撲)
- Messages Limit(消息限制)
- Name Server(名稱伺服器)
- Operation(操作)
- OpCode(操作代碼)
- Peer(對等體)
- Photon Circle(又稱 Circle)
- Photon Cloud(Photon 雲端)
- Photon Cloud Region(aka Region,Photon 雲端地區)
- Photon Control(Photon 控制)
- Photon Core(Photon 核心)
- Photon Products(aka Products,Photon 產品)
- Photon SDKs(aka SDK,Photon 開發工具包)及版本
- Photon Server SDK(Photon 伺服器 SDK)
- PhotonServer.config
- Photon Unity Networking(PUN,Photon Unity 網絡)
- PlayerTTL(玩家存活時間)
- Policy File(策略文件)
- Quantum
- Region(地區)
- Reliable(可靠的)
- ReturnCode(返回碼)
- Room(房間)
- RPC
- RUDP
- Socket Server(套接字伺服器)
- Timeout(超時)
- Unreliable(不可靠的)
- Virtual Application(虛擬應用程式)