最近打算學習creator,跟着官方教程做了遍發現和u3d有些相似,用着還算順手,就是實在無法習慣js,後來改成ts終於有些感覺,所以決定繼續優化這個ts版的官方教程。
前段時間學習go的時候寫了個服務端框架(DrillServer:https://github.com/BAN1993/DrillServerGo.git),正好拿來和這個項目結合,做個聯網對戰的遊戲。
先上源碼:https://github.com/BAN1993/CatchStar.git
Client
對玩法和動畫上有所改進,人物更加Q彈,改動較小就不做闡述了。
- 網絡模塊
添加了網絡模塊(NetWork)。業務模塊通過regist註冊監聽,網絡模塊收到協議後依次回調。
客戶端本地也有一個數據回調機制(DataPoster),與網絡模塊類似,業務模塊通過regist註冊,數據發生改變時(如收到協議或本地角色更改方向)調用update則會通知到每個註冊過的模塊上。
- 同步機制
遊戲主要採用幀同步,每N幀同步一次位置和方向。爲了減少瞬移和延遲的情況,做了預測和修復位置的邏輯:根據當前方向實時繪製預測的位置,當收到同步協議後,如果距離偏差較大則使用動畫將角色拖拽到準確位置。
Server
服務端使用最典型的框架
Gateway:負責轉發協議
DataBaseServer:負責處理大廳協議(登錄、註冊等)
GameServer:處理遊戲區協議