This document is about: VOICE 1
SWITCH TO

Photon Voice 1 is the original and first major version of Photon Voice. It is now replaced by Photon Voice 2 which is refactored and enhanced. We highly recommend starting new projects with Photon Voice 2 and if possible migrating existing ones from Photon Voice 1 to Photon Voice 2. Photon Voice will be maintained for the coming months. We will fix important bugs and support new Unity versions but new features will be added only to Photon Voice 2.

Glossary

ACK

一個(低等級的)命令,以確認可靠的命令。用於可靠UDP (RUDP)。


演員

在一個房間中的玩家也稱為一個「演員」。 一個演員有一個演員號碼,也稱為 演員ID玩家號碼玩家ID,在房間中有效。 在各個房間中針對演員號碼的值從1開始,並且不被重新使用(當一個客戶端離開而另一個客戶端加入時)。


應用程式

應用程式含有遊戲邏輯,在C#中撰寫,並且由Photon核心運行。 它們針對這個來擴展了抽象層級應用程式。Photon雲端使用虛擬應用程式


應用程式ID (AppId)

在Photon雲端中,應用程式ID (AppId)對於一個標題及其虛擬應用程式而言是主要識別碼。 您可以在儀表板中的明顯地方找到您的應用程式ID。我們大多數的展示範例都需要它。


應用程式版本(AppVersion)

在所有的客戶端SDK之中(除了PUN以外),應用程式版本與遊戲版本相同。

If you use PUN and non-PUN clients at the same time or if you have clients with different PUN versions, you need to take into consideration PUN's specific AppVersion format: {gameVersion}_{PUN_version}. So if you set the gameVersion to "1.0" in PUN and use PUN version "1.80" then the resulting AppVersion is "1.0_1.80".

If you mix PUN and non-PUN clients, be aware that PUN registers a few Unity related classes as Custom Types. That allows serialization of Unity's Vector3 but you need to check the "CustomTypes.cs" of PUN to support this in other client SDKs.

二進位資料夾

Photon伺服器SDK中,二進位資料夾含有Photon核心的特定平台的組建。 它們的前置詞是「bin_」並且在「部署」資料夾中。


組建指令碼

一個批次檔案或MsBuild專案以編譯及複製應用程式來進行它們的部署。 為了部署來取得一個乾淨的組建。


商業邏輯

一個遊戲的邏輯,其在Photon核心的頂層運行。 這個「層」處理操作及事件。


頻道

可以指RUDP協定中的低等級頻道,或Photon聊天中的「交流」頻道。


聊天

Photon聊天是針對使用者之間的交流的一個輕量的服務。 使用者可以加入頻道,發送私人訊息,並且使用針對朋友可用的使用者狀態。 聊天使用一個分離的連線,並且獨立於房間。


客戶端

連線到一個伺服器的應用程式被稱為客戶端。 在Photon的案例中,它們初始化一個連線到一個伺服器,其啟用它們以發送訊息給其他客戶端。 Photon客戶端以一個客戶端API來編程,也稱為客戶端程式庫。


叢集

一個叢集由主要伺服器及多個遊戲伺服器來組成。各個叢集與彼此分離。 經常而言一個地區只有一個叢集。


命令

命令用於eNet協定層之上,以傳輸您的資料或建立/關閉連線。 您將不會撰寫這些,但是為了您的背景知識,我們將說明它們。


並行使用者(CCU)

一個遊戲的並行使用者是在同一時間連線到一個伺服器的所有客戶端。 CCU計數是Photon雲端訂閱的價格的基礎。

請勿把這個與每日活躍使用者(DAU)或每月活躍使用者(MAU)相混淆。 遊戲的使用者每天只遊玩少量的時間,每月玩得更少(只要想想您因為某些原因而不能玩的日子)。


連線

在客戶端可以在Photon上調用操作之前,它們需要連線及建立一個連線。


自訂操作

不在客戶端API中的,或伺服器端的新的操作。


自訂屬性

在Photon中,您可以針對房間及玩家來設定自訂屬性。 在兩個案例中,提供自訂屬性為可雜湊的,並且鍵值必須是字串類型,但是可以有任何(可序列化的)值。

在玩家放棄一個遊戲時,將刪除自訂屬性。回合制「非同步」遊戲將保持它們。


儀表板

儀表板加總計數器資料,並且針對監測目的來生成圖表。 可以從它們各自的儀表板來管理Photon應用程式。

即時應用程式儀表板


部署資料夾

在伺服器SDK中,這個資料夾含有所有運行Photon所需要的東西。 舉例而言:二進位資料夾及已編譯應用程式。


