遊戲引擎是指一些已編寫好的可編輯遊戲系統或者一些互交式實時圖像應用程式的核心組件,是遊戲軟體的主程式。
基本介紹
- 中文名:photon引擎
- 類別:遊戲引擎
- 組成:SDK、socket
- 代理公司:暫無
photon引擎的概述,photon引擎的特性,photon引擎的相關術語,photon引擎5分鐘快速入門,選擇適當版本,Photon控制台(Photon Control),運行Testclient測試客戶端,
photon引擎的概述
photon引擎比起我們較熟悉的虛幻3、CryENGINE 3等遊戲引擎,這款引擎相對較為陌生,這裡為大家簡單描述一下這款引擎的特點。
Photon英文原意是指光量子,在這裡是指九城代理的服務端網路遊戲引擎,比起其他伺服器端引擎它能支持更多的傳輸協定和編程連線埠,如下圖所示:
Photon包含兩個部分。一部分是一個socket伺服器,另一部分是其針對各個平台編寫的sdk。這些平台包括了:android, Flash, iPhone, iPad, .NET., Unity 3D, Windows,甚至還有silverlight。這也意味著Photon的發布也包括兩個部分,Client SDK Release和Server SDK Update。 Server SDK的版本是v2.4.5,而Client SDK的版本是v6.2.0。
由於Photon引擎代理契約已到期,九城已於2012年9月30日正式關閉Photon引擎中國區網站及開發者論壇。
photon引擎的特性
Photon引擎是一款實時的Socket伺服器和開發框架,快速、使用方便、容易擴展。
服務端架構在windows系統平台上,採用C#語言編寫。
客戶端SDK提供了多種平台的開發API,包括DotNet、Unity3D、C/C++以及ObjC等。
Photon引擎的體系特性如下:
1、架構於Windows平台下原生態性能高度最佳化的系統
2、經過證明適用於眾多的商業遊戲
3、由Exit Games提供迅捷到位的支持
4、伺服器端遊戲邏輯採用C#語言實現
5、支持廣泛的框架設計,能幫助您處理常見的工作內容
6、簡單易擴展的遠程方法調用
8、提供基於room遊戲的基本套用Lite,方便原型開發
9、部署簡單,支持雲端服務
10、充分利用網路頻寬
11、採用小尺寸的二進制協定,可根據需要使用有序可靠的UDP
12、直接支持常見的客戶端平台,提供相同的工作流程
13、封裝每個客戶端平台的網路層模組
14、通信跨平台
15、使用Dictionary傳送數據,無需擔心數據序列化反序列化
photon引擎的相關術語
Ack內部使用的命令,主要功能是用於實現可靠UDP。
Actor進入房間的玩家叫“Actor”。Actor在房間內有個編號(ActorNumber),編號僅在當前房間有效。
ApplicationApplication指的是遊戲邏輯套用,由C#語言書寫同時由Photon引擎負責啟動運行。所有的套用均從Application繼承。
Binaries FolderBinariesFolder指的是針對不同平台編譯出的Photon目錄,以“bin_”為前綴命名目錄,且放置在服務端SDK的“deploy”目錄中。
Business logic即遊戲邏輯,運行在Photon引擎中,負責處理operation和event。
Channel在Photon引擎中channel主要用於分割通信用,在同一channel中所有的operation和event都是順序執行的。
CommandCommands主要用於在eNet協定層上實現數據傳輸、建立連線關閉連線等功能。當然您無需書寫什麼命令,在這裡提出來,僅僅是為了加深您對Photon引擎的理解。
Connect在客戶端向photon引擎傳送請求之前在客戶端和伺服器之間必須要建立連線才行。
Custom Operation任何非客戶端API內的或新的伺服器端的(不在Lite套用中)客戶端操作。
DashboardDashboard主要負責收集計數器信息,同時在web站點上生成圖示以便於監控。
Deploy Folder即發布目錄,在服務端SDK中,deploy目錄包含了Photon引擎運行的所有需要的檔案:Photon核心檔案和應用程式檔案。
Disconnect即伺服器和客戶端斷開操作。通常發生在客戶端下線或連線逾時時候;伺服器也可以根據需要斷開和客戶端之間的連線。
EventEvent是異步傳送給客戶端的事件訊息。可以由操作(operations,如sideeffect)觸發或引發(這是operation的主要目的)。事件由事件代碼(Eventcode)標識,事件來源則是ActorNumber。
EvCode即EventCode簡稱,標識事件的類型以及事件所附帶的信息。
Game根據上下文,可能是單機的也可能是多個玩家之間有輪次的比賽。Lite則是後者,玩家可以加入到房間內相互遊戲。
Latency即請求回應時間,服務端和客戶端可能有所不同。
Lite即Lite套用,您入門的基本遊戲邏輯。
Lobby大廳,即“Lite大廳”或“遊戲房間”。
Lobby Roomlobby room是大廳套用的一個特殊的房間。它不關注玩家進出遊戲房等操作,而是列出遊戲列表供玩家選擇。
Log FilesPhoton作為服務程式運行,沒有圖形化界面(GUI),因此需要有日誌記錄。目前有兩套日誌:一套是套用的日誌,日誌檔案存於deploy/log目錄中;另外是Photon引擎自身的日誌,記錄到deploy/bin_*/log目錄中。
Matchmaking負責查找遊戲建立比賽。Lite套用無此功能,只能根據名稱加入遊戲房間。Lite Lobby則是列出了所有遊戲房清單出來便於查找。
NNet即eNetRUDP之前的叫法,主要由“eNet”和“Neutron”兩個單詞混合而來。
Operation對在Photon伺服器端上遠程方法調用的另外一種叫法。客戶端使用operation可以在伺服器上做任何事情,甚至可以傳送event給其他客戶端。
OpCode“Operation Code”的簡稱。byte類型,用於觸發伺服器端操作,客戶端獲取操作返回結果,用opCodes判斷返回動作類型。
Peer即連線到Photon引擎的客戶端,另一方面Photon伺服器端也是Peer,且只有一個。
Photon Core指的是Photon引擎的核心,由c++語言實現,負責處理連線以及eNet協定。
PhotonControlPhoton的管理工具,打開PhotonControl.exe檔案即可開啟一個托盤套用。
PhotonServer.configPhoton引擎的配置檔案,主要用於IP、套用以及性能檢測設定。以前叫PhotonSocketServer.xml,剛剛改為PhotonSocketServer.config。
Policy File即證書檔案,由證書套用負責傳送crossdomain.xml。像Unity Webplayer、Flash以及Silverlight等web遊戲平台在連線伺服器之前都需要得到授權才可以運行。
Reliable即可靠命令,要么到達目的地要么逾時斷開。可靠命令在信道中是順序傳輸的,同時若有丟包情況,則會重複傳送直到確認成功收到。
ReturnCode每個Operation返回的初步結果,用一個位元組的值表示,可以通過ReturnCode檢驗操作成功與否:RC_OK == 0 表示操作成功,否則操作失敗。
Room即一組玩家或客戶端的集合,可以用於遊戲、聊天大廳或者其他方面。Room是Lite框架中的一個類。
RUDP即可靠UDP:在UDP協定基礎上實現的可靠數據傳輸協定。
Socket Server即Photon引擎的另外一種說法。
Timeout使用eNet方式,客戶端和伺服器端都監視對方訊息是否可靠,如果檢測到長時間沒有回應,則會下線。
Unreliable不可靠的命令則不需要對方回應,它順序傳送數據,可能會有數據丟失,數據序列有“漏洞”。
photon引擎5分鐘快速入門
啟動Photon非常容易,直接運行SDK中附帶的程式即可。
下面的視頻主要演示了如何快速啟動Photon,這是必不可少的步驟。
觀看視頻
下載
下面是Photon Server SDK下載連結:
SDK下載
選擇最新版本的“ExitGames-Photon-Server-SDK”下載。
選擇適當版本
將Photon伺服器SDK解壓到任意位置,進入“deploy”目錄選擇適合您當前環境的版本:
1.bin_Win32:32位Windows Vista以上版本
2.bin_x64:64位Windows Vista以上版本
3.bin_Win32_xp:32位Windows XP或者2003
4.bin_Win64_xp:64位Windows XP或者2003
SDK的deploy目錄裡面包含了運行Photon需要所有檔案,其他目錄則是文檔目錄、類庫目錄以及源碼的目錄。
Photon控制台(Photon Control)
運行Photon管理工具:PhotonControl.exe。這是一個托盤套用,程式啟動後會創建一個托盤圖示。
Photon Control上的“Run asapplication”選單項
點擊右下角的托盤圖示,單擊“Photon”下面的子選單“Start as Application”即可開啟Photon服務。
啟動Photon服務大概會花幾秒鐘時間,這主要取決於配置的套用情況,部署的套用越多啟動就會越慢。
運行Testclient測試客戶端
服務端的SDK提供了一個壓力測試工具(TestClient),模擬多個客戶端連線,可以點擊“Photon”下的“Testclient”選單開啟。
Testclient是一個命令行工具,可以模擬25個遊戲每個遊戲4個玩家共100個玩家線上的測試。
Testclient正常開啟的界面
另外,也可以下載.NET版本的Photon客戶端SDK。裡面有個“Realtime Demo”可執行程式,配置連線本地伺服器,同時打開兩個客戶端,每個客戶端都可以看到另外一端的顯示狀態變化。