Related Posts Plugin for WordPress, Blogger...

6-2 Create A Photon Server Project And Import Library

接著要來講解如何建立PhotonServer的Visual Studio專案,引入相關類別,並建立一個執行用的主類別。

首先,先來簡單解釋一下在PhotonServer上面的設定文件。我們可以在bin_Win64上面找到PhotonServer.config檔案,我習慣用Notepad++開啟這類的設定檔。

然後在Configuration標籤底下可見LoadBalancing與MMoDemo,這兩個就是目前PhotonServer預設提供的Application。其中的DisplayName代表著在PhotonServer控制視窗中可見的Instance的名稱。

名稱對應如下圖。

接著在LoadBalancing底下有許多連線設定,如UDP、TCP、PolicyFile與WebSocket。以UDP為例,IPAddress為0.0.0.0,代表透過Current IP、Local IP、Public IP都可以連線進入Server,Port則是連線端口,OverrideApplication則是應用名稱的設定,應用會有一個專屬的Tag。

剛才所說的三種IP設定在Game Server IP Config中可以見到。

接著是Application Tag的設定,BaseDirectory會對應到deploy底下的資料夾路徑。

如下圖,如Master就放在Loadbalancing/Master底下。

Master資料夾底下會有一個bin資料夾,bin底下才是放置執行用的dll檔。設定中的Assembly代表dll檔案的名稱,Type則是dll檔案內部的主類別名稱,ForceAutoRestart當應用Crash的時候是否自動重啟。當PhotonServer啟動應用的時候,就會依照這些設定去尋找要執行的程式碼。

接下來就開始建立PhotonServer用的專案吧,由於我的開發環境是Mac,所以我使用的是Mac版本的Visual Studio。首先按下New Project吧。

這邊選擇Other/.NET/Library唷,請不要選到.NET Core的部分唷,.NET Core是微軟的.NET Framework開放原始碼專案,是為了佈局跨平台市場用的,跟原始的.NET Framework還是有不一樣的地方。

輸入專案名稱,指定儲存位置。

接著就會看見如下的畫面了。

由於Photon官方建議開發環境的.NET Framework至少要4.0以上,所以我們從專案名稱點右鍵,選擇Options。

選擇Build/General看看Target framework是否有符合標準。

接下來回到我的Windows Server上,請在deploy建立一個屬於你的應用程式的資料夾吧。

並在其底下建立一個bin資料夾,往後輸出的dll檔案就必須放在這裡。

然後從lib資料夾找出這次開發要引用的dll檔案,ExitGamesLibs.dll、Photon.SocketServer.dll、PhotonHostRuntimeInterfaces.dll,並將這三個檔案下載到我的Mac電腦。

回到開發專案這邊,在Project底下的References點右鍵,選擇Edit References。

選擇.Net Assembly標籤,按下Browse。

選擇剛剛所說的三個dll檔案。

引用成功後的畫面如下圖。

接著將建立專案的時候自動產生的MyClass.cs刪除。

然後新增一個cs檔案。

名稱取名為NoliahFantasyServer,using Photon.SocketServer,並繼承ApplicationBase類別。VS會出現紅色蚯蚓告訴你有錯誤,對類別名稱按右鍵,選擇Quick Fix/Implement Abstract Class。

接著就會自動產生需要的方法。這個類別就是所謂的主類別,而這三個方法則會有PhotonServer在需要的時候自動調用,就如同Unity的Start、Update方法。CreatePeer是當Client端向Server端發出Request的時候會調用,此時需要回傳PeerBase類別進行反應。可以根據不同情況回傳不同的PeerBase。類似Strategy Pattern的概念,雖然架構上不太一樣。

再新增一個類別MyClientPeer繼承ClientPeer,而ClientPeer繼承自前面所說的PeerBase。然後在這邊實作需要反應的方法OnDisconnect與OnOperationRequest。

再回到主類別的CreatePeer方法中,此時就可以回傳我們剛剛建立的MyClientPeer,當Client端連上PhotonServer後,就會自動執行MyClientPeer內的OnOperationRequest進行反應了。

這章就先簡單說明建立專案和架構的部分,下一章再接著講更多內容。

留言