時間:2020-03-03 來源:互聯網 瀏覽量:
Riot:在接下來的六個月時間內,我們將對英雄聯盟客戶端的後台基礎架構進行一次調整和改進。為了跟進我們的進展過程,我們將分享兩個主要客戶端性能指標:客戶端加載時間以及英雄選擇延遲。在改進這兩個指標的過程中,我們還會處理一些諸如bug、崩潰等問題。簡單來說,我們要對客戶端進行一次“清理行動”。
有玩家詢問:Riot,你打算什麼時候修複客戶端?
這是很多玩家都在詢問的問題,客戶端狀態不佳,還有很多的bug,太多的延遲(特別是在英雄選擇中),以及其他很多的問題。比如崩潰、斷開鏈接等等。我們以前承諾過要對玩家做些什麼,但這些問題現在依然存在。
所以我們想嚐試一些新東西,今天我們不再含糊地討論一些我們的計劃,而是分享具體的目標,我們在接下來的六個月內會進行明確分工和細節問題。
客戶端:
去年年底,我們為客戶端添加了一些工具,用來跟蹤客戶端內的一些性能指標。比如,客戶端完全啟動所需要的時間(從打開到進入遊戲)。
我們希望這個時間低於15秒,即使是一些電腦運行比較慢的玩家也是如此。但是我們發現,目前對於一些玩家而言,可能需要三倍甚至四倍的時間。
而另一件主要的事情,就是我們一直在跟蹤的“英雄選擇鎖定”時間。這是在選定你想用的英雄後所需要的時間,在這張圖表中,你會看到英雄在9.22版本(橙色線)和10.2版本(藍色線)中的平均響應時間。響應時間以毫秒為單位。
對於玩家而言,客戶端的性能取決於他們電腦的運行速度,所以選擇英雄的響應時間也有所不同。雖然鎖定英雄時的延遲反饋並不太高,但依然會有玩家能夠感覺到。從點擊確定到真正鎖定所用的時間大概是300毫秒,而70%玩家的延遲反饋在450毫秒以上,10%玩家的延遲反饋會達到800毫秒。
接下來優先考慮的目標:
1:我們希望將客戶端完全啟動所用的時間降低到15秒左右,即便是一些運行比較慢的電腦也是如此;
2:我們想讓英雄鎖定響應時間下降到100毫秒;
我知道你們在想什麼,bug呢?崩潰和斷開鏈接怎麼辦?
為什麼要把這兩件事放在第一位呢?因為在解決完全啟動和鎖定響應延遲的過程中,我們會清理和重新調整客戶端基礎架構。我們相信,在追蹤這些目標的同時,我們能夠解決這些bug和崩潰的問題。
我們目前的計劃時間大概是6個月,我們相信會在實現這些目標方麵取得有意義的進展。當然了,要想達到我們的長期目標,可能會需要更長久的時間。
我們要怎麼做?
到目前為止,我們已經確定了導致客戶端啟動緩慢的兩個主要問題。一個是我們的插件架構,隨著客戶端增加了更多的新功能,這個架構變得臃腫起來。第二個原因就是濫用驅動UI的avascript框架(稱為Ember)。
現在客戶端使用了太多插件和Ember,事實上,在客戶端啟動過程中,一共加載了41個不同的插件和16個程序。每一個都需要100毫秒到800毫秒不等的時間,這可不太好。所以我們的計劃是將這些插件和程序進行合並,我們相信會為我們的工作帶來很大的進展。
第一階段:客戶端完全啟動
現在,可能有很多玩家需要40秒的時間才能完全啟動。如果你也是其中一員,你可能會了解這種非常緩慢所帶來的痛苦。如果當客戶端崩潰時,你會收獲“加倍”痛苦。
整個客戶端有很多東西,比如通知、好友列表等等,它們都會在啟動過程中啟動插件和程序。因此,盡管我們將長期目標設定為,能讓玩家將啟動時間降低為15秒。但我們認為,在這個過程中,我們還將解決一些影響整個客戶端的bug和效率低下的問題。
第二階段:英雄選擇
英雄選擇引入了許多額外的插件和程序,簡單來說,在英雄選擇過程中幾乎所有的步驟都會創建新的程序。比如交換英雄、更改召喚師技能等等。
你玩遊戲的時間越長,這些程序就會堆積的越多,導致你的體驗也越差。更複雜的情況是,在英雄選擇過程中所采取的大多數操作都依賴於我們的服務器通信,從而增加了每次操作所帶來的延遲。
要解決這個問題,我們必須從根本上改變英雄選擇的後台基礎架構。我們要重新研究如何在英雄選擇期間,將所有數據從服務器傳送到客戶端,這需要一些時間。
我們還有其他一些宏偉的長期目標,可以讓英雄選擇更加高效,比如將整個客戶端整合到一個沒有插件的單一Ember程序上。但在短期時間內,我們還是希望能實現速度效率加快的目標。
現在還不清楚我們在這六個月的時間內能做得多好,但當我們走到取得了很大的進展時,我們會繼續和玩家們來分享。