注:本文內容已更新至ARTS-Share欄。git
這周服務器主程安排給了我一個任務(實際上是我在用Go作完了一些小demo後,向主程請示下一步的安排),讓我將他用Lua語言寫的球球大做戰的服務端代碼轉成Go語言形式。github
因而,我開搞了!算法
此內容以上傳至github,感興趣的能夠看一下github地址服務器
框架主要分如下幾個部分網絡
由於要有主入口,因此要新增一個server文件,client文件用來測試服務器端。而服務器又分如下幾類:框架
球球大做戰中服務器端主要是與玩家和AI作交互。函數
玩家要將本身的數據傳遞給服務器端作記錄,並作好消息的分發,例如:工具
當客戶端鏈接失敗後,將於服務器端斷開鏈接。學習
戰鬥邏輯主要是根據玩家傳遞過來的信息跳轉到相應的戰鬥邏輯中測試
戰鬥邏輯中分爲:
主要是用四叉樹算法進行檢測,這塊是個硬骨頭,還在啃...
涉及算距離,長度,寬度,格式變換時,總不能在每一個文件中寫一樣的函數吧。所以專門創建一個工具文件,其餘文件要用這個文件裏的某個工具時,導入便可,方便高效。
主要是在更新玩家視野這部分,須要先計算出玩家視野的中心點座標,再計算玩家的視野範圍;
除此以外還有移動管理模塊,服務器端管理模塊等等。(這部分信息量較大,還在學習中)
以上就是我看完第一遍遊戲球球大做戰戰鬥服務器端源碼後的小結,後續將會畫出戰鬥服務器的邏輯流程圖,理清戰鬥邏輯,嘗試本身使用Go語言完成。
另外,因爲該遊戲服務器端的網絡庫是由sniperHW本身開發的,所以我還得考慮如何用Go語言實現其網絡庫的功能。