photon引擎
遊戲引擎是指一些已編寫好的可編輯遊戲系統或者一些互交式實時圖像應用程序的核心組件,是遊戲軟件的主程序。
中文名
photon引擎
類 別
組 成
SDK、socket
代理公司
暫無
目錄
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。
什麼是SDK?SDK就是指可以爲第三方開發者提供特定的軟件包、軟件框架、硬件平臺、操作系統等創建應用軟件開發工具的集合,並且SDK還能簡單的爲某個程序設計語言提供應用程序接口API的一些文件。
由於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”目錄中。
Build script即MsBuild項目的批處理文件,實現發佈應用時候的編譯程序拷貝文件等功能。請關注VS生成菜單下的清理項目選項。
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核心文件和應用程序文件。
Device通常指的是移動終端,或者其他可以運行客戶端程序的設備。
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”可執行程序,配置連接本地服務器,同時打開兩個客戶端,每個客戶端都可以看到另外一端的顯示狀態變化。
詞條圖冊更多圖冊