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進行反應了。
這章就先簡單說明建立專案和架構的部分,下一章再接著講更多內容。
首先,先來簡單解釋一下在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的概念,雖然架構上不太一樣。
再回到主類別的CreatePeer方法中,此時就可以回傳我們剛剛建立的MyClientPeer,當Client端連上PhotonServer後,就會自動執行MyClientPeer內的OnOperationRequest進行反應了。
這章就先簡單說明建立專案和架構的部分,下一章再接著講更多內容。
留言
張貼留言