ET框架:windows/Linux 雲伺服器部署
本文針對ET框架1:C#伺服器 unity3d客戶端 開源 github而寫,主要說明ET框架中的伺服器開發完成後,如何部署到雲伺服器上。
眾所周知,大部分遊戲伺服器部署在linux系統,網上也不少這方面的教程,對於大部分多人遊戲的開發者來說,大部分都是熟練windows系統的,我就是一直用windows系統進行開發,擅長unity3d前端,這也是首次嘗試前後端同時搞定,而且做得是一個多人在線推塔的項目,為了個人維護起來方便,我選擇了騰訊雲的windows server 2012當遊戲伺服器進行項目部署。接下來詳細介紹部署過程,希望對在使用ET框架進行全棧遊戲開發的人有幫助。
- 伺服器選擇,下圖這個配置是一個比較簡單標準的配置,這個自己選擇,目前各大廠商的雲計算都還可以。
雲伺服器選定後,選擇正在運行的windows雲伺服器,進行安全組配置,如下圖所示,安全組決定了對於該伺服器的訪問許可權.
如上圖所示是我的伺服器的配置信息,完全按照這個來配置是沒錯的,本身並非伺服器開發人員,在進行過伺服器配置的過程中也是遇到了很多坑,所以讀者最好直接按照圖3進行伺服器設置,我在設置的過程中,給騰訊雲提交了工單,因為伺服器ping不通,雖然這個問題很簡單,最後還是自己搞定的,但還是感謝騰訊雲的維護人員,ping不通的原因2點:安全組配置不正確或者伺服器防火牆沒有關閉,如果你遇到了這樣的問題,又不是特懂伺服器,1是直接找個懂得問問,2是和我一樣檢查上述2點。
好了,到這裡大家的伺服器都有了,我們可以登錄了,登錄過程如下所示,下載登錄rdp登錄文件,如圖5所示操作,即可下載登錄文件。圖6所示為下載好的文件,雙擊既可以登錄。經驗證,RDP登錄方式是最簡答便捷,界面也是最流暢的,建議大家這種方式。
雙擊上圖所示RDP文件即可登錄雲端伺服器,如果這時候提示登錄不了,原因一定是你的安全組沒有開啟windows遠程登錄這個埠。如果登錄成功後,我們可以進行環境部署了,
如下圖所示,我們可以將本地電腦上的.netcore 2.0,mongodb安裝文件直接拷貝到雲伺服器,不需要類似linux的weget+鏈接的方式去下載,對於使用windows開發的客戶端人員來說,確實太方便了。途中可以看到我還在伺服器上面安裝了vs2107,這是有原因的,我安裝了.netcore2.0之後,發現在運行伺服器的時候,來時會提示丟失很多的關聯庫,於是一氣之下安裝過了vs,比較笨的方法,但是管用,不再提示錯誤了。
這裡有一點需要注意,windows的防火牆是要關閉的,不然本地機器是ping不通雲伺服器的。到這裡我們雲伺服器環境配置就算完成了,接下來檢驗一下。
2 生成Server包
接下來,回到本地ETserver工程中,我們需要安裝CommandLineParser.core包,如下圖所示。
安裝完成後,cmd開啟命令行,此時我們需要對當前的server進行重新publish。圖a-b-c展示了完整流程。publish完成後會生成用於放置到雲伺服器上的server包,接下來開始操作:
a:命令輸入,如圖a
b:publish成功後命令行所示狀態,如圖b
c:發布成功後D:WorkProjectsServerBin路徑下文件狀態。(每個人的路徑不一樣)
到這裡,我們要將三個文件夾拷貝到雲伺服器上
1 Serverlogs文件夾
2 Serverconfig文件夾
3 serverbinpublish文件夾(這是我們剛生成的文件)
拷貝到伺服器後,如圖所示
到這裡,伺服器就算是運行成功了,這裡我運行的ETdemo鬥地主的伺服器,然後就可以在本地打開客戶端登錄遊戲,同時可以邀請多人一起戰起來了。
本文篇幅較長,希望能給不懂伺服器又正在用ET框架的客戶端開發人員提供一些參考。
---------------------------------------------------------------------------------------------特別的坑介紹:
1 配置文件中:outHost 需要設置為雲伺服器內網IP;outHost2設置為雲伺服器的公網IP。
2 Server代碼設置:登錄的時候需要連接Gate,連接gate需要使用outHost2的地址。
3 客戶端代碼:開啟伺服器的時候是根據outhost來開啟的,地址也是內網IP地址,但是要登錄realm和gate伺服器又必須使用outHost2的公網IP,這個我是手動直接在代碼里寫上的,因為config管理組件中沒有用到outhost2來連接,後期修改好後會跟大家分享。
推薦閱讀:
※棋盤格與幻影坦克
※一口氣解決RenderQueue、Ztest、Zwrite、AlphaTest、AlphaBlend和Stencil
※關於Unity動畫系統優化,你可能遇到這些問題
※一個關於渲染管線中坐標變換的簡單實例
TAG:虚拟现实VR | MMO游戏|大型多人在线 | Unity游戏引擎 |