切換
舊版
前往
大廳
主題

開發日誌(二)

老孫 | 2019-06-17 13:24:33 | 巴幣 6 | 人氣 379

久違的更新,這段時間評估了專案內容及需求,最終希望能夠有自己的伺服器並且架在雲端伺服器上,除了穩定提供服務之外也能應付擴充需求,玩法及系統上沒有太大的變更,預計下篇會撰寫更多遊戲相關資訊。
 
開發歷程 :
原先打算使用 Photon 來運行多人的部分,因考量到網路部分經驗不足,能用現成的連線方式再方便不過,但在開發中考慮到 P2P 連線最大的問題『主機斷線』相信只要是玩過 LAN 連線的玩家都碰過,遊戲體驗可謂差到極致。
 
AssetStore 尋找連線套件過程中看到 Socket.IO for Unity 而且還是 Free 二話不說馬上安裝測試,該套件在Unity的部分已經幫你完成實作了,Server 則是使用 Node.js 且有提供一個簡單的 Js 檔案測試,開發初期 Js 馬上展現其開發快速的優勢,直到處理遊戲邏輯的部分,開始出現一些不可預期的 BUG,由於以往都是使用 C# 編寫,幾乎沒處理過還需要考慮資料型別的問題,為了減少這類的失誤只好尋找其他強型別語言來編寫 Server。
 
尋找Server的替代品 Golang、Python、C# :
第一個評估的是 Golang,由於 Server 會需要啟用多個線程同時運作,Golang 在這部分的性能是最好的,但由於 Playfab 沒有官方提供的Golang sdk 所以就先刪去了。再來是 Python - 近年來非常熱門的一款語言,但是安裝試用後覺得需要熟悉一套語言需要些時間,就被我暫時放置了。
 
最後選用C# 搭配 Fleck WebSocket 處理連線的部分,優點是列舉( Enum )及序列化程式能夠直接與Unity共用省去轉換上的麻煩,由於不再使用 Node.js 作為 Server 所以改用 Protobuf 來替代 Json 進行序列化,除了序列化速度更快之外資料體積也更小,有效節省資源及頻寬,但需要些微修改Socket.IO for Unity 的部分,該套件非 Dll Plugin 修改起來還算是方便。
 
雲端主機的部分選用 Google 的虛擬主機,因Google在台灣有機房且價格最低,已測試將Server部署到雲端伺服器上運作,目前企劃與開發方向已經定型將投入更多的時間進行開發,待第一階段建模完成後會開放測試功能。
 
目前開發進度 :
已完成 : 帳號登入、好友及組隊功能、列隊模式、基礎遊戲邏輯
開發中 : 組隊對抗AI、角色職位( 天賦樹 )、遊戲事件、角色及場景建模中
 
使用的套件&服務連結 :
Google Cloud Platform : https://cloud.google.com/?hl=zh-tw
(Compute Engine虛擬主機 for CentOS 7 )

創作回應

更多創作