裝置

一般而言:一個行動裝置。 或任何其他系統以運行您的客戶端應用程式。


中斷連線

結束一個客戶端與伺服器之間的連線。 發生在玩家希望離開客戶端應用程式或發生一個逾時的時候。 同時,伺服器邏輯會中斷連線玩家。


空房間TTL

Photon伺服器在處理掉一個空房間之前應該等待的,以毫秒為單位的時間量。 當沒有活躍中演員加入到一個房間時,該房間視為空。 所以房間刪除計時器在最後一個活躍中演員離開時開始計時。 當一個演員在房間為空時加入或重新加入房間,將重新設定計時器。

預設允許的最大值是:

  • 在Photon雲端上300.000毫秒(5分鐘)
  • 在Photon伺服器上60.000毫秒(1分鐘)

事件

事件是發送到客戶端的非同步的訊息。 它們可以由操作來觸發(作為副作用)或引發(作為操作的主要目的),並且由一個事件程式碼來識別。 原初被識別為演員號碼.。

Ev程式碼

事件程式碼的縮寫。 識別事件類型,以及事件含有的資訊(及類型)。


Fusion

Fusion是我們最先進的狀態傳輸網路解決方案。它的目標是在一個遊戲階段中支援超過100名玩家,甚至支援競爭性遊戲。


遊戲

取決於前後脈絡,「遊戲」指一個標題/應用程式或幾名玩家之間的一個回合/對戰。 我們嘗試將「標題」連結到第一個意思,並且針對第二個意思使用「房間」


遊戲伺服器

遊戲伺服器針對客戶端來處理實際的遊戲中通信。 它們只與主伺服器通信,所以它們不提供朋友清單及房間清單。


遊戲版本

遊戲版本是任何遊戲可以設定的字串。 在Photon雲端中,它可以用來分離不相容版本的使用者到分離的虛擬應用程式


延遲

在請求與ACK之間的時間。 在客戶端及伺服器上可能不同。以往返時間(RTT)來測量。


Hive

Photon伺服器SDK中的Hive應用程式。 一個基礎的商業邏輯以讓您開始。


載入平衡客戶端

這個類別是我們許多SDK的基礎,包含Photon客戶端SDK 它含有邏輯來包裝Photon的載入平衡工作流程,在該流程中主伺服器知道幾個遊戲伺服器。 當加入一個房間時,客戶端切換到一個特定遊戲伺服器。


大廳

大廳是一個虛擬容器,或房間的「清單」。您可以使用多個大廳,並且也有不同類型的大廳。 舉例而言,不是每個大廳類型都會發送房間清單到客戶端。

預設下,玩家不能在大廳中通信。事實上,他們永遠不會知道另一個客戶端也在大廳中。 一個客戶端只能在一個大廳中、一個房間中或都不是。


記錄檔案

Photon伺服器運行為服務,並且沒有廣泛的GUI。

取而代之地使用兩個記錄檔案的集:應用程式寫入「deploy\log」。 Photon核心寫入「deploy\bin_*\log」。


對戰配對

找到一個遊戲或對戰的過程。


主客戶端

主客戶端是各個房間的一個「特別」的客戶端。 在沒有自訂伺服器程式碼的情況下,它可以負責處理只應該由一個房間中的一個客戶端執行的邏輯(舉例而言,在所有玩家都準備好時開始一個對戰)。 在前者離開時自動指派一個新的主客戶端。 除非明確設定,主客戶端是在活躍中演員中演員號碼最小的演員(玩家)。


主伺服器

主伺服器針對一個地區或叢集來處理對戰配對。它在一系列遊戲伺服器中分配房間。 重要的是客戶端透過名稱伺服器來查找它們的主伺服器。


訊息

訊息一般是指更新其他人或在伺服器上執行某些操作的任何事情。

  • 在Photon術語: 所有操作、回應及事件是訊息。
  • 在PUN術語: 所有RPC、同步更新、具現化調用、更改自訂屬性(包含玩家名稱)是訊息。

發送一個事件(或RPC)到所有其他客戶端,計數為在該房間中各個玩家的一個訊息:一個發送,其他接收。

PUN是特別的,因為它嘗試以OnPhotonSerializeView來加總更新。 如果可以的話,多個物件的更新被加總到一個訊息之中。 同時,觀察模式影響這件事情:當GO在更新之間沒有移動時,「在更改時不可靠」停止發送任何事情。 在最差的情況,一個物件可以導致各個玩家的每秒的10個訊息。然而這不常見。


訊息限制

我們基於兩個原因來限制各個房間及每秒的訊息(更新):

  • 當您發送過多更新時,事情就會崩潰。不過它沒有一個固定的上限。這取決於流量、裝置等等。
  • 確保每個人都有我們的共享伺服器的一個固定部分。

每個房間的及每秒的訊息顯示在儀表板


名稱伺服器

名稱伺服器提供一個可用地區的清單給客戶端,並且處理它們的授權請求。 當客戶端選擇一個地區,名稱伺服器提供主伺服器網址給它。 有多個載入平衡的名稱伺服器。


操作

針對在Photon伺服器端上的RPC功能的另一個單詞。 客戶端使用操作來在伺服器上做任何事情,並且甚至發送事件到其他客戶端。


Op程式碼

操作程式碼的縮寫。 一個位元值,其用來在伺服器端觸發操作。 客戶端以Op程式碼來獲得操作回應,以針對被傳回的值來識別動作的類型。


同儕節點

這個術語指一個連線的一側。 客戶端有一個同儕節點,並且伺服器是針對客戶端的遠端同儕節點。


玩家TTL

演員在被移除之前可以在房間之內維持非活躍中狀態的,以毫秒為單位的時間量。 一個演員在暫時離開房間或意料外地中斷連線時,成為非活躍中狀態。

一個-1的值意味著非活躍中的演員沒有逾時。


Photon核心

Photon的C++核心。它為您處理連線及eNet協定。


Photon控制

Photon伺服器SDK的Photon管理工具。 啟動PhotonControl.exe以獲得一個托盤欄選單,並且輕易地管理Photon的服務。


Photon伺服器SDK

Photon伺服器SDK含有工具,以在基本上任何Windows機器上運行及組建您自己的Photon伺服器執行個體。 了解更多


PhotonServer.config

這是針對Photon核心的設置檔案。 它設置IP、應用程式及效能設定。 先前它稱為PhotonSocketServer.xml,而有一段短暫的時間稱為PhotonSocketServer.config。


Photon Unity網路(PUN)

Photon Unity網路是一個針對Unity的C#客戶端套件。 它使用Photon的低等級功能,以一個更先進的形式來重新執行Unity的內建網路。 許多Photon的低等級功能由PUN所涵蓋。舉例而言,您幾乎不用擔心一個傳回程式碼命令。 它現在是在長期支援模式,並且不會再獲得主要功能更新。新的專案應該在客戶端側上使用Fusion或Quantum。


政策檔案

政策應用程式運行在Photon上,以發送「crossdomain.xml」。 網頁播放器如Unity網頁播放器、Flash及Silverlight在它們聯絡一個伺服器之前請求授權。


Quantum

Quantum是我們的最先進的預測復原網路解決方案。


地區

地區術語指Photon雲端的主機端位置。


可靠

可靠命令將到達另一側或導致一個逾時中斷連線。 它們在各個頻道被序列,並且在可靠命令暫時遺失時,將暫停分派。


傳回程式碼

以位元值為格式的每個操作的主要結果。 可以檢查操作是否成功完成(RC_OK == 0)或發生了哪個錯誤。


房間

玩家在房間中會面,以遊玩一個對戰或交流。 不可以在房間之外交流。 任何客戶端只能在一個房間中為活躍中狀態。

photon room core concept
Photon房間核心概念

Photon房間有這些屬性及方法:

  • 以名稱來建立及加入房間
  • 針對房間及玩家來設定自訂屬性
  • 定義最大玩家數量
  • 隱藏(在大廳中不顯示)或可見
  • 關閉(沒人可進入)或開啟

RPC

遠端程序性調用的縮寫。 可以是操作(在伺服器上的調用方法)的一個術語,但在大多數案例中,它指在PUN遊戲中在遠端客戶端上調用一個方法。


RUDP

可靠UDP。 在UDP頂層的一個協定,其讓被發送的命令在需要時是可靠的。 一個發送者重複發送可靠訊息,直到它們被承認


通訊端伺服器

Photon核心的另一個名稱。


逾時

有了eNet,客戶端及伺服器監看另一側是否承認了可靠命令。 如果這些ACK在較長的時間內遺失,則視為連線遺失。


不可靠

不可靠命令是沒有被其他側承認的。 它們在各個頻道被序列,但是在分派時,序列中可能有洞。


虛擬應用程式

Photon雲端針對所有標題來運行一個單一遊戲邏輯(應用程式)。 內部而言,遊戲按照應用程式ID遊戲版本進行分隔。

Back to top