Photon Engine 教學

開發多人連線遊戲需要伺服器提供連線服務,自行開發遊戲伺服器需要投入高成本與面對資安風險,改用 Photon 提供的遊戲伺服器將只需要投入較低開發成本,免費版有玩家的人數限制,待玩家的數量增加時再購買授權。Photon Unity Network ( PUN ) 將是您製作多人線上遊戲的解決方案。

 

Photon Unity Network 優點

Photon 遊戲伺服器可支援電腦與行動裝置並擁有優異的效能表現

使用 Photon Unity Network 開發多人遊戲可支援發佈所有的平台

遊戲伺服器無需自行建置與維護,伺服器代管服務目前可免費使用

提供跨伺服器的網路負載平衡技術,而且不需要額外的軟硬體投資

使用 Photon PUN 比自行架設遊戲伺器的成本更低,無需再支付 Photon 遊戲伺服器的月費,不過若是超過 100 位玩家的線上遊戲,建議直接選擇月費方案。Photon Cloud 是一個官方推出的線上服務,提供遊戲伺服器代管與網路負載平衡的服務,您可以選擇免費試用或付費的方案,就像是租用網頁的虛擬主機。Photon Cloud 透過 "application id" 區分用戶端權限,玩家與玩家之間不發生衝突,也不會與您以前開發的舊版遊戲的玩家發生衝突。

先進入資源商店並下載 Photon PUN 資源,本教學使用的是 Photon PUN+ 付費版本,您可以先使用免費版本,基本的操作步驟是相同的,主要的差別是可同時上線的玩家人數。Photon PUN+ 付費版的建議售價是 95 美金。

若購買 Photon Cloud Subscription 請參閱以下的步驟:

‧ 官網註冊 Photon Cloud Account 雲端帳號 。

‧ 從網頁上的 Dashboard 取得您的 AppID 。

‧ 寫信到 [email protected] 並提供姓名 / 公司名稱 / Invoice / Purchase ID / Photon Cloud AppID 。

 

匯入 Photon 資源包後將彈出 PUN Wizard 設定精靈,輸入 Email 後即可註冊 Photon 雲端服務。

 

使用 Photon 服務必須擁有帳號,請在 AppId or Email 欄位輸入電子信箱註冊,系統將會寄驗證信到您的信箱。

點選驗證信的 SET PASSWORD AND START 按鈕啟用帳號並設定密碼,按下 Start using Photon 即可開始使用。

 

查詢 Photon AppId

AppId 是一組 Photon 應用程式的辨識碼,需要放到您的 Photon 遊戲,提供與伺服器連線時進行夠辨識。

搜尋專案的 PhotonServerSettings 檔案,選取後在 Inspector 展開 Server / Cloud Settings 檢視 App Id PUN 內容。

或透過 官方網頁 查詢,輸入 Email 信箱與密碼,點選 [ Dashboard > My Application ] 開啟應用程式網頁即可查詢。

開啟 DemoHub-Scene 場景。

開啟 Build Settings 對話框,確認預設的 Demo 遊戲場景已經在發佈的清單。

按下 Play 測試遊戲,從這個 PUN Demo Hub 場景可進入 Photon 展示遊戲。

 

使用 Unity 編輯器無法進行多人連線的測試,可製作遊戲後開啟多視窗進行同步測試。

申請的 Photon 帳號並不限於建立單一遊戲,可以建立多個使用 Photon 服務的遊戲。

 

您可以在此進行 Photon 雲端服務或自行架設伺服器的組態設定:PhotonServerSettings.

官方提供了幾個範例專案來展示這個 API 應用程式介面如何運作,我們稍後會先使用到這些範例。

 

PhotonNetwork 需要使用一台 Master server 主伺服器與一到多台的 Game servers 遊戲伺服器,前者用於管理目前在遊戲伺服器上執行中的遊戲。透過主伺服器可以取得已使用的房間 ( Room ) 清單,或是已進入遊戲大廳 ( Lobby ) 的玩家。

遊戲大廳會自動傳送與更新房間清單給玩家,為了確保維持在較低的網路流量,遊戲大廳中的玩家們將不會互相提示 (Notice) 也不能傳送資料。通常玩家連到伺服器之後將會進入遊戲大廳,但是這並不是一定需要的:當在主伺服器上建立或加入房間都是可行的,使用 JoinRandomRoom 可讓玩家自動分配到不同的房間,使用上也很簡單。

當一位玩家加入或是建立房間時,將會傳送給主伺服器,接著主伺服器會將這位玩家轉送到實際的遊戲場景。您不需要瞭解伺服器的架構,因為 API 將為您完成所有的事情。

 

PUN2 教學 Part1 - 多人連線射擊遊戲 | 舊教學

PUN2 教學 Part2 - 製作多個遊戲角色

PUN2 參考資料 - Photon 常用指令 |  參考 C# 腳本