Photon Unity Networking基礎教程 0

簡介

Photon Unity Networking(PUN)基本教程是基于Unity3D的教程。 它會告訴你使用Photon云如何開發自己的多人游戲以及怎樣使用角色和動畫。 我們將學習許多重要的功能、提示和技巧,以大概了解使用PUN進行基于網絡開發的方法。

主要內容

  • 概述
  • Photon云
  • 開發

概述

本教程將指導您從一個空項目開始,一步步遍及整個創建過程。 一路上,將解釋網絡游戲中的概念,以及常見陷阱和設計注意事項。

為了不僅僅讓玩家走動而不做任何事情,我們將實施一個基本的射擊系統,加上玩家的健康管理,這將幫助我們支持網絡中變量同步的解釋。

我們還將使用基于房間中的玩家數量的自定義尺寸競技場,競技場的尺寸基于當前玩家的數量被調整。 這將顯示關于自動同步場景的功能的幾個概念,以及一些提示,這些提示是關于在加載不同的場景時候如何處理玩家的,并且在這種情況下什么可能會出錯。:)

游戲目標

當游戲被啟動時,用戶將看到連接協議還有在UI中通知進展。 當房間被加入或創建時,玩家進入可調整大小的競技場,其中一次可以存在多達4個玩家。 玩家可以跑,轉身,以及火焰。 每個玩家發射的火光擊中其他玩家時將影響他們的健康。 當你的健康是0,游戲結束離開競技場。 然后,您再次看到介紹屏幕,讓您開始加入一個新游戲。

你應該知道的

本教程僅假設使用Unity編輯器和編程的基本知識。 然而,為了專注于Photon網絡新的概念介紹,最好有一些普通的非網絡游戲開發經驗。

示例代碼用C#編寫,但在Unity Script中工作類似。

Unity和Photon Cloud

創建一個新的Unity工程

確保您使用Unity 4.7或任何Unity 5版本。 創建一個新的項目,然后,一旦你吸收了概念和設計模式,就可以將它們應用到你自己的項目。

導入PUN和設置

打開資源商店并找到PUN資產并下載、安裝它。 當您導入所有Pun Assets時,讓Unity重新編譯。

PUN設置向導可以幫助您的網絡設置,并提供了一個方便的方式開始我們的多人游戲:Photon云!

云? 是的,云。 這是一個Photon服務器,我們可以用于我們的游戲。 這里要解釋一下。

以“免費計劃”使用云是免費的,這里可以輸入申請好的AppId或者郵件地址。

Photon Cloud Screen Shot: Cloud Registration

那么,這個“Photon Cloud”究竟做什么?

基本上,它是一群電腦,Photon服務器運行在上面。 這個“云”的服務器是由Exit Games公司維護,并為您的多人游戲提供無憂服務。 服務器是按需添加的,因此可以處理任何數量的玩家。

即使Photon Cloud不是完全免費的,但是成本也是低的,特別是與常規主機相比。

Photon Unity Networking將為您處理Photon云,下面是內部發生的事情:

每個人都首先連接到“Name Server”。 它檢查哪個應用程序您的客戶端(使用AppId)和客戶端要使用哪個區域。 然后將客戶端轉發到主服務器(Master Server)。

主服務器是一群區域服務器的中心。 它知道所有現有的游戲。 每當游戲(房間)被創建或加入時,客戶端都會被轉發到其他機器 - 稱為“游戲服務器(Game Server)”。

PUN中的設置非常簡單,您不必關心托管成本,性能或維護。

房間Rooms

Photon Cloud使用“基于房間游戲”的思想來構建,意思是每場比賽玩家有限制(比方說:小于10),與其他人分開。 在一個房間(通常),每個人都收到任何其他人發送。 在房間外面時,玩家不能溝通,所以我們總是希望他們盡快進入房間。

進入房間的最佳方法是使用隨機匹配。 我們只是要求進入服務器的任何房間或具有某些屬性的房間。

所有房間都有一個名稱作為標識符。 除非房間已滿或關閉,我們可以通過名字加入。方便起見,主服務器可以提供是我們的應用程序的房間的列表。

大廳Lobby

您的應用程序的大廳存在于主服務器上。 在我們的例子中,我們不會使用大廳,只要加入一個隨機房間(如果有的話),或者創建一個新房間,如果沒有現有的房間(房間可以有最大容量,所以他們可能是都滿了)。

AppIDs和游戲版本

如果每個人都連接到相同的服務器,必須有一種方法來將玩家與其他人分開。

每個游戲(如在應用程序中)在Cloud中獲取自己的“AppId”。 玩家只有在與具有相同的“AppId”的其他玩家遇到。

還有一個“游戲版本”,你可以用來分離玩家與老客戶端與那些與較新的。

地區

Photon Cloud被組織在全球各個地區,以防止與玩家的距離太遠,連接不好。 重要的是要理解這個概念,特別是當在不同地區與遠程團隊合作時。 因為地區劃分,與您的隊友測試游戲可能就不行了。 所以,確保所有測試者所在區域是相同的。

開發

下面每個部分涵蓋了項目開發階段的一個具體的部分,按順序進行很重要。
腳本和Photon Cloud知識水平也逐漸增加。

  1. 創建基本大廳場景。
  2. 通過用戶界面(UI)改善大廳場景。
  3. 創建游戲場景。
  4. 實現級別加載。
  5. 創建基本Player Prefab。
  6. 使相機跟隨您的玩家。
  7. 修改Player Prefab以添加網絡功能。
  8. 玩家實例化和場景切換。
  9. 玩家用戶界面(UI)。

小結

好的,我們實現了一個工作系統,用戶在互聯網上與其他玩家互動,以基本要求實現良好的體驗。

我們已經學習了如何控制PUN,如何監聽PUN狀態和當前上下文,以及利用直觀的組件輕松使用Animator。

我們還學習了Photon的一些有趣的功能,如自動場景同步,創建原始和強大的GamePlays。

要創建一個完整的游戲還有很多事情要做,準備發布,但這只是建立在我們在這里介紹內容的基礎之上。

  • 請務必閱讀“開始使用”部分。
  • 請瀏覽文檔API參考,可以大體知道都有什么。 你可能不需要所有的東西,但當你需要或實現新功能的時候能夠記起來。 你會記得一些相關的功能或屬性,所以現在是時候正確地學習它們了。
  • 使用論壇,不要猶豫分享你的問題,甚至挫折:)你不會被問題困住是至關重要的。 把問題寫出來讓別人理解,你會把你的問題有條理的整理出來,這有助于問題的解決。 沒有愚蠢的問題,這一切都取決于你的專業水平和你在學習/掌握Unity和PUN的程度。

原文地址

http://doc.photonengine.com/en-US/pun/current/tutorials/pun-basics-tutorial/intro

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容