《英雄聯盟》客戶端清理報告:2021進度與後續計劃

發佈日期

近日,《英雄聯盟》官方釋出了客戶端更新的日誌報告,下面為大家帶來官方原文。

遊民星空

我們承諾不定期分享聯盟客戶端效能與可靠性更新工作的進展。

本文是該系列的第七篇文章。( 這裡是第一篇、第二篇、第三篇、第四篇、第五篇和第六篇的連結。)

概要:2021年第一季度,我們開啟了升級Chromium Embedded Framework(CEF)的道路。目前仍有部分工作有待完成,預計在第二季度末可以完成新版CEF,為玩家帶來更多便利。

升級Chromium Embedded Framework(CEF)

上次我們提到過,近期的重大專案之一,是客戶端Chromium Embedded Framework(CEF),也就是聯盟客戶端架構的核心網路瀏覽器的版本更新。坦白而言,上次我們低估了這項工作的重要性。無論從直接受益,還是為其他最佳化賦能的角度來看,CEF升級都是影響力最大的一項客戶端最佳化。

CEF上次升級是在2019年11月(版本74),而撰寫本文時,最新的版本是CEF 90。CEF升級(目標是CEF 90)將帶來以下好處:

● 減少客戶端崩潰

○ 過時的CEF版本在部分硬體上表現不佳。早期資料表明,大部分崩潰都是由CEF版本過時造成的。我們堅信升級後,玩家遭遇的崩潰次數會降低。

● 相容性最佳化

○ CEF團隊在大量硬體組合上對新版本進行了詳細測試。聯盟客戶端可以免費享受這些測試的成果。

● WebSocket效能加速

○ 聯盟客戶端包含兩大部分:“前端”部分與使用者進行視覺互動,“後臺”部分規模小得多,負責後臺執行、從伺服器調取資料和追蹤客戶端的所有資訊,以便向使用者呈現正確的最終結果。後臺的工作舉例:

■ “這位玩家在設定中選擇了遊戲中關閉客戶端,現在已經進入遊戲了,關閉前端,遊戲結束後再開啟。”

■ “這位玩家剛剛開啟了藏品標籤。裡面應該都有哪些英雄?”

○ 簡而言之,WebSocket就是前端與後臺連線的管道。拓寬管道,減少轉彎和打結的地方,資料傳輸就能更多更快,這正是新版本的CEF可以為我們帶來的好處。尤其是對使用較早硬體的玩家,WebSocket的最佳化對改善大批資料傳輸(如遊戲結束、英雄選擇)的效果更為明顯。與我們的CEF版本相比,最佳化幅度可達到:

■ Windows速度加快4.1倍

■ Mac速度加快7.8倍

● 動畫效能最佳化

○ 具體說來,是根據資料生成的動畫效果,如遊戲結束頁面的經驗條(還有許多類似的地方)。這些動畫從技術上來說是一種記憶體洩漏,因此長程式中的客戶端整體效能也會有所提升。

● FPS提升——延遲降低,點選響應速度加快

● 開發難度更低(就是更快、更可靠)

○ 更多避免較長遊戲程式中發生記憶體洩漏的方法

○ 一種新的衡量標準,更好地提供關於客戶端在螢幕上呈現資訊所需時間的資料

● CPU使用更智慧

○ 在客戶端當前CEF版本(74)中,一種叫做“網路服務(Network Service)”的功能首次登場,將所有網路請求透過一條線路輸入CPU,這樣其他線路就可以完成更多工,比如載入內容等。由於這個功能在我們上次更新CEF時,才剛剛推出,來不及進行測試,因此並沒有啟用。下一次升級時,就可以籌劃在聯盟中支援該功能了。

● JavaScript效能最佳化

○ 新的CEF版本對處理JavaScript的v8引擎進行了大幅最佳化。例如相容性最佳化,只需升級版本就可獲取。

