幀同步技術目標總結

  • 在寫一些網絡優化總結的時候,翻到了年初(2018年)3月份寫的技術目標。在此之前因為玩法在不斷摸索,主要的時間都在獨立解決一些問題上,幾乎不會涉及到技術任務的分配。但因為4月份版本需要上線測試而且至關重要,但當時的版本還過於Demo化延遲性能等都有不少問題,因此也被委以重任制定技術上下個月版本的技術目標,希望能有所提升。 著實挖空心思了一番!喪盡天良的列出了一大堆優化目標。。。 經過大家的不懈努力,兩個版本之後基本所有的優化點都已完成(遊戲功能也在不斷開發),之後的版本有了大幅提升,順利的經過了n輪測試。現在回頭看看,真是一個非常痛苦而又快樂的過程,痛並快樂著,我想這就是遊戲開發的真實寫照。
    • 網絡優化:
    • 客戶端和服務器立即發消息的收發方式【優先級高】。現在服務器和客戶端有個緩存隊列(可靠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天
    • 資源管理方式使用引用計數方式【待討論】
  • 來自 <https> /<https>

  • 分享到:


    相關文章: