- 網絡優化:
- 客戶端和服務器立即發消息的收發方式【優先級高】。現在服務器和客戶端有個緩存隊列(可靠UDP的機制,改進後我們將使用TCP,可靠UDP,非可靠UDP三種網絡方式)消息不回立即發送。降低延遲。
- 客戶端收發協議多線程【優先級高】。更快的收發包,減少不受客戶端幀率影響。
- 實現非可靠UDP【優先級高】。當用戶網絡不穩定丟包時可大幅降低延遲。使用冗餘包的方式保證UDP可靠,比現在的ACK保證可靠性流量更大但延遲率低
- 網絡數據測量分析【優先級高】。測量純網絡ping值,和遊戲真實ping值。定位延遲問題,目前正常ping值在30ms左右,但網絡層實際ping值在100ms左右,定位問題和解決方案。實際主要是因為客戶端邏輯層和表現層的更新順序問題
- 斷線重連【優先級高】。分析和制定更好的斷線重連方案,測試提供測試用例,需要策劃配合。review和方案討論的時間,具體修改方法還需要測試討論
- 將幀協議從protobuff改為二進制流【優先級低】針對混戰角色較多提升客戶端收發包性能。
- 移動的行為預測,表現層預表現一段時間玩家操作,使用航位預測算法平滑渲染層和邏輯層,降低移動延遲
- 協議包的壓縮和限制,減小包的大小,忽略部分細微操作
- 底層優化
- 負載均衡機制,因為邏輯層是15幀,渲染層依賴玩家設備和遊戲環境但幾乎都會高於15幀,通過分攤邏輯運算降低幀率的毛刺
- 道具掉落系統的格子算法統一【優先級中】。目前IO模式使用了新的格子算法,匹配還是老算法。
- 貼圖資源洩漏【優先級中】。從主城到戰鬥等場景切換會有些貼圖無法釋放,導致玩家時間長之後內存膨脹
- 堆內存優化【優先級中】。解決遊戲中頓卡問題,堆內存分析優化,通用內存池開發
- 性能優化【優先級中】。分析遊戲的性能瓶頸解決遊戲中卡,發熱,幀率低等問題。已知有圖形配置的調整,追幀隱藏場景等。【每次封板前後review,有針對進行優化】【持續】
- 阻塞加載場景,再來一局同一場景不進行loading【優先級低】。提升loading速度
- UI使用一些插件做一些動畫【優先級低】
- 加密。使用關鍵數據內存加密的方式(僅客戶端),使用關鍵數據上報服務器校驗的防作弊方式
- 使用IL2CPP取代Mono的DLL加密方式,防止代碼逆向並提升性能。
- 更詳細的圖形配置測試,獲得每個圖形配置對幀率,發熱耗電的數據提現,針對標杆機型普及率高的機型做深度的推薦配置,讓玩家上來就獲得最好體驗【優先級低】(取決於已有機型的數量)
- 流程優化:
- 服務器白名單【優先級中】。這幾次測試也有需求開服測試時可以屏蔽玩家,但是可以運行指定IP段提前連入測試,被服務器擋掉的玩家有未開服公告
- 熱更流程優化【優先級中】。重構現在的熱更代碼,和自動構建集成,支持不同服的版本使用不同的CDN配置,支持更新表格和lua,支持更新部分UI資源。【後續更多的資源更新需要對資源做更大的調整】
- GM工具【優先級低】。現在只有發公告
- 開關服的流程優化【優先級低】。登陸公告,跑馬燈,踢人,封號,關服倒計時,更完善的公告。需要和策劃一起梳理
- 自動構建的Build號校驗
- 工具優化
- AI行為樹編輯器。【優先級低】。暴露更多的接口給策劃,讓策劃便於編輯修改【開發中下週】【持續】
- CMT技能編輯器。【優先級低】。開發可視化的CMT編輯器,優點不需要寫代碼,缺點無法配置邏輯,不靈活【持續】
- 自動的調試菜單更美觀易用,支持分頁【優先級低】
- 支持本地錄像和日誌記錄功能,支持關鍵數據校驗不同步時實時上報日誌
- 重構
- MainUI拆分【優先級低】。因為開發了多個模式,很多模式的UI都混在一個預製體,戰鬥界面非常龐大而且容易出錯,性能也差,使用不方便。可以分攤到開發過程中【持續】
- 玩家組件系統重構【優先級低】純代碼重構
- UI使用消息事件系統【優先級低】。使用消息系統可以使UI結構更清晰減少bug,新的界面使用了歷史遺留的一些界面沒使用
- 幀同步遊戲內換人加入優化【優先級低】。因為IO模式支持中途換人,每次換人的時候需要發送該玩家擁有英雄數據天賦數據非常龐大,優化為只在換人的時候同步換的角色的屬性和天賦,否則後期英雄數量的時候會出問題【是否可以不換人】
- 狀態機重構【優先級低】。統一目前遊戲內的多個狀態機,遊戲流程使用唯一的一個狀態機。客戶端2天
- 資源管理方式使用引用計數方式【待討論】
閱讀更多 Mack 的文章