上個季度我們的工作重點是升級現有網路元件(比如視訊嵌入、彈窗提醒等等網站技術),使其版本與新CEF版本相容,確保升級CEF本身不會引發任何問題。我們希望這些元件的升級能夠實現無縫體驗,所以大家應該沒注意到在過去幾個補丁中逐步推出的升級。這些升級涉及到大量程式碼,因此偶爾也會出現測試中漏掉的小問題,但都立刻處理掉了。

完成這些元件升級最多還需要幾周時間,隨後我們就可以開始升級CEF本身,並期望在2021年7月末完成。

社交皮膚

上次我們提到的另一個重點區域是社交皮膚。我們的長期計劃是將社交皮膚從ComponentJS(舊架構)遷移到Ember。目前我們的精力還集中在CEF升級上,因此這項工作暫時擱置,但我們已經完成了Ember遷移所需的部分早期步驟,CEF升級完成後就會繼續。

以下是工作重點轉移到CEF升級前,我們解決的一些社交皮膚的主要問題:

1. 社交皮膚無法連線

2. 好友列表無法載入,狀態顯示不正確,好友資料問題

3. 玩家在普通遊戲中時,懸浮卡片不顯示排位資訊

4. 啟動時在斷開連線、憂傷的魄羅和好友列表載入之間亂跳

記憶體佔用和JavaScript錯誤情況更新

我們也在繼續關注同一會話內進行的遊戲的記憶體佔用情況。我們很高興看到,從補丁10.25之後,遊戲的平均記憶體佔用下降了約30MB,整體記憶體不足崩潰數量也在持續下降。

最後,我們想說說JavaScript錯誤。上一篇文章中,我們提供的拳頭各地區玩家遇到的JS錯誤資料有誤。10.25版本中,這個數字達到了驚人的2.65億。好在玩家實際遭遇的錯誤數量並沒有改變,只是我們測量的手段變了,從而進一步意識到了這個問題的緊迫性。此後,我們的每個補丁平均降低了1.4億次錯誤,並有信心可以繼續減少錯誤數量。

目前的計劃

儘管我們近期的首要重點是CEF升級,但也在規劃2021年的其他專案。

● 上文中提到的將社交皮膚遷移到Ember

● 重新審視比賽結束(EOG)頁面。去年底和今年初,我們處理了比賽結束的幾個主要問題,但仍存在有待改進的地方。許多玩家仍然反映存在返回客戶端時間過長和/或比賽結束頁面當機的問題。專案開始後,第一步是摸清客戶端與遊戲內引擎和服務的所有互動,隨後考慮如何最佳化體驗。EOG呼叫了許多客戶端團隊之外的服務,我們需要與其他團隊配合,一同進行最佳化。

● 進入英雄選擇頁面延遲。這個問題在部分地區報告頻率很高,說明玩家的網路連線情況是很重要的因素(不同地區的網路基礎設施情況各異)。雖然我們對網路問題可做的不多,但仍會與競技團隊合作,儘量在客戶端內確保玩家在合理的時間內進入英雄選擇頁面。

● 長會話中的客戶端穩定性。去年年底我們發現了記憶體洩漏,導致客戶端隨著玩家開啟多個遊戲或客戶端長時間空閒時,佔用記憶體越來越多的緊急問題。經過更全面的跟進,我們將尋求更直觀的方法,讓玩家得以保持剛剛登入客戶端時的體驗,無論他們已經玩了多少局遊戲或是客戶端開啟了多長時間。這部分修復工作可能還會不斷強化,解決更多難對付的記憶體洩漏問題,但我們還需要對照其他短期解決方案進行衡量。

這次要說的就是這些了!當然,我們工作的一大動力,就是來自各種渠道的反饋,包括定期玩家調查。歡迎大家繼續反映需要改進的客戶端問題,以及對您的體驗影響最大的改進!

本文由遊民星空製作釋出,未經允許禁止轉載。

更多相關資訊請關注:英雄聯盟專區

相關攻略文章

最新攻略